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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5173d3
sub esp, 0x60
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
xor ebx, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
xor ebx, ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x24], 0
mov byte [esp + 0x23], 0
xor eax, eax
cmp eax, edx
jge 0x516d80
cmp eax, edx
jae 0x5172e5
mov ebp, esi
add ebp, eax
movzx ebx, byte [ebp]
cmp bl, 0x25
jne 0x5172c1
mov ebx, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x24], ebx
mov ecx, eax
add ecx, 2
cmp ecx, edx
jge 0x5171d7
mov ebx, eax
inc ebx
cmp ebx, edx
jae 0x5172ba
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x51728b
cmp cl, 0x39
ja 0x51728b
mov ecx, 1
cmp cl, 0
je 0x5171d7
mov ebx, eax
add ebx, 2
cmp ebx, edx
jae 0x517284
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x517255
cmp cl, 0x39
ja 0x517255
mov ecx, 1
cmp cl, 0
je 0x5171d7
mov ebx, dword [esp + 0x6c]
cmp ebx, 2
jne 0x516c89
mov ebx, eax
inc ebx
cmp ebx, edx
jae 0x5171d0
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x517197
cmp cl, 0x39
ja 0x517197
mov ebx, ecx
sub ebx, 0x30
mov ecx, ebx
cmp cl, 8
jae 0x516c89
mov ecx, eax
add ecx, 3
mov dword [esp + 0x28], eax
cmp ecx, edx
ja 0x517190
cmp eax, ecx
ja 0x517190
mov edi, ecx
sub edi, eax
mov ecx, esi
cmp edi, 0
je 0x516c3d
add ecx, eax
mov dword [esp + 0x44], ecx
cmp edi, 3
jne 0x517125
mov ebp, dword [esp + 0x44]
mov dword [esp], ebp
mov dword [esp + 0x48], edi
mov dword [esp + 4], edi
mov ebp, 0x5f57e5
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.00452ad0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x517125
mov ebx, dword [esp + 0x6c]
cmp ebx, 3
jne 0x516d75
mov ebx, eax
inc ebx
cmp ebx, edx
jae 0x51711e
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x5170e5
cmp cl, 0x39
ja 0x5170e5
mov ebx, ecx
sub ebx, 0x30
mov edi, ebx
mov ebx, eax
add ebx, 2
cmp ebx, edx
jae 0x5170de
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x5170a5
cmp cl, 0x39
ja 0x5170a5
mov ebx, ecx
sub ebx, 0x30
mov ecx, ebx
mov ebx, edi
shl ebx, 4
mov ebp, ebx
or ebp, ecx
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov ebp, eax
add ebp, 3
mov dword [esp + 0x28], eax
cmp ebp, edx
ja 0x51709e
cmp eax, ebp
ja 0x51709e
mov edi, ebp
sub edi, eax
mov ebp, esi
cmp edi, 0
je 0x516d29
add ebp, eax
mov dword [esp + 0x3c], ebp
cmp edi, 3
jne 0x516ff4
mov ebp, dword [esp + 0x3c]
mov dword [esp], ebp
mov dword [esp + 0x40], edi
mov dword [esp + 4], edi
mov ebp, 0x5f57e5
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.00452ad0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x516ff4
add eax, 3
cmp eax, edx
jl 0x516b3c
mov ebx, dword [esp + 0x24]
cmp ebx, 0
jne 0x516da6
cmp byte [esp + 0x23], 0
jne 0x516da6
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edx
xor ebx, ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
add esp, 0x60
ret
mov ebx, dword [esp + 0x24]
shl ebx, 1
mov eax, edx
sub eax, ebx
mov dword [esp], 0x5c4140
mov ecx, eax
cdq
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, ecx
cdq
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.0043c0d0
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x5c], ebx
xor ecx, ecx
xor eax, eax
cmp eax, edi
jge 0x516e94
cmp eax, edi
jae 0x516f93
mov ebp, dword [esp + 0x64]
add ebp, eax
movzx ebx, byte [ebp]
cmp bl, 0x25
jne 0x516f5d
mov ebx, eax
inc ebx
cmp ebx, edi
jae 0x516f56
mov ebp, dword [esp + 0x64]
add ebp, ebx
movzx ebx, byte [ebp]
mov edx, ebx
cmp bl, 0x30
jb 0x516f1d
cmp dl, 0x39
ja 0x516f1d
mov ebx, edx
sub ebx, 0x30
mov esi, ebx
mov ebx, eax
add ebx, 2
cmp ebx, edi
jae 0x516f16
mov ebp, dword [esp + 0x64]
add ebp, ebx
movzx ebx, byte [ebp]
mov edx, ebx
cmp bl, 0x30
jb 0x516edd
cmp dl, 0x39
ja 0x516edd
mov ebx, edx
sub ebx, 0x30
mov edx, ebx
mov ebp, esi
shl ebp, 4
mov ebx, ebp
or ebx, edx
mov esi, dword [esp + 0x58]
cmp ecx, esi
jae 0x516ed6
mov esi, dword [esp + 0x54]
add esi, ecx
mov byte [esi], bl
inc ecx
add eax, 3
cmp eax, edi
jl 0x516dfa
mov dword [esp], 0
mov ebx, dword [esp + 0x54]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0xc], ebx
call fcn.0043ff10
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x74], ebx
xor ebx, ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
add esp, 0x60
ret
call fcn.00428680
ud2
cmp dl, 0x61
jb 0x516ef6
cmp dl, 0x66
ja 0x516ef6
mov ebx, edx
sub ebx, 0x61
add ebx, 0xa
mov edx, ebx
jmp 0x516e6f
cmp dl, 0x41
jb 0x516f0f
cmp dl, 0x46
ja 0x516f0f
mov ebx, edx
sub ebx, 0x41
add ebx, 0xa
mov edx, ebx
jmp 0x516e6f
xor edx, edx
jmp 0x516e6f
call fcn.00428680
ud2
cmp dl, 0x61
jb 0x516f36
cmp dl, 0x66
ja 0x516f36
mov ebx, edx
sub ebx, 0x61
add ebx, 0xa
mov esi, ebx
jmp 0x516e45
cmp dl, 0x41
jb 0x516f4f
cmp dl, 0x46
ja 0x516f4f
mov ebx, edx
sub ebx, 0x41
add ebx, 0xa
mov esi, ebx
jmp 0x516e45
xor esi, esi
jmp 0x516e45
call fcn.00428680
ud2
cmp bl, 0x2b
jne 0x516fc0
mov ebx, dword [esp + 0x6c]
cmp ebx, 5
jne 0x516fa1
mov edx, 0x20
mov ebp, dword [esp + 0x58]
cmp ecx, ebp
jae 0x516f9a
mov ebp, dword [esp + 0x54]
add ebp, ecx
mov byte [ebp], dl
inc ecx
inc eax
cmp eax, edi
jge 0x516e94
cmp eax, edi
jb 0x516e02
call fcn.00428680
ud2
call fcn.00428680
ud2
mov edx, 0x2b
mov ebp, dword [esp + 0x58]
cmp ecx, ebp
jae 0x516fb9
mov ebp, dword [esp + 0x54]
add ebp, ecx
mov byte [ebp], dl
jmp 0x516f81
call fcn.00428680
ud2
cmp eax, edi
jae 0x516fed
mov ebp, dword [esp + 0x64]
add ebp, eax
movzx ebx, byte [ebp]
mov ebp, dword [esp + 0x58]
cmp ecx, ebp
jae 0x516fe6
mov ebp, dword [esp + 0x54]
add ebp, ecx
mov byte [ebp], bl
inc ecx
inc eax
jmp 0x516df2
call fcn.00428680
ud2
call fcn.00428680
ud2
movzx ebx, byte [esp + 0x22]
cmp bl, 0x20
je 0x516d75
movzx ebx, byte [esp + 0x22]
mov byte [esp], bl
mov dword [esp + 4], 2
call fcn.005168f0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 8]
cmp bl, 0
je 0x516d75
mov ebp, eax
add ebp, 3
mov ecx, eax
cmp ebp, edx
ja 0x517097
cmp eax, ebp
ja 0x517097
mov edx, ebp
sub edx, eax
mov eax, esi
cmp edx, 0
je 0x51704d
add eax, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x50], edx
xor ebx, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp], 0x6b1330
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040b9b0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x7c], ebx
add esp, 0x60
ret
call fcn.004286f0
ud2
call fcn.004286f0
ud2
cmp cl, 0x61
jb 0x5170be
cmp cl, 0x66
ja 0x5170be
mov ebx, ecx
sub ebx, 0x61
add ebx, 0xa
mov ecx, ebx
jmp 0x516cf4
cmp cl, 0x41
jb 0x5170d7
cmp cl, 0x46
ja 0x5170d7
mov ebx, ecx
sub ebx, 0x41
add ebx, 0xa
mov ecx, ebx
jmp 0x516cf4
xor ecx, ecx
jmp 0x516cf4
call fcn.00428680
ud2
cmp cl, 0x61
jb 0x5170fe
cmp cl, 0x66
ja 0x5170fe
mov ebx, ecx
sub ebx, 0x61
add ebx, 0xa
mov edi, ebx
jmp 0x516cc4
cmp cl, 0x41
jb 0x517117
cmp cl, 0x46
ja 0x517117
mov ebx, ecx
sub ebx, 0x41
add ebx, 0xa
mov edi, ebx
jmp 0x516cc4
xor edi, edi
jmp 0x516cc4
call fcn.00428680
ud2
mov ecx, eax
add ecx, 3
cmp ecx, edx
ja 0x517189
cmp eax, ecx
ja 0x517189
mov edx, ecx
sub edx, eax
mov ecx, esi
cmp edx, 0
je 0x51713f
add ecx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x50], edx
xor ebx, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp], 0x6b1330
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040b9b0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x7c], ebx
add esp, 0x60
ret
call fcn.004286f0
ud2
call fcn.004286f0
ud2
cmp cl, 0x61
jb 0x5171b0
cmp cl, 0x66
ja 0x5171b0
mov ebx, ecx
sub ebx, 0x61
add ebx, 0xa
mov ecx, ebx
jmp 0x516c12
cmp cl, 0x41
jb 0x5171c9
cmp cl, 0x46
ja 0x5171c9
mov ebx, ecx
sub ebx, 0x41
add ebx, 0xa
mov ecx, ebx
jmp 0x516c12
xor ecx, ecx
jmp 0x516c12
call fcn.00428680
ud2
mov ecx, eax
cmp eax, edx
ja 0x51724e
sub edx, eax
mov eax, esi
cmp edx, 0
je 0x5171e8
add eax, ecx
mov ecx, edx
mov edx, eax
cmp ecx, 3
jle 0x51724c
cmp ecx, 3
jb 0x517245
mov ecx, 3
mov dword [esp + 0x64], edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x50], ecx
xor ebx, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp], 0x6b1330
lea ebx, [esp + 0x4c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040b9b0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x7c], ebx
add esp, 0x60
ret
call fcn.004286f0
ud2
jmp 0x5171fb
call fcn.004286f0
ud2
cmp cl, 0x61
jb 0x517269
cmp cl, 0x66
ja 0x517269
mov ecx, 1
jmp 0x516bce
cmp cl, 0x41
jb 0x51727d
cmp cl, 0x46
ja 0x51727d
mov ecx, 1
jmp 0x516bce
xor ecx, ecx
jmp 0x516bce
call fcn.00428680
ud2
cmp cl, 0x61
jb 0x51729f
cmp cl, 0x66
ja 0x51729f
mov ecx, 1
jmp 0x516b97
cmp cl, 0x41
jb 0x5172b3
cmp cl, 0x46
ja 0x5172b3
mov ecx, 1
jmp 0x516b97
xor ecx, ecx
jmp 0x516b97
call fcn.00428680
ud2
cmp bl, 0x2b
jne 0x5172f3
mov ebx, dword [esp + 0x6c]
cmp ebx, 5
je 0x5172ec
mov byte [esp + 0x23], 0
inc eax
cmp eax, edx
jge 0x516d80
cmp eax, edx
jb 0x516b44
call fcn.00428680
ud2
mov byte [esp + 0x23], 1
jmp 0x5172d4
mov ebx, dword [esp + 0x6c]
cmp ebx, 2
je 0x51730b
mov ebx, dword [esp + 0x6c]
cmp ebx, 3
je 0x51730b
inc eax
jmp 0x516b34
cmp eax, edx
jae 0x5173cc
mov ebp, esi
add ebp, eax
movzx ebx, byte [ebp]
cmp bl, 0x80
jae 0x517305
mov dword [esp + 0x28], eax
cmp eax, edx
jae 0x5173c5
mov ebp, esi
add ebp, eax
movzx ebx, byte [ebp]
mov byte [esp], bl
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
call fcn.005168f0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 8]
cmp bl, 0
je 0x517305
mov ebp, eax
inc ebp
mov ecx, eax
cmp ebp, edx
ja 0x5173be
cmp eax, ebp
ja 0x5173be
mov edx, ebp
sub edx, eax
mov eax, esi
cmp edx, 0
je 0x517374
add eax, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], edx
xor ebx, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp], 0x6b1350
lea ebx, [esp + 0x2c]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040b9b0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x7c], ebx
add esp, 0x60
ret
call fcn.004286f0
ud2
call fcn.00428680
ud2
call fcn.00428680
ud2
call fcn.00450db0
jmp fcn.00516af0