Function at 0x41acdb
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7a8
push ebx
push esi
mov esi, dword [ebp + 0x10]
and dword [ebp + 0x10], 1
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x54]
and esi, 0xf0
call fcn.0043ccfc
mov eax, dword [ebp + 0xc]
or dword [ebp - 0x50], 0xffffffff
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x48], eax
call fcn.0040b430
xor ebx, ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0xd], 0xff
mov byte [ebp - 0xb], 0xff
mov byte [ebp - 0x17], bl
mov byte [ebp - 2], bl
mov byte [ebp - 1], bl
mov byte [ebp - 0xa], bl
mov byte [ebp - 9], bl
mov byte [ebp - 0x16], bl
mov byte [ebp - 0x32], bl
mov dword [ebp - 0x2c], 0xffff0000
call fcn.00432cb7
push 1
lea eax, [ebp + 0xc]
push eax
push 0x491094
mov word [ebp - 0x2ac], bx
call fcn.004349fd
add esp, 0xc
test al, al
jne 0x41ad64
cmp esi, ebx
mov byte [ebp - 0xc], al
je 0x41ad6a
mov byte [ebp - 0xc], 1
cmp esi, ebx
setne byte [ebp - 0x15]
cmp byte [ebp - 0xc], 0
je 0x41ad7c
mov byte [ebp - 0xd], 0
mov byte [ebp - 0xb], 1
mov ecx, dword [ebp + 0xc]
mov ax, word [ecx]
cmp ax, 0x2d
mov dl, 0x2a
jne 0x41ad8c
mov dl, al
movsx edi, dl
movzx eax, ax
cmp eax, edi
push 3
pop esi
jne 0x41b06c
movzx eax, word [ecx + 2]
cmp eax, edi
jne 0x41b04e
push 1
lea eax, [ebp + 0xc]
push eax
add ecx, 4
push 0x491938
mov dword [ebp + 0xc], ecx
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41add2
mov dword [ebp + 0x10], 1
jmp 0x41b040
push 2
lea eax, [ebp + 0xc]
push eax
push 0x491934
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41adf2
mov byte [ebp - 0xd], 1
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x491930
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41ae11
mov byte [ebp - 0xd], 0
jmp 0x41b040
push 4
lea eax, [ebp + 0xc]
push eax
push str.nrcd
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41ae31
mov byte [ebp - 0xb], 2
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x491924
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41ae50
mov byte [ebp - 0xb], 0
jmp 0x41b040
push 2
lea eax, [ebp + 0xc]
push eax
push 0x491920
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41ae70
mov byte [ebp - 1], 1
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x49191c
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41ae8f
mov byte [ebp - 1], 0x23
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x491918
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41aeae
mov byte [ebp - 1], 0x2a
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x491914
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41aecd
mov byte [ebp - 1], 0x24
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x491910
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41aeec
mov byte [ebp - 1], 0x40
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x49190c
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41af0b
mov byte [ebp - 1], 0x3d
jmp 0x41b040
push 2
lea eax, [ebp + 0xc]
push eax
push 0x491908
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41af2e
mov dword [ebp - 0x2c], 1
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x491904
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41af4c
mov dword [ebp - 0x2c], ebx
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x491900
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41af6b
mov byte [ebp - 9], 1
jmp 0x41b040
push esi
lea eax, [ebp + 0xc]
push eax
push 0x4918fc
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41af8a
mov byte [ebp - 0x16], 1
jmp 0x41b040
push 1
lea eax, [ebp + 0xc]
push eax
push 0x4918f8
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41afaa
mov byte [ebp - 0x32], 1
jmp 0x41b040
push 4
push dword [ebp + 0xc]
push str.ret:
call fcn.0042ecb0
add esp, 0xc
test al, al
lea eax, [ebp + 0xc]
je 0x41b01c
add dword [ebp + 0xc], 8
mov esi, dword [ebp + 0xc]
push eax
call fcn.0040415a
mov eax, dword [ebp + 0xc]
pop ecx
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x30]
call fcn.00432ddd
lea ecx, [ebp + 0xc]
call fcn.0040b430
mov ecx, dword [ebp + 8]
push ebx
lea eax, [ebp - 0x30]
push eax
call fcn.00402bfa
push dword [ebp - 0x30]
mov byte [ebp - 2], 1
push 0x4918ec
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
push 3
pop esi
jne 0x41b040
mov eax, dword [ebp - 0x30]
mov byte [ebp - 2], 3
mov word [eax], bx
jmp 0x41b040
push 1
push eax
push 0x4918e8
call fcn.004349fd
add esp, 0xc
test al, al
je 0x41b036
mov byte [ebp - 0xa], 1
jmp 0x41b040
lea eax, [ebp + 0xc]
push eax
call fcn.0040417e
pop ecx
mov ecx, dword [ebp + 0xc]
movzx eax, word [ecx]
cmp eax, edi
je 0x41ad9d
cmp byte [ebp - 9], 0
je 0x41b06c
push 0xffffffffffffff9c
push 0x48e984
push ebx
push ecx
mov ecx, dword [ebp + 8]
call fcn.00448c5f
mov esi, eax
jmp 0x41b9b4
push 0x6e
pop ecx
xor eax, eax
push 0x6a
lea edi, [ebp - 0x210]
mov dword [ebp - 0x214], ebx
rep stosd dword es:[edi], eax
pop ecx
push 0x69
lea edi, [ebp - 0x454]
rep stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x5fc]
rep stosd dword es:[edi], eax
push 0x69
pop ecx
lea edi, [ebp - 0x7a4]
mov dword [ebp - 0x7a8], ebx
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x40], ebx
call fcn.00432f23
mov esi, dword [sym.imp.SHLWAPI.dll_StrChrW]
lea eax, [ebp - 0x458]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push 0x2c
push eax
mov dword [ebp - 0x458], eax
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x38], 1
call esi
cmp eax, ebx
mov dword [ebp - 0x14], eax
je 0x41b0f8
mov edi, eax
sub edi, dword [ebp - 0x48]
sar edi, 1
add dword [ebp - 0x14], 2
jmp 0x41b0fb
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x14]
cmp eax, ebx
mov dword [ebp - 0x454], eax
mov dword [ebp - 0x5fc], eax
je 0x41b11a
cmp word [eax], 0x2a
jne 0x41b11a
mov byte [ebp - 0x31], 1
jmp 0x41b12e
cmp byte [ebp - 0xc], 0
mov byte [ebp - 0x31], 0
jne 0x41b12e
cmp byte [ebp - 0x15], 0
mov byte [ebp - 9], 1
je 0x41b132
mov byte [ebp - 9], 0
cmp byte [ebp - 0x16], 0
jne 0x41b186
cmp byte [ebp - 9], 0
je 0x41b186
mov eax, dword [ebp + 0x14]
cmp eax, ebx
mov dword [ebp - 0x20], eax
jne 0x41b14e
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], 1
push 0x2c
push dword [ebp - 0x20]
call esi
cmp eax, ebx
mov dword [ebp - 0x20], eax
je 0x41b186
mov word [eax], bx
add dword [ebp - 0x20], 2
cmp dword [ebp - 0x38], 2
jl 0x41b17d
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x38]
mov dword [ebp + ecx*4 - 0x458], eax
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0x6a
jl 0x41b155
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x28], ebx
je 0x41b1a7
push 0x2c
push dword [ebp - 0x14]
call esi
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0x28], eax
je 0x41b1a7
mov eax, dword [ebp - 0x14]
mov word [eax - 2], bx
mov eax, dword [ebp + 0xc]
cmp word [eax], bx
jne 0x41b1b9
mov esi, 0x80070057
jmp 0x41b9a1
cmp dword [ebp - 0x28], ebx
je 0x41b1c8
mov eax, dword [ebp - 0x28]
mov word [eax], bx
add dword [ebp - 0x28], 2
mov al, byte [ebp - 2]
and al, 2
mov byte [ebp - 0x39], al
je 0x41b1e1
mov ecx, dword [ebp - 0x14]
cmp ecx, ebx
je 0x41b1e1
cmp word [ecx], bx
jne 0x41b1e1
mov dword [ebp - 0x14], ebx
test al, al
je 0x41b208
cmp dword [ebp - 0x28], ebx
je 0x41b208
mov ecx, dword [ebp + 8]
push ebx
push 0x2c
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00429b46
mov eax, dword [ebp - 0x28]
cmp word [eax], bx
jne 0x41b208
mov dword [ebp - 0x28], ebx
cmp dword [ebp - 0x28], ebx
mov dword [ebp - 8], ebx
mov byte [ebp - 2], 0
jne 0x41b32e
cmp dword [ebp - 0x14], ebx
jne 0x41b226
mov dword [ebp - 0x14], 0x4918c2
jmp 0x41b24c
push dword [ebp - 0x14]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x4918c2
call esi
test eax, eax
je 0x41b24c
push dword [ebp - 0x14]
push 0x491896
call esi
test eax, eax
jne 0x41b32e
cmp dword [ebp - 0x2c], ebx
mov byte [ebp - 2], 0xff
jge 0x41b25c
mov dword [ebp - 0x2c], 0x31
cmp byte [ebp - 0x2c], 0
je 0x41b32e
lea ecx, [ebp + 0x10]
call fcn.00432cb7
push 0xffffffffffffffff
push str.___exe:_
lea ecx, [ebp + 0x14]
call fcn.0043cd32
lea eax, [ebp + 0x14]
push eax
lea ecx, [ebp + 0x10]
call fcn.0043cd92
lea ecx, [ebp + 0x14]
call fcn.0042dd2d
push 0x51c
lea ecx, [ebp + 0x10]
call fcn.00432cfe
mov eax, dword [ebp + 0x10]
push 0x208
add eax, 0x10
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0xffffffffffffffff
push str.____nowin___nfb___hide_PECMDpecmd_cmd_CALL__
lea ecx, [ebp + 0x14]
call fcn.0043cd32
push dword [eax]
lea ecx, [ebp + 0x10]
call fcn.00432d25
lea ecx, [ebp + 0x14]
call fcn.0042dd2d
cmp edi, ebx
jl 0x41b2dd
mov eax, dword [ebp - 0x54]
mov word [eax + edi*2], bx
push dword [ebp - 0x54]
lea ecx, [ebp + 0x10]
call fcn.00432d25
push 0xffffffffffffffff
push 0x491850
lea ecx, [ebp + 0x14]
call fcn.0043cd32
push dword [eax]
lea ecx, [ebp + 0x10]
call fcn.00432d25
lea ecx, [ebp + 0x14]
call fcn.0042dd2d
push dword [ebp - 0x14]
lea ecx, [ebp + 0x10]
call fcn.00432d25
mov ecx, dword [ebp + 8]
push ebx
push ebx
push ebx
push ebx
push ecx
push dword [ebp + 0x10]
call fcn.00406e39
mov esi, eax
lea ecx, [ebp + 0x10]
jmp 0x41b99c
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x41ca21
cmp word [eax], bx
je 0x41ca21
cmp byte [ebp - 0x16], 0
jne 0x41b39f
cmp byte [ebp - 9], 0
je 0x41b39f
cmp dword [ebp + 0x14], ebx
je 0x41b39f
push 2
pop esi
cmp dword [ebp - 0x38], esi
lea eax, [ebp - 0x600]
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0x14], ebx
jle 0x41b397
mov ecx, dword [ebp + 8]
push 1
push ebx
lea eax, [ebp + 0x14]
push eax
push dword [ebp + esi*4 - 0x458]
call fcn.0043b168
mov eax, dword [ebp + 0x14]
mov dword [ebp + esi*4 - 0x600], eax
mov dword [ebp + esi*4 - 0x7a8], eax
inc esi
cmp esi, dword [ebp - 0x38]
mov dword [ebp + 0x14], ebx
jl 0x41b367
lea ecx, [ebp + 0x14]
call fcn.0042dd2d
cmp byte [ebp - 0x16], 0
push 2
pop eax
jne 0x41b4b8
cmp byte [ebp - 9], 0
je 0x41b4b8
mov ecx, dword [ebp - 0x1c]
cmp dword [ecx + 4], ebx
je 0x41b4b8
cmp byte [ebp - 0x39], 0
je 0x41b3d5
mov ecx, dword [ecx + 8]
cmp ecx, ebx
mov dword [ebp - 0x20], ecx
je 0x41b3d5
push 3
pop eax
mov ecx, dword [ebp - 0x1c]
shl eax, 2
lea edi, [eax + ecx]
lea eax, [ebp + eax - 0x45c]
mov dword [ebp - 0x1c], eax
mov eax, dword [edi]
add dword [ebp - 0x1c], 4
add edi, 4
cmp eax, ebx
mov dword [ebp - 0x20], eax
je 0x41b4b8
mov esi, dword [ebp - 0x40]
mov cx, word [eax]
lea esi, [ebp + esi*4 - 0x214]
xor dl, dl
cmp byte [ebp - 1], 0x23
mov dword [esi], eax
je 0x41b5e8
cmp byte [ebp - 1], 0x2a
je 0x41b586
cmp byte [ebp - 1], 0x24
je 0x41b4a1
cmp byte [ebp - 1], 0x40
je 0x41b459
cmp byte [ebp - 1], 0x3d
je 0x41b496
cmp byte [ebp - 1], dl
je 0x41b5de
inc eax
inc eax
movzx ecx, cx
inc dl
cmp ecx, 0x2a
mov dword [ebp - 0x20], eax
je 0x41b586
cmp ecx, 0x3d
je 0x41b496
cmp ecx, 0x40
jne 0x41b4a1
xor ebx, ebx
cmp eax, ebx
je 0x41b60d
push 4
call fcn.00479ff8
cmp eax, ebx
pop ecx
je 0x41b47b
push dword [ebp - 0x20]
mov ecx, eax
call fcn.0040b39f
jmp 0x41b47d
xor eax, eax
mov ecx, dword [eax]
mov dword [ebp - 0x20], ecx
push eax
lea ecx, [ebp - 0x234]
call fcn.0040b45c
mov eax, dword [ebp - 0x20]
jmp 0x41b60d
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx]
movsx eax, dl
lea eax, [ecx + eax*2]
mov dword [esi], eax
xor ebx, ebx
inc dword [ebp - 0x40]
cmp byte [ebp - 0x32], 0
jne 0x41b4b8
cmp dword [ebp - 0x40], 0x64
jbe 0x41b3e8
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push str._DllRegisterServer
push dword [ebp - 0x14]
call esi
test eax, eax
jne 0x41b4e7
cmp dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], 0x4918c2
mov byte [ebp - 2], 0xff
jge 0x41b4e3
mov dword [ebp - 0x2c], 0x31
mov byte [ebp - 0xd], 1
push str._DllUnregisterServer
push dword [ebp - 0x14]
call esi
test eax, eax
jne 0x41b510
cmp dword [ebp - 0x2c], ebx
mov dword [ebp - 0x14], 0x491896
mov byte [ebp - 2], 0xff
jge 0x41b50c
mov dword [ebp - 0x2c], 0x71
mov byte [ebp - 0xd], 1
push 0x20a
lea ecx, [ebp - 0x58]
call fcn.00432cd5
mov eax, dword [ebp + 0xc]
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x21c], esi
mov dword [ebp - 0x218], esi
cmp word [eax], 0x23
mov dword [ebp - 0x1c], ebx
jne 0x41b625
cmp word [eax + 2], si
jne 0x41b625
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004358c4
mov ebx, dword [ebp - 0x21c]
mov eax, ebx
or eax, dword [ebp - 0x218]
pop ecx
pop ecx
jne 0x41b614
mov al, byte [ebp - 0x15]
neg al
sbb eax, eax
and eax, 0x7ff8ffa9
add eax, 0x80070057
mov dword [ebp - 8], eax
jmp 0x41c9b0
cmp word [eax], 0x2a
jne 0x41b591
inc eax
inc eax
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x24]
mov dword [ebp + 0x14], eax
call fcn.00432cb7
mov ecx, dword [ebp + 8]
xor ebx, ebx
push ebx
push 0x2c
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x14]
push eax
call fcn.00429b46
mov ecx, dword [ebp + 8]
push 0xffffffffffffffff
push ebx
push dword [ebp - 0x24]
mov dword [ebp + 0x14], ebx
call fcn.0040c526
cmp eax, ebx
je 0x41b5cc
mov eax, dword [eax + 4]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x24]
mov dword [esi], eax
call fcn.0042dd2d
jmp 0x41b4a5
cmp cx, 0x23
jne 0x41b4a3
cmp cx, 0x23
jne 0x41b5f3
inc eax
inc eax
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x4c]
push eax
xor ebx, ebx
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
call fcn.004358c4
mov eax, dword [ebp - 0x4c]
pop ecx
pop ecx
mov dword [esi], eax
jmp 0x41b4a5
cmp byte [ebp - 0xb], 0
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 2], 1
jge 0x41b625
mov byte [ebp - 0xb], 1
mov edi, dword [ebp + 0xc]
cmp edi, esi
mov dword [ebp - 0x24], esi
mov byte [ebp + 0x17], 0
mov dword [ebp - 0x48], esi
je 0x41b64f
cmp word [edi], 0x22
jne 0x41b643
mov dword [ebp - 0x48], 1
push edi
call fcn.0040e84c
mov edi, eax
pop ecx
mov dword [ebp + 0xc], edi
mov ax, word [edi]
cmp ax, 0x2a
jne 0x41b65c
mov byte [ebp - 0xa], 1
cmp ax, si
jne 0x41b663
xor edi, edi
cmp byte [ebp - 0xb], 0
jg 0x41b677
push dword [ebp - 0x58]
push 0x208
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp edi, esi
je 0x41b68b
cmp word [edi], 0x2e
jne 0x41b68b
cmp word [edi + 2], si
mov byte [ebp - 9], 1
je 0x41b68f
mov byte [ebp - 9], 0
cmp byte [ebp - 0x31], 0
je 0x41b6d7
cmp byte [ebp - 0xa], 0
jne 0x41b6d7
cmp byte [ebp - 9], 0
je 0x41b6a8
mov eax, dword [0x4a5e00]
jmp 0x41b6af
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp eax, esi
jne 0x41b6c0
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, esi
je 0x41b6c4
xor eax, eax
jmp 0x41b6d0
cmp byte [ebp - 0x15], 0
jne 0x41b6c0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x41b999
cmp byte [ebp - 0xd], 0
jle 0x41b710
push 0x5c
push esi
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
cmp eax, esi
je 0x41b710
sub eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x44]
sar eax, 1
inc eax
push eax
push dword [ebp + 0xc]
call fcn.0043cd19
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [ebp - 0x44]
call fcn.0042dd2d
cmp ebx, esi
jne 0x41b936
cmp byte [ebp - 0xa], 0
jne 0x41b774
mov esi, 0x4a6658
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp byte [ebp - 2], 0
jne 0x41b76d
test edi, edi
je 0x41b74b
cmp word [edi], 0x2e
jne 0x41b74b
cmp word [edi + 2], 0
jne 0x41b74b
mov eax, dword [0x4a5e00]
mov dword [ebp - 0x24], eax
jmp 0x41b75d
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
mov dword [ebp - 0x24], eax
je 0x41b761
mov byte [ebp + 0x17], 0xff
test eax, eax
jne 0x41b765
mov byte [ebp - 2], 1
test edi, edi
jne 0x41b76d
mov byte [ebp - 2], 2
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
je 0x41b8f9
cmp byte [ebp - 0xa], 0
je 0x41b8cd
xor ecx, ecx
cmp dword [ebp - 0x48], ecx
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x220], ecx
mov esi, edi
jne 0x41b7c0
cmp word [edi], 0x23
jne 0x41b7c0
xor eax, eax
mov ax, word [edi + 2]
push eax
call fcn.0041030b
add esp, 4
test al, al
jne 0x41b7ca
cmp word [edi], 0x2a
jne 0x41b835
inc edi
inc edi
mov esi, edi
cmp word [edi], cx
mov eax, dword [0x4a5e00]
mov dword [ebp - 0x44], ecx
je 0x41b7e4
cmp word [esi], 0x23
je 0x41b7e4
inc esi
inc esi
cmp word [esi], cx
jne 0x41b7d7
mov bx, word [esi]
cmp bx, 0x23
jne 0x41b844
and word [esi], 0
cmp word [edi], 0
je 0x41b805
push 2
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0x44], eax
test eax, eax
mov word [esi], bx
je 0x41b824
push 0
lea ecx, [ebp - 0x228]
push ecx
push str.EXEDATA
push esi
push eax
call fcn.00410741
add esp, 0x14
cmp dword [ebp - 0x44], 0
je 0x41b844
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x41b844
lea eax, [ebp - 0x228]
push eax
push edi
call fcn.004103ea
pop ecx
pop ecx
mov edi, dword [ebp - 0x228]
test edi, edi
mov ebx, dword [ebp - 0x224]
jne 0x41b86b
lea ecx, [ebp - 0x228]
mov dword [ebp - 8], 0x80004005
call fcn.0042dd2d
jmp 0x41b8ff
push 0x18
call fcn.00479ff8
test eax, eax
pop ecx
je 0x41b882
mov ecx, eax
call fcn.0040bf35
mov esi, eax
jmp 0x41b884
xor esi, esi
push ebx
push edi
mov ecx, esi
call fcn.00410508
test eax, eax
je 0x41b8b6
push dword [ebp - 0x14]
lea ecx, [ebp - 0x48]
call fcn.0040b39f
push dword [eax]
mov ecx, esi
call fcn.0040bf71
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x1c], eax
call fcn.0042dd2d
cmp dword [ebp - 0x1c], 0
jne 0x41b8bd
mov dword [ebp - 8], 0x80004005
lea ecx, [ebp - 0x228]
call fcn.0042dd2d
mov ebx, dword [ebp - 0x1c]
jmp 0x41b936
cmp byte [ebp - 9], 0
je 0x41b8da
mov eax, dword [0x4a5e00]
jmp 0x41b8eb
cmp byte [ebp + 0x17], 0
jne 0x41b8ee
push edi
mov byte [ebp + 0x17], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x41b90a
call esi
mov dword [ebp - 8], eax
cmp dword [ebp - 0x24], 0
jne 0x41b90a
cmp byte [ebp - 0xc], 0
jne 0x41b95b
jmp 0x41c956
push dword [ebp - 0x14]
lea ecx, [ebp - 0x48]
call fcn.0040b39f
push dword [eax]
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, eax
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x1c], ebx
call fcn.0042dd2d
test ebx, ebx
jne 0x41b936
call esi
mov dword [ebp - 8], eax
cmp byte [ebp - 0xc], 0
je 0x41b9cb
cmp byte [ebp + 0x17], 0
jle 0x41b95b
cmp byte [ebp - 2], 0
jg 0x41b95b
cmp dword [ebp - 0x24], 0
je 0x41b95b
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp byte [ebp - 0x15], 0
je 0x41b966
mov esi, dword [ebp - 0x1c]
jmp 0x41b999
cmp dword [ebp - 0x1c], 0
je 0x41b984
push dword [ebp - 0x1c]
lea eax, [ebp - 0x2ac]
push str.0x_p
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x2ac]
push eax
push dword [ebp - 0x30]
call fcn.00432698
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0x58]
call fcn.0042dd2d
lea ecx, [ebp - 0x50]
call fcn.00417996
lea ecx, [ebp - 0x234]
call fcn.004469a5
lea ecx, [ebp - 0x30]
call fcn.0042dd2d
lea ecx, [ebp - 0x54]
call fcn.0042dd2d
mov eax, esi
jmp 0x41ca55
xor esi, esi
cmp ebx, esi
mov byte [ebp - 0xa], 0
je case.default.0x41c398
test byte [ebp - 0x2c], 7
je 0x41ba31
call fcn.00431ead
cmp dword [ebp - 0x2c], esi
je 0x41ba31
cmp dword [0x4a6234], esi
je 0x41ba31
cmp dword [0x4a6238], esi
je 0x41ba31
mov esi, 0x4a6658
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebp + 8]
mov al, byte [edi + 0x10]
test al, 2
jne 0x41ba2a
test al, 1
jne 0x41ba17
mov byte [ebp - 0xa], 1
or byte [ebp - 0xa], 2
or al, 3
push 0
mov byte [edi + 0x10], al
call dword [0x4a6234]
jmp 0x41ba31
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp - 0x16], 0
je 0x41bacb
and dword [ebp + 0x10], 0
cmp byte [ebp - 1], 0x40
mov byte [ebp - 0x17], 1
jne 0x41ba64
cmp dword [ebp - 0x28], 0
je 0x41ba64
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x28]
lea ecx, [ebp + 0x10]
call fcn.00432c3f
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x14], 0
mov esi, dword [0x4a5e00]
push 5
pop edi
je 0x41baa7
push 0x12
push dword [ebp - 0x14]
push str.InstallHinfSection
call fcn.0042ecb0
add esp, 0xc
test al, al
je 0x41baa7
mov eax, dword [ebp - 0x14]
cmp word [eax + 0x24], 0
je 0x41baa3
mov word [eax + 0x24], 1
mov eax, dword [ebp - 0x14]
cmp word [eax + 0x26], 0
jne 0x41baa7
xor edi, edi
xor esi, esi
mov eax, dword [ebp + 8]
push edi
push dword [ebp - 0x28]
push esi
push dword [eax + 0x2c]
call fcn.0042e202
pop ecx
push eax
call ebx
lea ecx, [ebp + 0x10]
mov dword [ebp - 8], eax
call fcn.0042dd2d
jmp case.default.0x41c398
cmp dword [ebp + 0x10], 1
mov ecx, dword [ebp - 0x40]
jne 0x41c383
push 0x64
pop eax
cmp eax, ecx
sbb al, al
inc al
cmp ecx, 0x10
mov byte [ebp - 0x17], al
ja case.default.0x41baed
jmp dword [ecx*4 + 0x41ca5c]
push dword [ebp - 0x214]
call ebx
jmp 0x41bb0d
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
pop ecx
pop ecx
jmp 0x41c916
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0xc
jmp 0x41c916
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x10
jmp 0x41c916
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x14
jmp 0x41c916
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x18
jmp 0x41c916
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x1c
jmp 0x41c916
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x20
jmp 0x41c916
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x24
jmp 0x41c916
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x28
jmp 0x41c916
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x2c
jmp 0x41c916
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x30
jmp 0x41c916
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x34
jmp 0x41c916
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x38
jmp 0x41c916
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x3c
jmp 0x41c916
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x40
jmp 0x41c916
cmp ecx, 0x14
ja 0x41bf48
push dword [ebp - 0x1c8]
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x50
jmp 0x41c916
cmp ecx, 0x1e
ja 0x41c00f
push dword [ebp - 0x1a0]
push dword [ebp - 0x1a4]
push dword [ebp - 0x1a8]
push dword [ebp - 0x1ac]
push dword [ebp - 0x1b0]
push dword [ebp - 0x1b4]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
push dword [ebp - 0x1c0]
push dword [ebp - 0x1c4]
push dword [ebp - 0x1c8]
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x78
jmp 0x41c916
cmp ecx, 0x28
ja 0x41c115
push dword [ebp - 0x178]
push dword [ebp - 0x17c]
push dword [ebp - 0x180]
push dword [ebp - 0x184]
push dword [ebp - 0x188]
push dword [ebp - 0x18c]
push dword [ebp - 0x190]
push dword [ebp - 0x194]
push dword [ebp - 0x198]
push dword [ebp - 0x19c]
push dword [ebp - 0x1a0]
push dword [ebp - 0x1a4]
push dword [ebp - 0x1a8]
push dword [ebp - 0x1ac]
push dword [ebp - 0x1b0]
push dword [ebp - 0x1b4]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
push dword [ebp - 0x1c0]
push dword [ebp - 0x1c4]
push dword [ebp - 0x1c8]
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0xa0
jmp 0x41c916
cmp ecx, 0x64
ja case.default.0x41c398
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push dword [ebp - 0x98]
push dword [ebp - 0x9c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push dword [ebp - 0xc8]
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
push dword [ebp - 0xd4]
push dword [ebp - 0xd8]
push dword [ebp - 0xdc]
push dword [ebp - 0xe0]
push dword [ebp - 0xe4]
push dword [ebp - 0xe8]
push dword [ebp - 0xec]
push dword [ebp - 0xf0]
push dword [ebp - 0xf4]
push dword [ebp - 0xf8]
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
push dword [ebp - 0x104]
push dword [ebp - 0x108]
push dword [ebp - 0x10c]
push dword [ebp - 0x110]
push dword [ebp - 0x114]
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
push dword [ebp - 0x120]
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push dword [ebp - 0x12c]
push dword [ebp - 0x130]
push dword [ebp - 0x134]
push dword [ebp - 0x138]
push dword [ebp - 0x13c]
push dword [ebp - 0x140]
push dword [ebp - 0x144]
push dword [ebp - 0x148]
push dword [ebp - 0x14c]
push dword [ebp - 0x150]
push dword [ebp - 0x154]
push dword [ebp - 0x158]
push dword [ebp - 0x15c]
push dword [ebp - 0x160]
push dword [ebp - 0x164]
push dword [ebp - 0x168]
push dword [ebp - 0x16c]
push dword [ebp - 0x170]
push dword [ebp - 0x174]
push dword [ebp - 0x178]
push dword [ebp - 0x17c]
push dword [ebp - 0x180]
push dword [ebp - 0x184]
push dword [ebp - 0x188]
push dword [ebp - 0x18c]
push dword [ebp - 0x190]
push dword [ebp - 0x194]
push dword [ebp - 0x198]
push dword [ebp - 0x19c]
push dword [ebp - 0x1a0]
push dword [ebp - 0x1a4]
push dword [ebp - 0x1a8]
push dword [ebp - 0x1ac]
push dword [ebp - 0x1b0]
push dword [ebp - 0x1b4]
push dword [ebp - 0x1b8]
push dword [ebp - 0x1bc]
push dword [ebp - 0x1c0]
push dword [ebp - 0x1c4]
push dword [ebp - 0x1c8]
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
add esp, 0x190
jmp 0x41c916
push 0x14
pop eax
cmp eax, ecx
sbb al, al
inc al
cmp ecx, 0x14
mov byte [ebp - 0x17], al
ja case.default.0x41c398
jmp dword [ecx*4 + 0x41caa0]
call ebx
jmp 0x41c916
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
jmp 0x41c916
push dword [ebp - 0x1c8]
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d0]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push dword [ebp - 0x1e8]
push dword [ebp - 0x1ec]
push dword [ebp - 0x1f0]
push dword [ebp - 0x1f4]
push dword [ebp - 0x1f8]
push dword [ebp - 0x1fc]
push dword [ebp - 0x200]
push dword [ebp - 0x204]
push dword [ebp - 0x208]
push dword [ebp - 0x20c]
push dword [ebp - 0x210]
push dword [ebp - 0x214]
call ebx
mov dword [ebp - 8], eax
cmp byte [ebp + 0x17], 0
jle 0x41c934
cmp byte [ebp - 2], 0
jg 0x41c934
cmp dword [ebp - 0x24], 0
je 0x41c934
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp byte [ebp - 0xa], 0
je 0x41c956
call dword [0x4a6238]
mov al, byte [ebp - 0xa]
mov ecx, dword [ebp + 8]
not al
and byte [ecx + 0x10], al
push 0x4a6658
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp - 0xb], 0
jg 0x41c965
push dword [ebp - 0x58]
call fcn.0040d55e
pop ecx
mov eax, dword [ebp - 0x21c]
or eax, dword [ebp - 0x218]
je 0x41c979
cmp byte [ebp - 0xb], 0
jg 0x41c97e
call fcn.00410450
mov eax, dword [ebp - 0x30]
mov ax, word [eax]
test ax, ax
je 0x41c9d1
cmp ax, 0x2a
je 0x41c9aa
cmp byte [ebp - 0x17], 0
je 0x41c9aa
mov eax, dword [ebp - 8]
cdq
push edx
push eax
lea eax, [ebp - 0x2ac]
push eax
call fcn.0046f8a5
add esp, 0xc
and dword [ebp - 8], 0
xor esi, esi
mov ecx, dword [ebp - 0x30]
mov ax, word [ecx]
cmp ax, si
je 0x41c9d1
cmp ax, 0x2a
je 0x41c9d1
lea eax, [ebp - 0x2ac]
push eax
push ecx
mov ecx, dword [ebp + 8]
call fcn.00432698
mov esi, dword [ebp - 0x38]
test esi, esi
jge 0x41c9f1
mov eax, dword [ebp + esi*4 - 0x7a8]
test eax, eax
je 0x41c9ee
lea ecx, [ebp + 8]
mov dword [ebp + 8], eax
call fcn.0042dd2d
inc esi
js 0x41c9d8
lea ecx, [ebp - 0x58]
call fcn.0042dd2d
lea ecx, [ebp - 0x50]
call fcn.00417996
lea ecx, [ebp - 0x234]
call fcn.004469a5
lea ecx, [ebp - 0x30]
call fcn.0042dd2d
lea ecx, [ebp - 0x54]
call fcn.0042dd2d
mov eax, dword [ebp - 8]
jmp 0x41ca55
lea ecx, [ebp - 0x50]
call fcn.00417996
lea ecx, [ebp - 0x234]
call fcn.004469a5
lea ecx, [ebp - 0x30]
call fcn.0042dd2d
lea ecx, [ebp - 0x54]
call fcn.0042dd2d
mov al, byte [ebp - 0x15]
neg al
sbb eax, eax
and eax, 0x7ff8ffa9
add eax, 0x80070057
pop edi
pop esi
pop ebx
leave
ret 0x10