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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], ebx
test dl, dl
je 0x65d57c
add esp, 0xfffffff0
call fcn.0040593c
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov ebx, eax
mov esi, dword [ebp + 8]
xor eax, eax
push ebp
push 0x65d971
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, ebx
call fcn.00405300
mov ecx, dword [ebp - 0xc]
mov dl, 1
mov eax, dword [0x64bb90]
call fcn.0066bc90
mov edi, eax
mov dword [ebx + 0x7c], edi
test esi, esi
je 0x65d5c1
lea eax, [edi + 0x50]
mov edx, dword [esi + 0x34]
call fcn.00407378
mov dword [ebx + 4], 1
mov dword [ebx + 8], 1
movzx eax, byte [ebp + 0x10]
mov byte [ebx + 0x34], al
cmp dword [ebp + 0xc], 0
je 0x65d714
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x65d714
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
mov eax, edi
call fcn.004477ac
mov edi, eax
movzx eax, byte [edi + 4]
cmp eax, 0x1f
jg 0x65d63d
je 0x65d6ea
sub eax, 5
je 0x65d6dd
dec eax
je 0x65d6c5
sub eax, 0xf
je 0x65d655
sub eax, 8
je 0x65d6a3
jmp 0x65d708
sub eax, 0x45
je 0x65d669
sub eax, 0xc
je 0x65d6fa
sub eax, 0xb
je 0x65d67d
jmp 0x65d708
mov eax, dword [edi + 0xc]
cmp eax, 1
jle 0x65d708
mov dword [ebx + 4], eax
jmp 0x65d708
mov eax, dword [edi + 0xc]
cmp eax, 1
jle 0x65d708
mov dword [ebx + 8], eax
jmp 0x65d708
cmp dword [edi + 0xc], 0
jl 0x65d708
lea ecx, [ebp - 0x28]
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
call fcn.00618030
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x18], eax
jmp 0x65d708
cmp dword [edi + 0xc], 0
jl 0x65d708
lea ecx, [ebp - 0x28]
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
call fcn.00618030
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x20], eax
jmp 0x65d708
mov eax, dword [ebx + 0x7c]
lea ecx, [eax + 0x2c]
mov eax, dword [edi + 0x1c]
xor edx, edx
call fcn.0060c6a0
mov edx, dword [ebx + 0x7c]
mov byte [edx + 0x28], al
jmp 0x65d708
lea eax, [ebp - 4]
mov edx, dword [edi + 0x1c]
call fcn.004073c0
jmp 0x65d708
mov eax, dword [ebx + 0x7c]
add eax, 0x54
mov edx, dword [edi + 0x1c]
call fcn.00407378
jmp 0x65d708
mov eax, dword [ebx + 0x7c]
add eax, 0x58
mov edx, dword [edi + 0x1c]
call fcn.00407378
inc dword [ebp - 0x10]
dec dword [ebp - 0x1c]
jne 0x65d5fa
test esi, esi
je 0x65d946
lea edx, [ebp - 0x15]
mov eax, esi
call fcn.00603c98
test al, al
je 0x65d73e
movzx eax, byte [ebp - 0x15]
dec eax
sub al, 2
jb 0x65d737
sub al, 1
jne 0x65d73e
movzx eax, byte [ebp - 0x15]
mov byte [ebx + 0x34], al
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
cmp byte [eax + 0x40], 0
je 0x65d76b
lea eax, [ebp - 0x38]
mov edx, 0xc0c0c0
mov cl, 0xfc
call fcn.00434238
lea ecx, [ebp - 0x38]
lea edx, [ebx + 0x130]
mov eax, esi
call fcn.00608ab4
jmp 0x65d778
lea edx, [ebx + 0x130]
mov eax, esi
call fcn.00608bf8
mov eax, dword [esi + 0x48]
mov dword [ebx + 0x38], eax
mov eax, dword [esi + 0x4c]
mov dword [ebx + 0x3c], eax
mov edx, dword [ebx + 0x38]
push edx
push eax
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebx + 0x94]
push eax
lea eax, [ebx + 0x130]
xor ecx, ecx
mov edx, 0x64
call fcn.00605fb8
lea eax, [ebx + 0x310]
call fcn.00435764
test al, al
je 0x65d7eb
cmp dword [ebx + 0x10c], 0
jl 0x65d7eb
lea eax, [ebp - 0x3c]
lea edx, [ebx + 0x310]
call fcn.00433994
mov edx, dword [ebp - 0x3c]
lea ecx, [ebp - 0x28]
mov eax, dword [ebx + 0x10c]
call fcn.00618030
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x18], eax
lea eax, [ebx + 0x320]
call fcn.00435764
test al, al
je 0x65d82e
cmp dword [ebx + 0x110], 0
jl 0x65d82e
lea eax, [ebp - 0x40]
lea edx, [ebx + 0x320]
call fcn.00433994
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0x28]
mov eax, dword [ebx + 0x110]
call fcn.00618030
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0x20], eax
mov eax, esi
call fcn.00604a60
cmp eax, 0x1fffffff
je 0x65d846
mov edx, dword [ebx + 0x7c]
mov byte [edx + 0x28], 1
mov dword [edx + 0x2c], eax
lea edx, [ebp - 4]
mov eax, esi
call fcn.0060332c
cmp dword [ebp - 4], 0
je 0x65d880
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebx + 0x7c]
mov dl, 1
mov eax, dword [0x6467a4]
call fcn.00651c88
mov dword [ebx + 0x84], eax
lea eax, [ebx + 0x40]
push eax
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x38]
mov eax, esi
call fcn.00603840
lea eax, [ebx + 0x94]
push eax
mov ecx, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x38]
lea eax, [ebx + 0x130]
call fcn.00606018
mov eax, dword [ebx + 0xcc]
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 0xd0]
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0xd4]
mov dword [ebx + 0x64], eax
mov eax, dword [ebx + 0xd8]
mov dword [ebx + 0x58], eax
mov byte [ebx + 0x79], 0
cmp byte [ebx + 0xfc], 0
je 0x65d8d6
mov byte [ebx + 0x79], 1
mov eax, dword [ebx + 0xdc]
mov dword [ebx + 0x6c], eax
cmp byte [ebx + 0x100], 0
je 0x65d8ec
mov byte [ebx + 0x79], 1
mov eax, dword [ebx + 0xe0]
mov dword [ebx + 0x70], eax
cmp byte [ebx + 0x104], 0
je 0x65d902
mov byte [ebx + 0x79], 1
mov eax, dword [ebx + 0xe4]
mov dword [ebx + 0x74], eax
cmp byte [ebx + 0x108], 0
je 0x65d918
mov byte [ebx + 0x79], 1
mov eax, dword [ebx + 0xe8]
mov dword [ebx + 0x68], eax
lea eax, [ebx + 0x393]
push eax
lea ecx, [ebx + 0x392]
lea edx, [ebx + 0x391]
mov eax, esi
call fcn.00604930
mov eax, esi
call fcn.00604fdc
mov byte [ebx + 0x7a], al
mov eax, esi
call fcn.00603e40
mov byte [ebx + 0x78], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x65d978
lea eax, [ebp - 0x40]
mov edx, 2
call fcn.00406ff8
lea eax, [ebp - 0x38]
call fcn.0042eae4
lea eax, [ebp - 4]
call fcn.00406f98
ret