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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x51e470
sub esp, 0xc8
mov eax, 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x1a0]
test ecx, ecx
jg 0x51e44f
mov ecx, dword [esp + 0xd8]
test ecx, ecx
jg 0x51e369
mov edx, dword [esp + 0xe0]
test byte [edx], al
lea esi, [edx + 0x10]
lea edi, [esp + 0xb4]
call fcn.0044bc5e
lea edi, [esp + 0xa0]
lea esi, [esp + 0xb4]
call fcn.0044bc5e
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov ebp, ebx
shr ebx, 0x1f
shl ebx, 0x1f
test ebx, ebx
je 0x51e352
shl ebp, 1
mov ebx, ecx
shr ecx, 0x1f
or ecx, ebp
mov ebp, ebx
shl ebx, 1
shr ebx, 0x1f
mov esi, ecx
shl ecx, 1
or ecx, ebx
mov ebx, ecx
add ecx, 0xd7b17f80
shr esi, 0x1f
add ebx, 0xd7b17f80
adc esi, 0xd
test esi, esi
sete bl
test ecx, ecx
sete cl
and ebx, ecx
test bl, bl
je 0x51e34b
test ebp, 0x3fffffff
sete cl
test cl, cl
jne 0x51e32c
lea edi, [esp + 0x14]
mov dword [esp + 0x3c], edi
lea esi, [eax + 0x158]
call fcn.0044bc5e
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044bc5e
call fcn.004706b0
movzx eax, byte [esp + 0x28]
test al, al
je 0x51df35
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 1
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
lea eax, [0x65f930]
mov dword [esp], eax
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
call fcn.00407420
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xc8
ret
mov eax, dword [esp + 0xcc]
lea esi, [eax + 0x16c]
mov edi, dword [esp + 0x3c]
call fcn.0044bc5e
mov edi, esp
lea esi, [esp + 0xb4]
call fcn.0044bc5e
call fcn.00470550
movzx eax, byte [esp + 0x28]
test al, al
jne 0x51dea4
mov eax, dword [esp + 0xe0]
mov eax, dword [eax + 0x30]
test eax, eax
jne 0x51df7e
mov eax, 0x3d090
mov dword [esp + 0x34], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 1
jne 0x51e305
mov edx, dword [esp + 0xd8]
test edx, edx
je 0x51e2b2
mov ebx, dword [esp + 0xd4]
mov ebx, dword [ebx]
cmp ecx, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], eax
jne 0x51e2a2
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
call fcn.00520bb0
movzx eax, byte [esp + 4]
test al, al
jne 0x51e207
jne 0x51e13e
mov eax, dword [esp + 0xd0]
cmp eax, 1
jne 0x51e132
mov eax, dword [esp + 0xcc]
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x51e0c3
movzx ecx, byte [eax + 0x1c1]
test cl, cl
je 0x51e0c3
movzx ecx, byte [eax + 0x1c0]
test cl, cl
je 0x51e037
mov ecx, dword [eax + 0x1c4]
test ecx, ecx
jl 0x51e037
mov edx, dword [esp + 0xd8]
dec edx
cmp edx, ecx
jg 0x51e054
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe8], 0
add esp, 0xc8
ret
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], 3
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea eax, [0x65f930]
mov dword [esp], eax
lea eax, [esp + 0x50]
mov dword [esp + 4], eax
call fcn.00407420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea eax, [0x65f930]
mov dword [esp], eax
lea eax, [esp + 0x60]
mov dword [esp + 4], eax
call fcn.00407420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
mov eax, dword [esp + 0xcc]
jmp 0x51e016
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00520960
movzx eax, byte [esp + 4]
test al, al
jne 0x51e162
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x51dfeb
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00520c20
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
lea ebx, [0x524d30]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0x44], ebx
lea ebp, [esp + 0x34]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x4c], ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
call fcn.00522120
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x51e1f2
mov eax, dword [esp + 0xd0]
cmp eax, 1
jmp 0x51dfeb
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.0051f620
movzx eax, byte [esp + 4]
test al, al
jne 0x51e22c
movzx eax, byte [esp + 0x2f]
test al, al
jmp 0x51dfdb
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 6
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
lea eax, [0x65f930]
mov dword [esp], eax
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
call fcn.00407420
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
cmp ecx, 2
je 0x51dfbf
xor eax, eax
jmp 0x51dfd3
lea eax, [0x5ea220]
mov dword [esp], eax
call fcn.00409a30
mov edi, dword [esp + 4]
mov dword [edi + 4], 0x38
mov eax, dword [0x7db370]
test eax, eax
jne 0x51e2f8
lea eax, [0x62bbd5]
mov dword [edi], eax
lea eax, [0x65f350]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edi
add esp, 0xc8
ret
lea eax, [0x62bbd5]
call fcn.0044b680
jmp 0x51e2dd
cmp ecx, 2
jne 0x51e318
mov edx, dword [esp + 0xd8]
test edx, edx
jmp 0x51df9f
cmp ecx, 1
mov edx, dword [esp + 0xd8]
mov ebx, 0
jmp 0x51dfb1
call fcn.004721f0
lea edi, [esp + 0xb4]
mov esi, esp
call fcn.0044bc5e
mov eax, dword [esp + 0xcc]
jmp 0x51de71
xor ecx, ecx
jmp 0x51de69
mov ebx, dword [esp + 0xa8]
mov esi, dword [esp + 0xac]
mov ebp, ecx
mov ecx, ebx
jmp 0x51de4c
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + ecx*4 - 4]
mov ebp, dword [ebx + 0x38]
mov esi, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x30]
mov edi, dword [eax + 0x24]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call fcn.00402140
movzx eax, byte [esp + 0x18]
test al, al
je 0x51e3be
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd8]
jmp 0x51ddd9
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], 5
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
lea eax, [0x65f930]
mov dword [esp], eax
lea eax, [esp + 0x90]
mov dword [esp + 4], eax
call fcn.00407420
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
add esp, 0xc8
ret
lea eax, [0x65f9b0]
mov dword [esp + 0xe4], eax
lea eax, [0x7db1e8]
mov dword [esp + 0xe8], eax
add esp, 0xc8
ret
call fcn.00449f20
jmp fcn.0051dd80