Function at 0x473bf0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x20c]
sub esp, 0x20c
push 0xffffffffffffffff
push 0x56ac20
mov eax, dword fs:[0]
push eax
sub esp, 0x10
mov eax, dword [0x5b3480]
xor eax, ebp
mov dword [ebp + 0x208], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, dword [ebp + 0x214]
mov ecx, dword [esi + 0x40]
mov eax, dword [ebp + 0x218]
mov dword [ebp - 0x14], ebx
mov edi, dword [ebx]
mov dword [ebp - 0x18], eax
cmp ecx, edi
je 0x473c72
test ecx, ecx
je 0x473c5e
mov eax, dword [ecx]
push ecx
mov dword [ebp - 4], 0
call dword [eax + 8]
mov dword [ebp - 4], 0xffffffff
mov dword [esi + 0x40], edi
test edi, edi
je 0x473c72
mov eax, dword [edi]
push edi
mov dword [ebp - 4], 1
call dword [eax + 4]
mov ebx, dword [ebx + 4]
mov edx, 0x600
mov eax, ebx
and eax, 0x200
test ebx, 0x400
cmove edx, eax
mov edi, edx
or edi, 0xa00
test ebx, 0x800
cmove edi, edx
test edi, edi
je 0x473ca7
and ebx, 0x8000
or edi, ebx
mov ebx, dword [ebp - 0x14]
mov dword [esi + 0x70], edi
mov eax, dword [ebx + 8]
mov dword [esi + 0x74], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x78], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x7c], eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
test edi, 0x200
jne 0x473cef
mov dword [esi + 0x54], 0
xor eax, eax
jmp 0x4740c8
mov ecx, 2
test edi, 0x800
jne 0x473d01
mov ecx, 1
push 0
push 1
push 1
mov dword [esi + 0x54], ecx
push 0
mov byte [esi + 0x5c], 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi + 0x50], eax
test eax, eax
jne 0x473d3e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
js 0x4740c8
je 0x4740bf
movzx eax, ax
or eax, 0x83ff0000
jmp 0x4740c8
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x473e17
cmp word [eax], 0
je 0x473e17
push 0x30
mov byte [ebp - 0xd], 1
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
call fcn.0040bd50
add esp, 4
test eax, eax
je 0x4740c3
mov ecx, eax
call fcn.004724b0
mov edi, eax
test edi, edi
je 0x4740c3
cmp byte [ebp + 0x220], 0
jne 0x473d9e
cmp byte [ebp + 0x224], 0
mov byte [ebp - 0xe], 1
jne 0x473da2
mov byte [ebp - 0xe], 0
mov eax, dword [edi]
mov ecx, edi
mov ebx, dword [ebx + 0x20]
call dword [eax + 0x44]
mov ecx, edi
call fcn.00472370
test eax, eax
jne 0x473dcb
mov edx, dword [edi]
mov ecx, edi
push 1
mov ebx, 0xc20203e8
call dword [edx]
mov eax, ebx
jmp 0x4740c8
mov cl, byte [ebp - 0xe]
push 0
push 1
push 3
push 4
mov byte [eax + 0x59], cl
mov ecx, edi
push ebx
mov byte [eax + 0x58], 1
call fcn.004b6240
mov ebx, eax
test ebx, ebx
jns 0x473dfa
mov edx, dword [edi]
mov ecx, edi
push 1
call dword [edx]
mov eax, ebx
jmp 0x4740c8
mov dword [esi + 0x24], edi
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0xc]
call eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
jmp 0x473f28
test dword [esi + 0x70], 0x8000
mov byte [ebp - 0xd], 0
jne 0x473ee0
push 0x30
call fcn.0040bd50
add esp, 4
test eax, eax
je 0x4740c3
mov ecx, eax
call fcn.004724b0
mov edi, eax
test edi, edi
je 0x4740c3
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x44]
mov ecx, edi
call fcn.00472370
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x473db7
mov al, byte [ebp + 0x220]
push dword [ebp - 0x18]
xor al, 1
mov byte [ecx + 0x59], 0
mov byte [ecx + 0x58], al
lea eax, [ebp]
push 0x5846e8
push eax
call fcn.004b64c0
mov ebx, eax
add esp, 0xc
test ebx, ebx
js 0x473deb
mov ecx, dword [ebp - 0x14]
mov edx, 0x100
mov eax, 0x4000100
cmp byte [ecx + 0x58], 0
mov ecx, edi
cmovne eax, edx
push eax
push 1
push 7
push 2
lea eax, [ebp]
push eax
call fcn.004b6240
mov ebx, eax
test ebx, ebx
js 0x473deb
cmp byte [ebp + 0x220], 0
jne 0x473f25
cmp byte [ebp + 0x224], 0
je 0x473f25
push 1
mov ecx, edi
call fcn.00474190
jmp 0x473f25
push 0x18
call fcn.0040bd50
mov edi, eax
add esp, 4
test edi, edi
je 0x4740c3
push 0xfffffffffffffffe
mov dword [edi + 8], 0
mov ecx, edi
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi], 0x578320
push dword [esi + 0x30]
call fcn.004b5750
mov ebx, eax
test ebx, ebx
js 0x473deb
mov dword [esi + 0x24], edi
mov ebx, dword [esi + 0x34]
mov ecx, 1
mov edx, dword [esi + 0x30]
mov dword [ebp - 0x18], 0
mov dword [esi + 0x6c], 0x1000
test ebx, ebx
jl 0x474005
jg 0x473f53
test edx, edx
je 0x474005
cmp byte [ebp - 0xd], 0
jne 0x473f7b
mov ecx, dword [esi + 0x24]
push ebx
push edx
mov eax, dword [ecx]
call dword [eax + 0x28]
test eax, eax
js 0x4740c8
mov ecx, dword [esi + 0x24]
mov eax, dword [ecx]
call dword [eax + 0x2c]
test eax, eax
js 0x4740c8
mov ebx, dword [esi + 0x30]
mov ecx, ebx
mov edi, dword [esi + 0x6c]
add ecx, edi
mov eax, dword [esi + 0x34]
adc eax, 0
sub ecx, 1
push 0
push edi
sbb eax, 0
push eax
push ecx
call fcn.00491bb0
mov ecx, eax
test edx, edx
jl 0x473fe9
jg 0x473fb0
cmp ecx, 0x100000
jbe 0x473fdf
jmp 0x473fb0
mov eax, dword [esi + 0x34]
add edi, edi
mov ecx, ebx
add ecx, edi
push 0
adc eax, 0
sub ecx, 1
push edi
sbb eax, 0
push eax
push ecx
call fcn.00491bb0
mov ecx, eax
test edx, edx
jg 0x473fb0
jl 0x473fdc
cmp ecx, 0x100000
ja 0x473fb0
mov dword [esi + 0x6c], edi
test edx, edx
jg 0x473ff5
jl 0x473fe9
test ecx, ecx
jne 0x473ff5
mov ecx, 1
mov dword [ebp - 0x18], 0
mov ebx, edi
test edi, edi
jne 0x474039
mov eax, 0x82180011
jmp 0x4740c8
mov edi, 0x1000
test ebx, ebx
jg 0x473ff5
jl 0x474014
test edx, edx
jae 0x473ff5
cmp dword [esi + 0x54], 2
je 0x474024
mov eax, 0x82180001
jmp 0x4740c8
mov edi, 0x100000
mov dword [esi + 0x6c], 0x100000
mov dword [ebp - 0x18], 0
mov ebx, edi
mov eax, dword [esi + 0x78]
mov dword [esi + 0x58], 0
test eax, eax
je 0x474054
lea ebx, [eax - 1]
xor edx, edx
add ebx, edi
mov eax, ebx
div edi
sub ebx, edx
mov eax, esi
mov edx, 0x78
mov dword [edx + eax], ebx
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x474074
lea ebx, [eax - 1]
xor edx, edx
add ebx, edi
mov eax, ebx
div edi
sub ebx, edx
jmp 0x474076
mov ebx, edi
mov dword [esi + 0x7c], ebx
mov bl, byte [ebp - 0xd]
movzx eax, bl
push eax
push ecx
lea ecx, [esi + 0x28]
call fcn.00474880
test eax, eax
jne 0x474094
mov eax, 0x821803e8
jmp 0x4740c8
mov eax, dword [esi + 0x30]
or eax, dword [esi + 0x34]
je 0x4740a0
test bl, bl
je 0x4740ae
mov ecx, dword [esi + 0x2c]
mov eax, dword [ecx]
and eax, 0xfffffffc
bts eax, 0
mov dword [ecx], eax
cmp byte [ebp + 0x21c], 0
je 0x4740bf
test bl, bl
jne 0x4740bf
mov byte [esi + 0x5c], 1
xor eax, eax
jmp 0x4740c8
mov eax, 0x8007000e
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x208]
xor ecx, ebp
call fcn.004913e0
lea esp, [ebp + 0x20c]
pop ebp
ret 0x14