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

Disassembly:
mov ecx, dword [0x6cfe90]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x60]
cmp eax, dword [ecx + 8]
jbe 0x51f878
sub esp, 0xe0
mov edx, dword [esp + 0xe4]
mov ebx, dword [edx + 0x80]
lea ebp, [ebx + 1]
mov esi, dword [edx + 0x84]
mov edi, dword [edx + 0x88]
nop
mov dword [edx + 0x80], ebp
inc dword [edx + 0x88]
dec dword [edx + 0x64]
mov ecx, dword [edx + 0x58]
mov eax, dword [edx + 0x60]
cmp ecx, eax
jbe 0x51f872
mov ecx, dword [edx + 0x54]
movzx ecx, byte [ecx + eax]
test cl, 0x80
jne 0x51ee6b
mov ecx, 1
jmp 0x51eea0
mov ebp, ecx
and ecx, 0xffffffe0
cmp cl, 0xc0
jne 0x51ee7c
mov ecx, 2
jmp 0x51eea0
mov ecx, ebp
and ebp, 0xfffffff0
xchg ebp, eax
cmp al, 0xe0
xchg ebp, eax
jne 0x51ee8f
mov ecx, 3
jmp 0x51eea0
and ecx, 0xfffffff8
cmp cl, 0xf0
jne 0x51ee9e
mov ecx, 4
jmp 0x51eea0
xor ecx, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], esi
add eax, ecx
mov dword [edx + 0x60], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
lea eax, [esp + 0x38]
mov dword [esp + 0x10], eax
call fcn.0051f890
movzx eax, byte [esp + 0x14]
test al, al
je 0x51f2bd
mov eax, dword [esp + 0x3c]
cmp eax, 4
je 0x51eeff
xor eax, eax
jmp 0x51ef1e
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
lea ecx, [0x57be73]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004030e0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x51f14b
mov eax, dword [esp + 0x3c]
cmp eax, 3
jne 0x51f0b6
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
lea ecx, [0x57bcb0]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004030e0
movzx eax, byte [esp + 0xc]
test al, al
je 0x51f0b6
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
lea ebp, [esp + 0x44]
mov dword [esp + 0x10], ebp
lea ebp, [esp + 0x2c]
mov dword [esp + 0x14], ebp
call fcn.005200b0
movzx eax, byte [esp + 0x18]
test al, al
je 0x51f0a7
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0x88]
mov ebx, dword [ecx + 0x80]
mov ebp, dword [ecx + 0x84]
lea edi, [esp + 0x50]
lea esi, [0x5b6ae8]
call fcn.0046510c
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x54], ecx
mov eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x58], ecx
mov esi, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebp
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebp
mov edi, dword [esp + 0xe8]
test byte [edi], al
mov edx, dword [0x6cff38]
test edx, edx
je 0x51f097
lea eax, [0x56faa0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
call fcn.004113a0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0xe8]
mov edx, esi
lea esi, [esp + 0x50]
call fcn.0046510c
jmp 0x51f267
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
nop
mov eax, dword [esp + 0xe4]
mov dword [eax], 3
mov dword [eax + 0x24], 0x1a
mov ecx, dword [0x6cff38]
test ecx, ecx
je 0x51f0df
mov ecx, dword [eax + 0x20]
call fcn.00464ab0
mov dword [edi], ecx
lea ecx, [0x582493]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x30], ecx
mov dword [eax + 8], 0x1c
mov ecx, dword [0x6cff38]
test ecx, ecx
je 0x51f118
mov ecx, dword [eax + 4]
call fcn.00464ab0
mov dword [edi], ecx
lea ecx, [0x582f9d]
mov dword [eax + 4], ecx
mov ecx, dword [eax + 0x84]
mov edx, dword [eax + 0x88]
mov ebx, dword [eax + 0x80]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1d], 0
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x20]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
lea ebp, [esp + 0x1e]
mov dword [esp + 0x10], ebp
lea ebp, [esp + 0x1d]
mov dword [esp + 0x14], ebp
call fcn.0051fb50
movzx eax, byte [esp + 0x18]
test al, al
je 0x51f2ae
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0x88]
mov ebx, dword [ecx + 0x80]
mov ebp, dword [ecx + 0x84]
lea edi, [esp + 0x98]
lea esi, [0x5b6aa0]
call fcn.0046510c
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x9c], ecx
mov eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xa0], ecx
mov esi, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebp
mov dword [esp + 0xb0], edx
movzx edx, byte [esp + 0x1e]
mov byte [esp + 0xdd], dl
movzx edx, byte [esp + 0x1d]
mov byte [esp + 0xde], dl
mov edi, dword [esp + 0xe8]
test byte [edi], al
mov edx, dword [0x6cff38]
test edx, edx
je 0x51f259
lea eax, [0x56faa0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x98]
mov dword [esp + 8], eax
call fcn.004113a0
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0xe8]
mov edx, esi
lea esi, [esp + 0x98]
call fcn.0046510c
mov ebx, dword [esp + 0xe4]
mov ebp, dword [ebx + 0x64]
test ebp, ebp
jg 0x51f2cc
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x51f29f
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xe4]
jmp 0x51f2cc
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov ecx, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x60]
cmp ecx, ebp
jbe 0x51f86b
mov esi, dword [ebx + 0x54]
movzx ebp, byte [esi + ebp]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x51f2f3
xchg ebp, eax
cmp al, 9
xchg ebp, eax
jne 0x51f3aa
nop
inc dword [ebx + 0x80]
inc dword [ebx + 0x88]
mov ebp, dword [ebx + 0x64]
dec ebp
mov dword [ebx + 0x64], ebp
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x60]
cmp ecx, esi
jbe 0x51f864
mov edi, dword [ebx + 0x54]
movzx edi, byte [edi + esi]
xchg edi, eax
test al, 0x80
xchg edi, eax
jne 0x51f32a
mov ecx, 1
jmp 0x51f361
mov ecx, edi
and edi, 0xffffffe0
xchg edi, eax
cmp al, 0xc0
xchg edi, eax
jne 0x51f33d
mov ecx, 2
jmp 0x51f361
mov edi, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x51f34e
mov ecx, 3
jmp 0x51f361
and edi, 0xfffffff8
xchg edi, eax
cmp al, 0xf0
xchg edi, eax
jne 0x51f35f
mov ecx, 4
jmp 0x51f361
xor ecx, ecx
add esi, ecx
mov dword [ebx + 0x60], esi
test ebp, ebp
jg 0x51f2cc
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x51f39b
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xe4]
jmp 0x51f2cc
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
xchg ebp, eax
cmp al, 0x23
xchg ebp, eax
je 0x51f66c
mov ecx, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x60]
cmp ebp, ecx
jae 0x51f665
mov esi, dword [ebx + 0x54]
movzx edi, byte [esi + ebp]
xchg edi, eax
cmp al, 0xd
xchg edi, eax
je 0x51f4bb
xchg edi, eax
cmp al, 0xa
xchg edi, eax
jne 0x51f3e6
xchg edi, eax
cmp al, 0xd
xchg edi, eax
jmp 0x51f4bb
xchg edi, eax
cmp al, 0xc2
xchg edi, eax
jne 0x51f40f
lea edx, [ebp + 1]
cmp ecx, edx
jbe 0x51f65e
lea edx, [ebp + esi + 1]
cmp byte [edx], 0x85
jne 0x51f40b
xchg edi, eax
cmp al, 0xd
xchg edi, eax
jmp 0x51f4bb
mov edx, dword [esp + 0x20]
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x51f4ac
lea edx, [ebp + 1]
cmp ecx, edx
jbe 0x51f657
lea eax, [ebp + esi + 1]
movzx eax, byte [eax]
cmp al, 0x80
jne 0x51f461
lea ebx, [ebp + 2]
cmp ecx, ebx
jbe 0x51f650
lea ebx, [ebp + esi + 2]
cmp byte [ebx], 0xa8
jne 0x51f453
xchg edi, eax
cmp al, 0xd
xchg edi, eax
mov ebx, dword [esp + 0xe4]
jmp 0x51f4bb
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
mov ebx, dword [esp + 0xe4]
jmp 0x51f466
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x51f4a4
cmp ecx, edx
jbe 0x51f649
cmp al, 0x80
jne 0x51f49a
lea eax, [ebp + 2]
cmp ecx, eax
jbe 0x51f644
lea edx, [ebp + esi + 2]
cmp byte [edx], 0xa9
jne 0x51f490
xchg edi, eax
cmp al, 0xd
xchg edi, eax
jmp 0x51f4bb
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
jmp 0x51f4ac
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
jmp 0x51f4ac
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x51f5a3
xchg edi, eax
cmp al, 0xd
xchg edi, eax
je 0x51f555
xchg edi, eax
cmp al, 0xa
xchg edi, eax
je 0x51f555
xchg edi, eax
cmp al, 0xc2
xchg edi, eax
jne 0x51f4e7
lea eax, [ebp + 1]
cmp ecx, eax
jbe 0x51f63f
lea edx, [ebp + esi + 1]
cmp byte [edx], 0x85
je 0x51f555
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x51f594
lea eax, [ebp + 1]
cmp ecx, eax
jbe 0x51f63a
lea edx, [ebp + esi + 1]
movzx edx, byte [edx]
cmp dl, 0x80
jne 0x51f52d
mov byte [esp + 0x1f], dl
lea edx, [ebp + 2]
cmp ecx, edx
jbe 0x51f633
lea edx, [ebp + esi + 2]
cmp byte [edx], 0xa8
je 0x51f555
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
movzx edx, byte [esp + 0x1f]
jmp 0x51f532
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x51f594
cmp ecx, eax
jbe 0x51f62e
cmp dl, 0x80
jne 0x51f594
lea eax, [ebp + 2]
cmp ecx, eax
jbe 0x51f629
lea eax, [ebp + esi + 2]
cmp byte [eax], 0xa9
jne 0x51f594
cmp dword [ebx + 0x64], 2
jge 0x51f57b
mov dword [esp], ebx
mov dword [esp + 4], 2
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x51f585
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
call fcn.0051ae70
jmp 0x51f594
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov byte [esp + 0xec], 1
add esp, 0xe0
ret
nop
mov dword [ebx], 3
mov dword [ebx + 0x24], 0x1a
mov ecx, dword [0x6cff38]
test ecx, ecx
je 0x51f5c5
mov ecx, dword [ebx + 0x20]
call fcn.00464ab0
mov dword [edi], ecx
lea ecx, [0x582493]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], edx
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x30], eax
mov dword [ebx + 8], 0x2b
mov eax, dword [0x6cff38]
test eax, eax
je 0x51f5f6
mov eax, dword [ebx + 4]
call fcn.00464ab0
mov dword [edi], eax
lea eax, [0x587168]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
mov edx, dword [ebx + 0x88]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], ecx
mov dword [ebx + 0x1c], edx
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
call fcn.00464b30
call fcn.00464b30
mov eax, edx
call fcn.00464b30
call fcn.00464b30
call fcn.00464b30
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, ebp
call fcn.00464b30
mov ecx, dword [ebx + 0x58]
mov ebp, dword [ebx + 0x60]
cmp ecx, ebp
jbe 0x51f85d
mov esi, dword [ebx + 0x54]
movzx edi, byte [esi + ebp]
xchg edi, eax
cmp al, 0xd
xchg edi, eax
je 0x51f3b5
xchg edi, eax
cmp al, 0xa
xchg edi, eax
je 0x51f3b5
xchg edi, eax
cmp al, 0xc2
xchg edi, eax
jne 0x51f6ba
lea edx, [ebp + 1]
cmp ecx, edx
jbe 0x51f856
lea edx, [esi + ebp + 1]
cmp byte [edx], 0x85
je 0x51f7fc
mov edx, dword [esp + 0x20]
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x51f74a
lea edx, [ebp + 1]
cmp ecx, edx
jbe 0x51f84f
lea eax, [esi + ebp + 1]
movzx eax, byte [eax]
cmp al, 0x80
jne 0x51f702
lea ebx, [ebp + 2]
cmp ecx, ebx
jbe 0x51f848
lea ebx, [esi + ebp + 2]
cmp byte [ebx], 0xa8
je 0x51f805
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
mov ebx, dword [esp + 0xe4]
jmp 0x51f707
xchg edi, eax
cmp al, 0xe2
xchg edi, eax
jne 0x51f742
cmp ecx, edx
jbe 0x51f841
cmp al, 0x80
jne 0x51f738
lea eax, [ebp + 2]
cmp ecx, eax
jbe 0x51f83c
lea edx, [esi + ebp + 2]
cmp byte [edx], 0xa9
je 0x51f819
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
jmp 0x51f74a
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
jmp 0x51f74a
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
xchg edi, eax
test al, al
xchg edi, eax
je 0x51f3b5
nop
inc dword [ebx + 0x80]
inc dword [ebx + 0x88]
mov ebp, dword [ebx + 0x64]
dec ebp
mov dword [ebx + 0x64], ebp
mov ecx, dword [ebx + 0x58]
mov esi, dword [ebx + 0x60]
cmp ecx, esi
jbe 0x51f835
mov edi, dword [ebx + 0x54]
movzx edi, byte [edi + esi]
xchg edi, eax
test al, 0x80
xchg edi, eax
jne 0x51f78b
mov ecx, 1
jmp 0x51f7c2
mov ecx, edi
and edi, 0xffffffe0
xchg edi, eax
cmp al, 0xc0
xchg edi, eax
jne 0x51f79e
mov ecx, 2
jmp 0x51f7c2
mov edi, ecx
and ecx, 0xfffffff0
cmp cl, 0xe0
jne 0x51f7af
mov ecx, 3
jmp 0x51f7c2
and edi, 0xfffffff8
xchg edi, eax
cmp al, 0xf0
xchg edi, eax
jne 0x51f7c0
mov ecx, 4
jmp 0x51f7c2
xor ecx, ecx
add esi, ecx
mov dword [ebx + 0x60], esi
test ebp, ebp
jg 0x51f66c
mov dword [esp], ebx
mov dword [esp + 4], 1
call fcn.005187b0
movzx eax, byte [esp + 8]
test al, al
je 0x51f826
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xe4]
jmp 0x51f66c
mov edx, dword [esp + 0x20]
jmp 0x51f3b5
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xe4]
jmp 0x51f3b5
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
jmp 0x51f3b5
mov byte [esp + 0xec], 0
add esp, 0xe0
ret
mov eax, esi
call fcn.00464b30
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, ebx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, edx
call fcn.00464b30
mov eax, ebp
call fcn.00464b30
mov eax, esi
call fcn.00464b30
mov eax, ebp
call fcn.00464b30
call fcn.00464b30
nop
call fcn.004636b0
jmp fcn.0051ee00