Function at 0x42a7e0
Capabilities:
Create thread
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x43056c
push eax
mov dword fs:[0], esp
sub esp, 0x9b0
cmp dword [ebp + 8], 3
push esi
push edi
jl 0x42be81
push 3
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 3
push 0
call fcn.00412c50
xorps xmm0, xmm0
mov dword [ebp - 0x124], 0
movups xmmword [ebp - 0x134], xmm0
xor edi, edi
mov esi, 2
movaps xmm0, xmmword [0x455260]
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0x10], edi
movups xmmword [ebp - 0xa0], xmm0
movups xmmword [ebp - 0x90], xmm0
movups xmmword [ebp - 0x80], xmm0
cmp dword [ebp + 8], esi
jle 0x42a9df
mov eax, dword [ebp + 0xc]
push str.signal_name
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
mov eax, dword [ebp + 0xc]
je 0x42a8d5
mov edx, dword [eax + esi*4]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42a895
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42a8b2
cmp byte [eax + edx], 0x3d
je 0x42a8b1
inc eax
cmp eax, ecx
jl 0x42a8a4
jmp 0x42a8b2
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x134]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x42a8c0
mov edi, dword [ebp - 0x10]
jmp 0x42a9d5
push str.parent_hwnd
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
mov eax, dword [ebp + 0xc]
je 0x42a95b
mov edx, dword [eax + esi*4]
xorps xmm0, xmm0
mov ecx, edx
movups xmmword [ebp - 0x58], xmm0
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42a900
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42a91e
nop
cmp byte [eax + edx], 0x3d
je 0x42a91d
inc eax
cmp eax, ecx
jl 0x42a910
jmp 0x42a91e
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x58]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x42a926
mov edi, dword [ebp - 0x10]
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
cmp byte [ebp - 0x58], al
je 0x42a9d5
lea eax, [ebp - 0x58]
push eax
call fcn.00412464
mov dword [ebp - 0x30], eax
jmp 0x42a9d2
push str.parent_object
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
je 0x42a9d5
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
movups xmmword [ebp - 0x58], xmm0
mov edx, dword [eax + esi*4]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42a981
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42a99e
cmp byte [eax + edx], 0x3d
je 0x42a99d
inc eax
cmp eax, ecx
jl 0x42a990
jmp 0x42a99e
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x58]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x42a9a6
mov edi, dword [ebp - 0x10]
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
cmp byte [ebp - 0x58], al
je 0x42a9d5
lea eax, [ebp - 0x58]
push eax
call fcn.00412464
mov dword [ebp - 0x2c], eax
add esp, 4
inc esi
cmp esi, dword [ebp + 8]
jl 0x42a873
lea eax, [ebp - 0x8b8]
push eax
push 0x80
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea eax, [ebp - 0x134]
push eax
lea eax, [ebp - 0x8b8]
push eax
push str._slogpgmrecconsole_s_
push 0x463240
call fcn.00402000
add esp, 0x10
push 0x463240
call dword [sym.imp.imagehlp.dll_MakeSureDirectoryPathExists]
mov ecx, str.pgmrecconsole_start
call fcn.00402020
mov ecx, 0x463240
call fcn.00402020
mov esi, 2
mov byte [ebp - 0xe0], 0
mov byte [ebp - 0xc0], 0
mov byte [ebp - 0x170], 0
mov byte [ebp - 0x190], 0
cmp dword [ebp + 8], esi
jle 0x42ac2a
nop word [eax + eax]
mov eax, dword [ebp + 0xc]
push str.mode
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
mov eax, dword [ebp + 0xc]
je 0x42aad2
mov edx, dword [eax + esi*4]
mov ecx, edx
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42aa90
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42aaae
nop
cmp byte [eax + edx], 0x3d
je 0x42aaad
inc eax
cmp eax, ecx
jl 0x42aaa0
jmp 0x42aaae
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0xe0]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x42aac0
jmp 0x42ac1d
push str.encoder_module
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
mov eax, dword [ebp + 0xc]
je 0x42ab42
mov edx, dword [eax + esi*4]
mov ecx, edx
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42ab00
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42ab1e
nop
cmp byte [eax + edx], 0x3d
je 0x42ab1d
inc eax
cmp eax, ecx
jl 0x42ab10
jmp 0x42ab1e
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0xc0]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x42ab30
jmp 0x42ac1d
push str.deinterlace_type
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
mov eax, dword [ebp + 0xc]
je 0x42abaf
mov edx, dword [eax + esi*4]
mov ecx, edx
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42ab70
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42ab8e
nop
cmp byte [eax + edx], 0x3d
je 0x42ab8d
inc eax
cmp eax, ecx
jl 0x42ab80
jmp 0x42ab8e
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x190]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x42aba0
jmp 0x42ac1d
push str.sharpen_sigma
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
je 0x42ac1d
mov eax, dword [ebp + 0xc]
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
mov edx, dword [eax + esi*4]
mov ecx, edx
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42abe0
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42abfe
nop
cmp byte [eax + edx], 0x3d
je 0x42abfd
inc eax
cmp eax, ecx
jl 0x42abf0
jmp 0x42abfe
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x170]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x42ac10
mov edi, dword [ebp - 0x10]
inc esi
cmp esi, dword [ebp + 8]
jl 0x42aa60
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x190]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0xe0]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x9bc]
push dword [ebp - 0x30]
push str.hwndparent:_d_objparent:_d_mode:_s_encmodule:_s_deinterlace_type:_s_sharpen_sigma:_s
push eax
call fcn.00402000
lea ecx, [ebp - 0x9bc]
call fcn.00402020
lea eax, [ebp - 0xe0]
mov byte [ebp - 0x19], 1
push str.renderer
push eax
call fcn.00411991
movzx ecx, byte [ebp - 0x19]
xor edx, edx
mov edi, dword [ebp + 8]
add esp, 0x28
test eax, eax
mov dword [ebp - 0x44], edx
mov esi, 2
cmovne ecx, edx
mov dword [ebp - 0x18], ecx
cmp edi, esi
jle 0x42ad2f
mov eax, dword [ebp + 0xc]
push str.audiobar_sendmsg
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
je 0x42ad26
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
movups xmmword [ebp - 0x58], xmm0
mov edx, dword [eax + esi*4]
mov ecx, edx
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42acd0
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42acee
nop
cmp byte [eax + edx], 0x3d
je 0x42aced
inc eax
cmp eax, ecx
jl 0x42ace0
jmp 0x42acee
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x58]
sub edx, ecx
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x42acf6
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xb0], esi
inc eax
cmp byte [ebp - 0x58], 0
mov dword [ebp - 0x10], eax
je 0x42ad23
lea eax, [ebp - 0x58]
push eax
call fcn.00412464
add esp, 4
mov dword [ebp - 0x44], eax
mov edi, dword [ebp + 8]
inc esi
cmp esi, edi
jl 0x42aca1
push 0x104
lea eax, [ebp - 0x838]
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp edi, esi
jle 0x42adea
mov eax, dword [ebp + 0xc]
push str.input_record_path
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42ad73
inc esi
cmp esi, edi
jl 0x42ad52
jmp 0x42adea
cmp byte [ebp - 0x18], 0
je 0x42ad9f
lea eax, [ebp - 0xc0]
push str.rawvlc
push eax
call fcn.00411991
add esp, 8
test eax, eax
je 0x42ad9f
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xb0], esi
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + esi*4]
mov ecx, edx
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42adb0
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42adce
nop
cmp byte [eax + edx], 0x3d
je 0x42adcd
inc eax
cmp eax, ecx
jl 0x42adc0
jmp 0x42adce
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x838]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x42ade0
cmp byte [ebp - 0x838], 0
je 0x42adfe
lea ecx, [ebp - 0x838]
call fcn.00402020
push 0x40
lea eax, [ebp - 0x1d0]
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp edi, esi
jle 0x42ae3c
nop word [eax + eax]
mov eax, dword [ebp + 0xc]
push str.signal_name
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42aea2
inc esi
cmp esi, edi
jl 0x42ae20
mov edi, dword [ebp - 0x10]
cmp byte [ebp - 0x1d0], 0
je 0x42ae53
lea ecx, [ebp - 0x1d0]
call fcn.00402020
push 0x40
lea eax, [ebp - 0x120]
mov dword [ebp - 0x40], 0xa
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp dword [ebp + 8], esi
jle 0x42af5a
nop dword [eax + eax]
mov eax, dword [ebp + 0xc]
push str.record_section_minute
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42aeff
inc esi
cmp esi, dword [ebp + 8]
jl 0x42ae80
jmp 0x42af5a
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp - 0x10]
mov edx, dword [eax + esi*4]
mov ecx, edx
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42aec0
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42aede
nop
cmp byte [eax + edx], 0x3d
je 0x42aedd
inc eax
cmp eax, ecx
jl 0x42aed0
jmp 0x42aede
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x1d0]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x42aef0
jmp 0x42ae3f
cmp byte [ebp - 0x18], 0
je 0x42af10
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + esi*4]
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42af20
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42af3e
nop
cmp byte [eax + edx], 0x3d
je 0x42af3d
inc eax
cmp eax, ecx
jl 0x42af30
jmp 0x42af3e
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x120]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
mov byte [ecx + edx], al
inc ecx
test al, al
jne 0x42af50
cmp byte [ebp - 0x120], 0
je 0x42af75
lea eax, [ebp - 0x120]
push eax
call fcn.00412464
add esp, 4
mov dword [ebp - 0x40], eax
cmp byte [ebp - 0x18], 0
mov dword [ebp - 0x3c], 0
jne 0x42b025
push 0x40
lea eax, [ebp - 0x120]
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp dword [ebp + 8], esi
jle 0x42b00a
mov eax, dword [ebp + 0xc]
push str.record_sync_fifosize
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42afc2
inc esi
cmp esi, dword [ebp + 8]
jl 0x42afa3
jmp 0x42b00a
mov eax, dword [ebp + 0xc]
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
mov edx, dword [eax + esi*4]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42afd8
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42aff5
cmp byte [eax + edx], 0x3d
je 0x42aff4
inc eax
cmp eax, ecx
jl 0x42afe7
jmp 0x42aff5
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x120]
sub edx, ecx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x42b000
cmp byte [ebp - 0x120], 0
je 0x42b025
lea eax, [ebp - 0x120]
push eax
call fcn.00412464
add esp, 4
mov dword [ebp - 0x3c], eax
push 0x40
lea eax, [ebp - 0x120]
mov dword [ebp - 0x38], 0
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp dword [ebp + 8], esi
jle 0x42b0ba
nop dword [eax]
mov eax, dword [ebp + 0xc]
push str.store_days
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42b06f
inc esi
cmp esi, dword [ebp + 8]
jl 0x42b050
jmp 0x42b0ba
mov eax, dword [ebp + 0xc]
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
mov edx, dword [eax + esi*4]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42b085
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42b0a2
cmp byte [eax + edx], 0x3d
je 0x42b0a1
inc eax
cmp eax, ecx
jl 0x42b094
jmp 0x42b0a2
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x120]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x42b0b0
cmp byte [ebp - 0x120], 0
je 0x42b0d5
lea eax, [ebp - 0x120]
push eax
call fcn.00412464
add esp, 4
mov dword [ebp - 0x38], eax
push 0x40
lea eax, [ebp - 0x120]
mov dword [ebp - 0x34], 0
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp dword [ebp + 8], esi
jle 0x42b16a
nop dword [eax]
mov eax, dword [ebp + 0xc]
push str.enable_checksource
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42b11f
inc esi
cmp esi, dword [ebp + 8]
jl 0x42b100
jmp 0x42b16a
mov eax, dword [ebp + 0xc]
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
mov edx, dword [eax + esi*4]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42b135
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42b152
cmp byte [eax + edx], 0x3d
je 0x42b151
inc eax
cmp eax, ecx
jl 0x42b144
jmp 0x42b152
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x120]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x42b160
cmp byte [ebp - 0x120], 0
je 0x42b185
lea eax, [ebp - 0x120]
push eax
call fcn.00412464
add esp, 4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
call fcn.00403860
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], 2
lea eax, [ebp - 0x630]
push 0x104
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp dword [ebp + 8], esi
jle 0x42b22a
mov eax, dword [ebp + 0xc]
push str.programs
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42b1e1
inc esi
cmp esi, dword [ebp + 8]
jl 0x42b1c2
jmp 0x42b22a
mov eax, dword [ebp + 0xc]
mov dword [ebp + edi*4 - 0xb0], esi
inc edi
mov dword [ebp - 0x10], edi
mov edx, dword [eax + esi*4]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42b1f7
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42b214
cmp byte [eax + edx], 0x3d
je 0x42b213
inc eax
cmp eax, ecx
jl 0x42b206
jmp 0x42b214
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x630]
sub edx, ecx
nop
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x42b220
xor edi, edi
cmp byte [ebp - 0x630], 0
je 0x42b399
lea eax, [ebp - 0x630]
push 0x454c74
push eax
call fcn.00412bc0
lea esi, [ebp - 0x630]
add esp, 8
add esi, eax
cmp byte [esi], 0
je 0x42b399
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b27c
push eax
push esi
call fcn.0040b8d0
add esp, 8
jmp 0x42b280
mov byte [eax], 0
inc eax
mov dword [ebp - 0x14], eax
test esi, esi
je 0x42b399
nop dword [eax + eax]
push 0x50
lea eax, [ebp - 0x220]
push 0
push eax
call fcn.0040d1e0
push esi
mov dword [ebp - 0x214], 6
call fcn.00412464
mov ecx, dword [ebp - 0x28]
add esp, 0x10
mov dword [ebp - 0x18], edi
mov esi, ecx
mov dword [ebp - 0x220], eax
mov eax, dword [ecx + 4]
cmp byte [eax + 0xd], 0
jne 0x42b2ed
nop word [eax + eax]
cmp dword [eax + 0x10], edi
jge 0x42b2da
mov eax, dword [eax + 8]
jmp 0x42b2de
mov esi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x42b2d0
cmp esi, ecx
je 0x42b2ed
cmp edi, dword [esi + 0x10]
jge 0x42b316
lea eax, [ebp - 0x18]
push ecx
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.00404410
push eax
add eax, 0x10
lea ecx, [ebp - 0x28]
push eax
push esi
lea eax, [ebp - 0x20]
push eax
call fcn.004044b0
mov esi, dword [ebp - 0x20]
movups xmm0, xmmword [ebp - 0x220]
push 0x454c74
push dword [ebp - 0x14]
movups xmmword [esi + 0x14], xmm0
inc edi
movups xmm0, xmmword [ebp - 0x210]
movups xmmword [esi + 0x24], xmm0
movups xmm0, xmmword [ebp - 0x200]
movups xmmword [esi + 0x34], xmm0
movups xmm0, xmmword [ebp - 0x1f0]
movups xmmword [esi + 0x44], xmm0
movups xmm0, xmmword [ebp - 0x1e0]
movups xmmword [esi + 0x54], xmm0
call fcn.00412bc0
mov esi, eax
add esp, 8
add esi, dword [ebp - 0x14]
cmp byte [esi], 0
jne 0x42b36c
xor esi, esi
jmp 0x42b391
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b38a
push eax
push esi
call fcn.0040b8d0
add esp, 8
jmp 0x42b38e
mov byte [eax], 0
inc eax
mov dword [ebp - 0x14], eax
test esi, esi
jne 0x42b290
push 0x104
lea eax, [ebp - 0x734]
push 0
push eax
call fcn.0040d1e0
mov edi, dword [ebp + 8]
mov esi, 2
add esp, 0xc
cmp edi, esi
jle 0x42b42a
nop dword [eax + eax]
mov eax, dword [ebp + 0xc]
push str.handles
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42b3de
inc esi
cmp esi, edi
jl 0x42b3c0
jmp 0x42b42a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xb0], esi
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + esi*4]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42b3f7
sub ecx, esi
xor eax, eax
test ecx, ecx
jle 0x42b414
cmp byte [eax + edx], 0x3d
je 0x42b413
inc eax
cmp eax, ecx
jl 0x42b406
jmp 0x42b414
inc eax
lea ecx, [eax + edx]
lea edx, [ebp - 0x734]
sub edx, ecx
nop
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x42b420
cmp byte [ebp - 0x734], 0
mov dword [ebp - 0x14], 0
je 0x42b520
lea eax, [ebp - 0x734]
push 0x454c74
push eax
call fcn.00412bc0
lea esi, [ebp - 0x734]
add esp, 8
add esi, eax
cmp byte [esi], 0
je 0x42b520
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b481
push eax
push esi
call fcn.0040b8d0
add esp, 8
jmp 0x42b485
mov byte [eax], 0
inc eax
mov dword [ebp - 0x18], eax
test esi, esi
je 0x42b520
mov edx, dword [ebp - 0x28]
mov edi, edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x42b4cd
cmp dword [eax + 0x10], ecx
jge 0x42b4ab
mov eax, dword [eax + 8]
jmp 0x42b4af
mov edi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x42b4a1
cmp edi, edx
je 0x42b4cd
cmp ecx, dword [edi + 0x10]
jl 0x42b4cd
push esi
call fcn.00412464
mov ecx, dword [ebp - 0x14]
add esp, 4
mov dword [edi + 0x1c], eax
mov edi, dword [ebp - 0x18]
inc ecx
push 0x454c74
push edi
mov dword [ebp - 0x14], ecx
call fcn.00412bc0
add esp, 8
cmp byte [edi + eax], 0
lea esi, [edi + eax]
je 0x42b51d
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b50c
push eax
push esi
call fcn.0040b8d0
add esp, 8
mov dword [ebp - 0x18], eax
jmp 0x42b515
lea ecx, [eax + 1]
mov byte [eax], 0
mov dword [ebp - 0x18], ecx
test esi, esi
jne 0x42b490
mov edi, dword [ebp + 8]
push 0x104
lea eax, [ebp - 0x324]
push 0
push eax
call fcn.0040d1e0
mov esi, 2
add esp, 0xc
cmp edi, esi
jle 0x42b5bd
mov eax, dword [ebp + 0xc]
push str.program_numbers
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42b561
inc esi
cmp esi, edi
jl 0x42b543
jmp 0x42b5bd
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x324]
mov dword [ebp + eax*4 - 0xb0], esi
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + esi*4]
mov ecx, esi
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42b580
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42b59e
nop
cmp byte [eax + esi], 0x3d
je 0x42b59d
inc eax
cmp eax, ecx
jl 0x42b590
jmp 0x42b59e
inc eax
lea ecx, [ebp - 0x324]
sub eax, ecx
lea ecx, [eax + esi]
nop dword [eax]
mov al, byte [ecx + edx]
lea edx, [edx + 1]
mov byte [edx - 1], al
test al, al
jne 0x42b5b0
cmp byte [ebp - 0x324], 0
mov dword [ebp - 0x18], 0
je 0x42b6b0
lea eax, [ebp - 0x324]
push 0x454c74
push eax
call fcn.00412bc0
lea esi, [ebp - 0x324]
add esp, 8
add esi, eax
cmp byte [esi], 0
je 0x42b6b0
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b614
push eax
push esi
call fcn.0040b8d0
add esp, 8
jmp 0x42b618
mov byte [eax], 0
inc eax
mov dword [ebp - 0x14], eax
test esi, esi
je 0x42b6b0
mov edx, dword [ebp - 0x28]
mov edi, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x42b660
cmp dword [eax + 0x10], ecx
jge 0x42b63e
mov eax, dword [eax + 8]
jmp 0x42b642
mov edi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x42b634
cmp edi, edx
je 0x42b660
cmp ecx, dword [edi + 0x10]
jl 0x42b660
push esi
call fcn.00412464
mov ecx, dword [ebp - 0x18]
add esp, 4
mov dword [edi + 0x18], eax
mov edi, dword [ebp - 0x14]
inc ecx
push 0x454c74
push edi
mov dword [ebp - 0x18], ecx
call fcn.00412bc0
add esp, 8
cmp byte [edi + eax], 0
lea esi, [edi + eax]
je 0x42b6b0
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b69f
push eax
push esi
call fcn.0040b8d0
add esp, 8
mov dword [ebp - 0x14], eax
jmp 0x42b6a8
lea ecx, [eax + 1]
mov byte [eax], 0
mov dword [ebp - 0x14], ecx
test esi, esi
jne 0x42b623
push 0x104
lea eax, [ebp - 0x428]
push 0
push eax
call fcn.0040d1e0
mov edi, dword [ebp + 8]
mov esi, 2
add esp, 0xc
cmp edi, esi
jle 0x42b75d
nop word [eax + eax]
mov eax, dword [ebp + 0xc]
push str.program_types
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42b6fe
inc esi
cmp esi, edi
jl 0x42b6e0
jmp 0x42b75d
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x428]
mov dword [ebp + eax*4 - 0xb0], esi
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + esi*4]
mov ecx, esi
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42b720
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42b73e
nop
cmp byte [eax + esi], 0x3d
je 0x42b73d
inc eax
cmp eax, ecx
jl 0x42b730
jmp 0x42b73e
inc eax
lea ecx, [ebp - 0x428]
sub eax, ecx
lea ecx, [eax + esi]
nop dword [eax]
mov al, byte [edx + ecx]
lea edx, [edx + 1]
mov byte [edx - 1], al
test al, al
jne 0x42b750
cmp byte [ebp - 0x428], 0
mov dword [ebp - 0x18], 0
je 0x42b850
lea eax, [ebp - 0x428]
push 0x454c74
push eax
call fcn.00412bc0
lea esi, [ebp - 0x428]
add esp, 8
add esi, eax
cmp byte [esi], 0
je 0x42b850
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b7b4
push eax
push esi
call fcn.0040b8d0
add esp, 8
jmp 0x42b7b8
mov byte [eax], 0
inc eax
mov dword [ebp - 0x14], eax
test esi, esi
je 0x42b850
mov edx, dword [ebp - 0x28]
mov edi, edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x42b800
cmp dword [eax + 0x10], ecx
jge 0x42b7de
mov eax, dword [eax + 8]
jmp 0x42b7e2
mov edi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x42b7d4
cmp edi, edx
je 0x42b800
cmp ecx, dword [edi + 0x10]
jl 0x42b800
push esi
call fcn.00412464
mov ecx, dword [ebp - 0x18]
add esp, 4
mov dword [edi + 0x20], eax
mov edi, dword [ebp - 0x14]
inc ecx
push 0x454c74
push edi
mov dword [ebp - 0x18], ecx
call fcn.00412bc0
add esp, 8
cmp byte [edi + eax], 0
lea esi, [edi + eax]
je 0x42b850
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b83f
push eax
push esi
call fcn.0040b8d0
add esp, 8
mov dword [ebp - 0x14], eax
jmp 0x42b848
lea ecx, [eax + 1]
mov byte [eax], 0
mov dword [ebp - 0x14], ecx
test esi, esi
jne 0x42b7c3
push 0x104
lea eax, [ebp - 0x52c]
push 0
push eax
call fcn.0040d1e0
mov edi, dword [ebp + 8]
mov esi, 2
add esp, 0xc
cmp edi, esi
jle 0x42b8ed
mov eax, dword [ebp + 0xc]
push str.dirnames
push dword [eax + esi*4]
call fcn.0040b660
add esp, 8
test eax, eax
jne 0x42b890
inc esi
cmp esi, edi
jl 0x42b872
jmp 0x42b8ed
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0x52c]
mov dword [ebp + eax*4 - 0xb0], esi
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + esi*4]
mov ecx, esi
lea edi, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42b8b0
sub ecx, edi
xor eax, eax
test ecx, ecx
jle 0x42b8ce
nop
cmp byte [eax + esi], 0x3d
je 0x42b8cd
inc eax
cmp eax, ecx
jl 0x42b8c0
jmp 0x42b8ce
inc eax
lea ecx, [ebp - 0x52c]
sub eax, ecx
lea ecx, [eax + esi]
nop dword [eax]
mov al, byte [edx + ecx]
lea edx, [edx + 1]
mov byte [edx - 1], al
test al, al
jne 0x42b8e0
xor edi, edi
cmp byte [ebp - 0x52c], 0
je 0x42b9d7
lea eax, [ebp - 0x52c]
push 0x454c74
push eax
call fcn.00412bc0
lea esi, [ebp - 0x52c]
add esp, 8
add esi, eax
cmp byte [esi], 0
je 0x42b9d7
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b93f
push eax
push esi
call fcn.0040b8d0
add esp, 8
jmp 0x42b943
mov byte [eax], 0
inc eax
mov dword [ebp - 0x14], eax
test esi, esi
je 0x42b9d7
nop
mov edx, dword [ebp - 0x28]
mov ecx, edx
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x42b98f
nop
cmp dword [eax + 0x10], edi
jge 0x42b96a
mov eax, dword [eax + 8]
jmp 0x42b96e
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x42b960
cmp ecx, edx
je 0x42b98f
cmp edi, dword [ecx + 0x10]
jl 0x42b98f
sub ecx, esi
add ecx, 0x24
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x42b982
push 0x454c74
push dword [ebp - 0x14]
inc edi
call fcn.00412bc0
mov esi, eax
add esp, 8
add esi, dword [ebp - 0x14]
cmp byte [esi], 0
je 0x42b9d7
push 0x454c74
push esi
call fcn.00412c10
add esp, 8
test eax, eax
jne 0x42b9c8
push eax
push esi
call fcn.0040b8d0
add esp, 8
jmp 0x42b9cc
mov byte [eax], 0
inc eax
mov dword [ebp - 0x14], eax
test esi, esi
jne 0x42b950
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
cmp eax, edx
je 0x42ba2b
cmp dword [eax + 0x20], 6
je 0x42ba57
cmp byte [eax + 0xd], 0
jne 0x42ba27
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x42ba0c
mov eax, ecx
mov ecx, dword [eax]
cmp byte [ecx + 0xd], 0
jne 0x42ba27
nop
mov eax, ecx
mov ecx, dword [eax]
cmp byte [ecx + 0xd], 0
je 0x42ba00
jmp 0x42ba27
mov ecx, dword [eax + 4]
cmp byte [ecx + 0xd], 0
jne 0x42ba25
cmp eax, dword [ecx + 8]
jne 0x42ba25
mov eax, ecx
mov ecx, dword [ecx + 4]
cmp byte [ecx + 0xd], 0
je 0x42ba15
mov eax, ecx
cmp eax, edx
jne 0x42b9e0
mov al, byte [0x4547dc]
xorps xmm0, xmm0
movups xmmword [ebp - 0xe0], xmm0
mov byte [ebp - 0xd8], al
movups xmmword [ebp - 0xd0], xmm0
movq xmm0, qword [str.renderer]
movq qword [ebp - 0xe0], xmm0
push 0x37c
call fcn.0040a4c0
mov esi, eax
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 3
lea eax, [ebp - 0x28]
push ecx
mov ecx, esp
mov dword [ebp - 0x48], esp
push ecx
push eax
mov dword [ebp - 0x18], ecx
call fcn.00404380
mov byte [ebp - 4], 5
xor ecx, ecx
push dword [ebp - 0x34]
cmp byte [ebp - 0x170], cl
lea eax, [ebp - 0x838]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push eax
lea eax, [ebp - 0x170]
cmove eax, ecx
cmp byte [ebp - 0x190], cl
push eax
lea eax, [ebp - 0x190]
cmove eax, ecx
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0xe0]
push eax
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push ecx
mov byte [ebp - 4], 3
mov ecx, esi
call fcn.00429290
mov edi, eax
mov dword [ebp - 0x18], edi
mov byte [ebp - 4], 2
cmp byte [ebp - 0x1d0], 0
je 0x42bb0d
lea ecx, [ebp - 0x1d0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42baf1
sub ecx, edx
lea eax, [ebp - 0x1d0]
push ecx
push eax
lea ecx, [edi + 0x334]
call fcn.00401eb0
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x42bb1c
push eax
mov ecx, edi
call fcn.00404280
mov eax, dword [ebp + 0xc]
push 0x80
push 0
mov esi, dword [eax + 4]
lea eax, [edi + 0x7c]
push eax
call fcn.0040d1e0
add esp, 0xc
test esi, esi
je 0x42bb52
lea ecx, [edi + 0x7c]
mov edx, ecx
sub edx, esi
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [edx + esi - 1], al
test al, al
jne 0x42bb40
call fcn.00402020
mov esi, 2
cmp dword [ebp + 8], esi
jle 0x42bc74
mov edx, dword [ebp - 0x10]
xor eax, eax
mov cl, 1
test edx, edx
jle 0x42bb82
nop dword [eax + eax]
cmp dword [ebp + eax*4 - 0xb0], esi
je 0x42bb80
inc eax
cmp eax, edx
jl 0x42bb70
jmp 0x42bb82
xor cl, cl
test cl, cl
je 0x42bc6a
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x5c], 0xf
mov edx, dword [eax + esi*4]
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x70], 0
cmp byte [edx], 0
jne 0x42bbb9
xor ecx, ecx
jmp 0x42bbcb
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x42bbc1
sub ecx, dword [ebp - 0x20]
push ecx
push edx
lea ecx, [ebp - 0x70]
call fcn.00401eb0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x70]
mov eax, dword [edi + 0x100]
push ecx
mov dword [ebp - 0x20], eax
push dword [eax + 4]
push eax
call fcn.00403ab0
mov edx, eax
mov ecx, 0x7fffffe
mov eax, dword [edi + 0x104]
sub ecx, eax
cmp ecx, 1
jb 0x42bcb0
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x20]
mov dword [edi + 0x104], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x5c]
cmp eax, 0x10
jb 0x42bc55
mov ecx, dword [ebp - 0x70]
inc eax
cmp eax, 0x1000
jb 0x42bc4c
test cl, 0x1f
jne 0x42bcab
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x42bcab
sub ecx, eax
cmp ecx, 4
jb 0x42bcab
cmp ecx, 0x23
ja 0x42bcab
mov ecx, eax
push ecx
call fcn.0040a4bb
add esp, 4
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x70], 0
inc esi
cmp esi, dword [ebp + 8]
jl 0x42bb63
mov ecx, edi
call fcn.00427770
test al, al
jne 0x42bcba
mov ecx, str.vlc_open_failed
call fcn.00402020
test edi, edi
je 0x42be56
mov ecx, edi
call fcn.00428f90
push 0x37c
push edi
call fcn.0040a4f3
add esp, 8
jmp 0x42be56
call fcn.0040e23e
push str.list_T__too_long
call fcn.00409ce0
mov ecx, edi
call fcn.004276f0
test al, al
jne 0x42bcf1
mov ecx, str.vlc_play_failed
call fcn.00402020
test edi, edi
je 0x42be56
mov ecx, edi
call fcn.00428f90
push 0x37c
push edi
call fcn.0040a4f3
add esp, 8
jmp 0x42be56
push ecx
call fcn.0042c300
mov esi, dword [ebp - 0x30]
test esi, esi
jne 0x42bdbb
cmp dword [ebp - 0x2c], esi
jne 0x42bdbb
mov ecx, str.usrer_namepipe
call fcn.00402020
push 0x3c
call fcn.0040a4c0
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
mov byte [ebp - 4], 7
lea esi, [edi + 0x1c]
mov dword [ebp - 0x20], esi
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.00402c60
mov dword [esi], eax
mov byte [ebp - 4], 0xa
mov esi, dword [ebp - 0x18]
mov dword [edi + 0xc], 0
mov dword [edi], 0
mov byte [edi + 0x10], 0
mov dword [edi + 0x14], 0xffffffff
mov dword [edi + 8], 0
test esi, esi
je 0x42bd6f
mov dword [edi + 8], esi
lea eax, [edi + 0x24]
mov byte [edi + 0x18], 0
push eax
mov dword [edi + 4], 1
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [ebp - 4], 2
lea eax, [ebp + 8]
push eax
push 0
push edi
push 0x425ef0
push 0
push 0
mov byte [edi + 0x10], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [edi], eax
mov dword [0x46336c], edi
test esi, esi
je 0x42bdd5
push edi
mov edi, dword [ebp - 0x18]
mov ecx, edi
call fcn.00426790
jmp 0x42bdd8
mov ecx, str.usrer_wm_copydata
call fcn.00402020
mov eax, dword [ebp - 0x2c]
mov dword [0x463364], esi
mov dword [0x463368], eax
jmp 0x42bdd8
mov edi, dword [ebp - 0x18]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [ebp - 0x150]
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x42be33
cmp dword [ebp - 0x14c], 0x12
je 0x42be29
lea eax, [ebp - 0x150]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x150]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [ebp - 0x150]
push eax
call esi
test eax, eax
jne 0x42bdf1
jmp 0x42be33
mov ecx, str.quit
call fcn.00402020
test edi, edi
je 0x42be4c
mov ecx, edi
call fcn.00428f90
push 0x37c
push edi
call fcn.0040a4f3
add esp, 8
mov ecx, str.pgmrecconsole.exe_exit
call fcn.00402020
mov dword [ebp - 4], 0xc
lea ecx, [ebp - 0x28]
mov eax, dword [ebp - 0x28]
push eax
push dword [eax]
lea eax, [ebp + 8]
push eax
call fcn.00402870
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x28]
call fcn.0040a4bb
add esp, 4
mov ecx, dword [ebp - 0xc]
xor eax, eax
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret