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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x18]
cmp eax, dword [ecx + 8]
jbe 0x51ac65
sub esp, 0x98
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
call fcn.0051df10
movzx eax, byte [esp + 8]
movzx ecx, byte [esp + 0x11]
mov edx, dword [esp + 0xc]
movzx ebx, byte [esp + 0x10]
test cl, cl
je 0x51a887
mov byte [esp + 0x42], al
mov dword [esp + 0x50], edx
mov byte [esp + 0x43], bl
xor ecx, ecx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x51a903
lea eax, [0x644606]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 0x19
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], 0x19
call fcn.00408eb0
mov eax, dword [esp + 8]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea ecx, [0x69f94c]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
add esp, 0x98
ret
mov edi, dword [esp + 0x48]
inc edi
mov eax, ecx
mov ecx, ebp
mov ebp, edi
mov esi, dword [esp + 0x58]
mov edi, ebx
movzx ebx, byte [esp + 0x43]
mov dword [esp + 0x58], esi
mov dword [esp + 0x48], ebp
mov esi, dword [esp + 0xa0]
cmp esi, ecx
jle 0x51aaf7
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], esi
mov edx, dword [esp + 0xa4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.0051a210
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x64], edx
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
movzx edx, byte [esp + 0x1c]
test ecx, ecx
jne 0x51aabd
cmp ebp, 0x14
jg 0x51a97f
cmp ebp, 0xc
je 0x51a99f
cmp ebp, 0x12
je 0x51a99f
cmp ebp, 0x14
je 0x51a99f
jmp 0x51a9a4
cmp ebp, 0x18
jg 0x51a995
cmp ebp, 0x16
je 0x51a99f
cmp ebp, 0x17
jl 0x51a9a4
mov ebp, 0x17
jmp 0x51a9a4
cmp ebp, 0x1b
je 0x51a99f
cmp ebp, 0x1e
jne 0x51a9a4
mov ebp, 0x13
mov dword [esp + 0x58], ecx
movzx ecx, byte [esp + 0x42]
test cl, cl
je 0x51a9bc
mov edx, dword [esp + 0x50]
movzx esi, byte [esp + 0x43]
jmp 0x51a9db
test esi, esi
jne 0x51aa57
movzx esi, byte [esp + 0x43]
xchg esi, eax
cmp dl, al
xchg esi, eax
jne 0x51aa57
mov edx, dword [esp + 0x50]
cmp ebp, edx
jne 0x51aa57
lea ebp, [edi + eax]
cmp eax, ebp
jg 0x51a9f1
mov eax, dword [esp + 0xa0]
cmp eax, ebp
jge 0x51a8ed
lea eax, [0x640ecc]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0x12
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], 0x12
call fcn.00408eb0
mov eax, dword [esp + 8]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea ecx, [0x69f960]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
add esp, 0x98
ret
lea eax, [0x6425a2]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0x15
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov dword [esp + 4], 0x15
call fcn.00408eb0
mov eax, dword [esp + 8]
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
lea ecx, [0x69f94c]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
add esp, 0x98
ret
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0x64]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], ebx
add esp, 0x98
ret
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebp
call fcn.0047f290
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x5c], edx
lea edi, [esp + 0x80]
mov ebx, eax
xor eax, eax
call fcn.0045e87a
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
jmp 0x51ab68
mov edi, dword [esp + 0x4c]
inc edi
mov edx, dword [esp + 0x5c]
mov ebp, ecx
mov esi, ebx
mov ebx, dword [esp + 0x54]
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x48]
cmp eax, edi
jge 0x51ac37
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
call fcn.0047d540
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x18], ebx
lea edi, [esp + 0x1c]
lea esi, [esp + 0x80]
call fcn.0045ed54
call fcn.0051ac70
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
test ecx, ecx
je 0x51ab53
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], ebx
add esp, 0x98
ret
mov eax, dword [esp + 0x60]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xc8], esi
add esp, 0x98
ret
call fcn.0045d190
jmp fcn.0051a820