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

Disassembly:
sub esp, 0x200
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x34]
push edi
mov edi, dword [eax + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x70]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0xc4], edi
je 0x51ff77
mov eax, dword [edi + 0x68]
push ebp
mov ebp, dword [edi + 8]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], SysStringLen
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x40], bl
mov ecx, dword [edi + 0x74]
mov edx, dword [edi + 0x70]
push ecx
push ebx
push edx
lea ecx, [esp + 0x2c]
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x28], eax
call fcn.00490d80
cmp byte [edi + 0x7e], 0x22
jne 0x51f930
add dword [esp + 0x24], 2
cmp ebp, ebx
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], SysStringLen
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
mov byte [esp + 0xec], bl
je 0x51f989
mov eax, dword [edi + 0xc]
push eax
push ebx
push ebp
lea ecx, [esp + 0xd8]
call fcn.00490d80
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x18]
mov edi, dword [edx + 0x10]
mov eax, dword [edi + 0x28]
push 4
lea ecx, [esp + 0x98]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0xa4], eax
call fcn.0053a010
mov eax, dword [edi + 0x28]
push 4
lea ecx, [esp + 0xbc]
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xbc], ebx
mov dword [esp + 0xc8], eax
call fcn.0053a010
mov eax, dword [edi + 0x28]
push 4
lea ecx, [esp + 0x88]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x94], eax
call fcn.0053a010
mov edi, dword [edi + 0x28]
push 4
lea ecx, [esp + 0xa8]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xb4], edi
call fcn.0053a010
push 4
lea ecx, [esp + 0x78]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x84], ebx
call fcn.004705d0
push 4
lea ecx, [esp + 0x48]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x54], ebx
call fcn.004705d0
push 4
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x64], ebx
call fcn.004705d0
push 4
lea ecx, [esp + 0x68]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x74], ebx
call fcn.004705d0
lea esp, [esp]
mov eax, dword [esp + 0x24]
cmp eax, ebx
jl 0x51fad8
mov ecx, dword [esp + 0x28]
cmp ecx, 0xffffffff
je 0x51fb05
lea edx, [eax + 1]
cmp edx, ecx
jle 0x51fb05
mov eax, dword [esi + 8]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x44]
mov eax, dword [edx + 0x54]
cmp eax, ebx
jne 0x51faef
push 0x15
call fcn.0058171f
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x453
mov ecx, eax
call fcn.00582a09
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov cl, byte [eax + ecx]
inc eax
cmp cl, bl
mov byte [esp + 0x13], cl
mov dword [esp + 0x24], eax
je 0x51fde0
lea ecx, [esp + 0xf0]
call fcn.0040dd80
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
lea edi, [eax + ebp]
add eax, 2
mov dword [esp + 0x24], eax
mov dword [esp + 0x1cc], 0xe
xor edx, edx
mov dh, byte [edi + 1]
lea ecx, [eax + ebp]
mov ebp, dword [esp + 0x14]
add eax, 2
mov dl, byte [edi]
mov dword [esp + 0x24], eax
xor eax, eax
mov ah, byte [ecx + 1]
mov edi, edx
mov al, byte [ecx]
add eax, dword [ebp + 0x1c]
lea ecx, [esp + 0xf0]
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x1dc], eax
call fcn.004924b0
mov edx, dword [esp + 0xc8]
cmp byte [edx + 0x7e], 0x22
jne 0x51fba1
push 1
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0x28]
call fcn.00492600
jmp 0x51fbcd
cmp dword [esp + 0xb4], ebx
je 0x51fbc1
push ebx
lea ecx, [esp + 0x110]
push ecx
lea ecx, [esp + 0xd4]
call fcn.00492600
jmp 0x51fbcd
lea ecx, [esp + 0x10c]
call fcn.00461870
test byte [esp + 0x13], 0x10
je 0x51fc15
mov ecx, dword [esp + 0x1cc]
or ecx, 0x100
push 0xc
mov dword [esp + 0x1d0], ecx
call fcn.0043f080
add esp, 4
cmp eax, ebx
je 0x51fc00
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
jmp 0x51fc02
xor eax, eax
lea edx, [esp + 0x20]
push edx
mov ecx, eax
mov dword [esp + 0x204], eax
call fcn.00447700
test byte [esp + 0x13], 0x20
je 0x51fc35
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dl, byte [eax + ecx]
inc eax
mov byte [esp + 0x1fd], dl
mov dword [esp + 0x24], eax
jmp 0x51fc3d
mov byte [esp + 0x1fd], 1
push edi
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.00491880
cmp eax, ebx
mov dword [esp + 0x1d0], eax
je 0x51fda6
test byte [esp + 0x13], 1
je 0x51fcac
mov ecx, dword [edi + 0xd0]
lea eax, [esp + 0xf0]
push eax
push ebp
add ecx, 0x28
call fcn.004708b0
cmp eax, ebx
mov ebp, dword [esp + 0x18]
je 0x51fcb0
push ebx
push eax
mov ecx, ebp
call fcn.00541070
cmp eax, ebx
je 0x51fcb0
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x9c]
push edx
call fcn.0051f7e0
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.0051f360
jmp 0x51fcb0
mov ebp, dword [esp + 0x18]
test byte [esp + 0x13], 2
je 0x51fd02
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xf0]
push eax
push ecx
mov ecx, dword [edi + 0xd0]
add ecx, 0x28
call fcn.004708b0
cmp eax, ebx
je 0x51fd02
push ebx
push eax
mov ecx, ebp
call fcn.00541070
cmp eax, ebx
je 0x51fd02
push eax
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0xc0]
push eax
call fcn.0051f7e0
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.0051f360
test byte [esp + 0x13], 4
je 0x51fd54
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0xf0]
push ecx
mov ecx, dword [edi + 0xd0]
push edx
add ecx, 0x28
call fcn.004708b0
cmp eax, ebx
je 0x51fd54
push ebx
push eax
mov ecx, ebp
call fcn.00541070
cmp eax, ebx
je 0x51fd54
push eax
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x8c]
push ecx
call fcn.0051f7e0
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.0051f360
test byte [esp + 0x13], 8
je 0x51fda6
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0xd0]
lea edx, [esp + 0xf0]
push edx
push eax
add ecx, 0x28
call fcn.004708b0
cmp eax, ebx
je 0x51fda6
push ebx
push eax
mov ecx, ebp
call fcn.00541070
cmp eax, ebx
je 0x51fda6
push eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0xac]
push edx
call fcn.0051f7e0
add esp, 0xc
push ebx
push ebx
mov ecx, esi
call fcn.0051f360
mov eax, dword [esp + 0x1cc]
test ah, 1
je 0x51fdd4
mov ecx, dword [esp + 0x200]
cmp ecx, ebx
mov edi, ecx
je 0x51fdcd
call fcn.00447690
push edi
call fcn.0043f0a0
add esp, 4
mov dword [esp + 0x200], ebx
mov dword [esp + 0x1e4], ebx
jmp 0x51fac0
lea eax, [esp + 0x94]
push eax
mov ecx, esi
call fcn.0051f170
lea ecx, [esi + 0x50]
mov edx, ecx
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push ecx
push ecx
mov ecx, edi
call fcn.00423be0
push eax
mov ecx, edi
call fcn.005bf280
lea eax, [esp + 0xb8]
push eax
mov ecx, esi
call fcn.0051f170
lea ecx, [esi + 0x54]
mov edx, ecx
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push ecx
push ecx
mov ecx, edi
call fcn.00423be0
push eax
mov ecx, edi
call fcn.005bf280
lea eax, [esp + 0x84]
push eax
mov ecx, esi
call fcn.0051f170
lea ecx, [esi + 0x58]
mov edx, ecx
push eax
and edx, 0xfffff000
mov edi, dword [edx]
push ecx
push ecx
mov ecx, edi
call fcn.00423be0
push eax
mov ecx, edi
call fcn.005bf280
lea eax, [esp + 0xa4]
push eax
mov ecx, esi
call fcn.0051f170
lea ecx, [esi + 0x5c]
mov edx, ecx
push eax
and edx, 0xfffff000
mov esi, dword [edx]
push ecx
push ecx
mov ecx, esi
call fcn.00423be0
push eax
mov ecx, esi
call fcn.005bf280
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 0xd0]
push ebx
push 1
push eax
add ecx, 0x28
call fcn.00472090
mov ecx, dword [esp + 0x70]
cmp ecx, ebx
pop ebp
je 0x51fec7
mov edx, dword [esp + 0x60]
push edx
call fcn.005be630
jmp 0x51fed4
mov eax, dword [esp + 0x60]
push eax
call fcn.0043f0a0
add esp, 4
mov ecx, dword [esp + 0x5c]
cmp ecx, ebx
mov dword [esp + 0x60], ebx
je 0x51feec
mov edx, dword [esp + 0x50]
push edx
call fcn.005be630
jmp 0x51fef9
mov eax, dword [esp + 0x50]
push eax
call fcn.0043f0a0
add esp, 4
mov ecx, dword [esp + 0x4c]
cmp ecx, ebx
mov dword [esp + 0x50], ebx
je 0x51ff11
mov edx, dword [esp + 0x40]
push edx
call fcn.005be630
jmp 0x51ff1e
mov eax, dword [esp + 0x40]
push eax
call fcn.0043f0a0
add esp, 4
mov ecx, dword [esp + 0x7c]
cmp ecx, ebx
mov dword [esp + 0x40], ebx
je 0x51ff36
mov edx, dword [esp + 0x70]
push edx
call fcn.005be630
jmp 0x51ff43
mov eax, dword [esp + 0x70]
push eax
call fcn.0043f0a0
add esp, 4
lea ecx, [esp + 0xa0]
mov dword [esp + 0x70], ebx
call fcn.0051f6f0
lea ecx, [esp + 0x80]
call fcn.0051f6f0
lea ecx, [esp + 0xb4]
call fcn.0051f6f0
lea ecx, [esp + 0x90]
call fcn.0051f6f0
pop edi
pop esi
pop ebx
add esp, 0x200
ret