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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
call fcn.00407d6c
mov ebx, dword [ebp + 8]
lea esi, [ebx + 0xec]
mov dword [esp + 0x1c], esi
call fcn.00407d6c
mov al, byte [ebp + 0x24]
mov byte [ebx + 4], al
mov al, byte [ebp + 0x20]
mov byte [ebx + 5], al
mov eax, dword [ebp + 0xc]
lea edi, [ebx + 0x14]
mov dword [esp + 0x10], edi
cmp edi, eax
je 0x404f82
mov ecx, edi
call fcn.00401b3c
mov eax, dword [ebp + 0x10]
lea ecx, [ebx + 0x24]
mov dword [esp + 0x18], ecx
cmp ecx, eax
je 0x404f95
call fcn.00401b3c
lea eax, [ebx + 0xbc]
push 0x46df88
mov dword [esp + 0x24], eax
call fcn.0040214f
mov eax, dword [ebp + 0x18]
xor esi, esi
mov dword [ebx + 0x10], eax
xor eax, eax
inc esi
lea ecx, [esp + 0x38]
mov dword [ebx + 0xcc], esi
mov byte [ebx + 0xc], 1
mov dword [ebx + 8], eax
mov dword [ebx + 0xd0], eax
mov dword [ebx + 0xe4], eax
call fcn.004019d1
lea ecx, [esp + 0x48]
call fcn.004019d1
lea ecx, [esp + 0x58]
call fcn.004019d1
mov eax, dword [ebx + 0x10]
test eax, eax
jns 0x404ffd
push eax
call fcn.0045934b
pop ecx
mov dword [ebx + 0x10], eax
mov byte [ebx + 0xc], 0
cmp dword [ebx + 0x10], 4
jne 0x40500b
call fcn.00404c2a
mov dword [ebx + 0x10], esi
cmp dword [ebx + 0x18], 0
jne 0x405061
cmp dword [ebx + 0x28], 0
jne 0x405061
call dword [0x46b6d4]
push eax
mov esi, ebx
call fcn.0040425c
mov eax, dword [ebx]
mov eax, dword [eax]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
call fcn.004058bd
lea ecx, [esp + 0x58]
call fcn.00401a04
lea ecx, [esp + 0x48]
call fcn.00401a04
lea ecx, [esp + 0x38]
call fcn.00401a04
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [esp + 0x10]
xor edi, edi
call fcn.0040202d
cmp word [eax], 0x5b
jne 0x405317
mov edi, dword [ebx + 0x18]
mov eax, dword [esp + 0x10]
lea edi, [edi - 1]
call fcn.0040202d
cmp word [eax], 0x5d
jne 0x405317
mov eax, dword [ebx + 0x18]
sub eax, 2
push eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x18]
lea edi, [esp + 0x20]
lea eax, [esp + 0x44]
mov dword [esp + 0x20], esi
call fcn.00404df3
test al, al
je 0x405317
push 0x46e18c
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
jne 0x40539a
push 0x46e1a4
call fcn.004048df
pop ecx
test al, al
jne 0x4053f4
push 0x46e254
call fcn.004048df
pop ecx
test al, al
jne 0x40541b
push 0x46e264
call fcn.004048df
pop ecx
test al, al
je 0x405127
mov eax, dword [ebx + 8]
test al, 1
jne 0x40543c
or eax, 2
lea esi, [ebx + 0x34]
mov dword [ebx + 8], eax
call fcn.004073c8
lea ebx, [esp + 0x28]
jmp 0x405176
push 0x46e0fc
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x405153
mov ecx, dword [esp + 0x20]
or dword [ebx + 8], 8
lea eax, [esp + 0x48]
cmp ecx, eax
je 0x4052f2
jmp 0x4052d0
push 0x46e118
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x405193
or dword [ebx + 8], 0x10
lea esi, [ebx + 0x78]
call fcn.004073c8
lea ebx, [esp + 0x30]
lea eax, [esp + 0x48]
push eax
mov eax, esi
call fcn.004073fb
cmp dword [eax], 0
jne 0x405441
mov ebx, dword [ebp + 8]
jmp 0x4052f2
push 0x46e144
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x4051c2
push dword [esp + 0x48]
or dword [ebx + 8], 0x80
call fcn.00457220
pop ecx
mov dword [ebx + 0xd4], eax
jmp 0x4052f2
push 0x46e148
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x4051f1
push dword [esp + 0x48]
or dword [ebx + 8], 0x100
call fcn.00457220
pop ecx
mov dword [ebx + 0xd8], eax
jmp 0x4052f2
push 0x46e14c
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x405220
push dword [esp + 0x48]
or dword [ebx + 8], 0x200
call fcn.00457220
pop ecx
mov dword [ebx + 0xdc], eax
jmp 0x4052f2
push 0x46e150
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x40524f
push dword [esp + 0x48]
or dword [ebx + 8], 0x400
call fcn.00457220
pop ecx
mov dword [ebx + 0xe0], eax
jmp 0x4052f2
push 0x46e154
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x405278
push dword [esp + 0x48]
or dword [ebx + 8], 0x20
call fcn.00457220
pop ecx
mov dword [ebx + 0xcc], eax
jmp 0x4052f2
push 0x46e23c
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x4052a8
push 0x46df88
lea esi, [esp + 0x4c]
call fcn.004048df
pop ecx
test al, al
je 0x4053ef
or dword [ebx + 8], 0x40
jmp 0x4052f2
push 0x46e27c
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x4052db
mov eax, dword [ebx + 8]
test al, 2
jne 0x405445
or eax, 1
mov dword [ebx + 8], eax
lea ecx, [esp + 0x58]
lea eax, [esp + 0x48]
call fcn.00401b3c
jmp 0x4052f2
push 0x46df88
lea esi, [esp + 0x3c]
call fcn.004048df
pop ecx
test al, al
je 0x4053ef
push dword [esp + 0x24]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x18]
lea edi, [esp + 0x20]
lea eax, [esp + 0x44]
call fcn.00404df3
test al, al
jne 0x4050bc
xor esi, esi
inc esi
cmp dword [esp + 0x5c], 0
je 0x40532f
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x58]
cmp ecx, eax
je 0x40532f
call fcn.00401b3c
cmp dword [ebx + 8], 0
jne 0x405338
mov dword [ebx + 8], esi
or dword [ebx + 8], 4
cmp byte [ebx + 0xc], 0
mov edi, dword [0x46b61c]
jne 0x40535a
mov esi, dword [esp + 0x18]
call fcn.00401fca
mov eax, esi
push dword [eax + 4]
push dword [eax]
call edi
test byte [ebx + 8], 1
je 0x405378
cmp byte [ebx + 0xc], 0
jne 0x405378
mov esi, dword [esp + 0x10]
call fcn.00401fca
mov eax, esi
push dword [eax + 4]
push dword [eax]
call edi
cmp byte [ebp + 0x1c], 0
push ebx
push 0x405487
je 0x405449
call dword [0x46b5e8]
push eax
call dword [0x46b618]
jmp 0x40544f
push 0x46df88
lea esi, [esp + 0x4c]
call fcn.004048df
pop ecx
test al, al
je 0x4053ef
mov ebx, dword [ebx]
test ebx, ebx
je 0x4053eb
mov eax, dword [ebx]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
call fcn.004058bd
xor esi, esi
inc esi
lea ecx, [esp + 0x58]
call fcn.00401a04
lea ecx, [esp + 0x48]
call fcn.00401a04
lea ecx, [esp + 0x38]
call fcn.00401a04
mov eax, esi
jmp 0x405058
xor esi, esi
jmp 0x4053c9
or esi, 0xffffffff
jmp 0x4053c9
push 0x46df88
lea esi, [esp + 0x4c]
call fcn.004048df
pop ecx
test al, al
je 0x4053ef
call dword [0x46b6d4]
push eax
mov esi, ebx
call fcn.0040425c
mov eax, dword [ebx]
mov eax, dword [eax]
jmp 0x4053b5
mov edi, dword [esp + 0x48]
lea esi, [esp + 0x14]
call fcn.0040fe95
push dword [esp + 0x14]
call dword [0x46b5ec]
test eax, eax
je 0x4053eb
push dword [esp + 0x14]
jmp 0x40540e
push 0xfffffffffffffffd
pop esi
jmp 0x4053c9
push 0xfffffffffffffffe
jmp 0x40543e
push 0xfffffffffffffffc
jmp 0x40543e
call dword [0x46b5e4]
mov edi, dword [ebp + 0x14]
mov ebx, dword [esp + 0x1c]
mov eax, edi
call fcn.00405935
mov esi, ebx
call fcn.00407d6c
mov esi, dword [ebp + 8]
cmp dword [esi + 0xe4], 1
jl 0x40547c
mov eax, dword [edi + 4]
mov eax, dword [eax]
push dword [eax]
call fcn.0040425c
mov esi, dword [esi + 0xe4]
jmp 0x4053c9