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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x517483
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 0x516e30
cmp eax, edx
jae 0x517395
mov ebp, esi
add ebp, eax
movzx ebx, byte [ebp]
cmp bl, 0x25
jne 0x517371
mov ebx, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x24], ebx
mov ecx, eax
add ecx, 2
cmp ecx, edx
jge 0x517287
mov ebx, eax
inc ebx
cmp ebx, edx
jae 0x51736a
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x51733b
cmp cl, 0x39
ja 0x51733b
mov ecx, 1
cmp cl, 0
je 0x517287
mov ebx, eax
add ebx, 2
cmp ebx, edx
jae 0x517334
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x517305
cmp cl, 0x39
ja 0x517305
mov ecx, 1
cmp cl, 0
je 0x517287
mov ebx, dword [esp + 0x6c]
cmp ebx, 2
jne 0x516d39
mov ebx, eax
inc ebx
cmp ebx, edx
jae 0x517280
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x517247
cmp cl, 0x39
ja 0x517247
mov ebx, ecx
sub ebx, 0x30
mov ecx, ebx
cmp cl, 8
jae 0x516d39
mov ecx, eax
add ecx, 3
mov dword [esp + 0x28], eax
cmp ecx, edx
ja 0x517240
cmp eax, ecx
ja 0x517240
mov edi, ecx
sub edi, eax
mov ecx, esi
cmp edi, 0
je 0x516ced
add ecx, eax
mov dword [esp + 0x44], ecx
cmp edi, 3
jne 0x5171d5
mov ebp, dword [esp + 0x44]
mov dword [esp], ebp
mov dword [esp + 0x48], edi
mov dword [esp + 4], edi
mov ebp, 0x5f5885
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.00452bf0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5171d5
mov ebx, dword [esp + 0x6c]
cmp ebx, 3
jne 0x516e25
mov ebx, eax
inc ebx
cmp ebx, edx
jae 0x5171ce
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x517195
cmp cl, 0x39
ja 0x517195
mov ebx, ecx
sub ebx, 0x30
mov edi, ebx
mov ebx, eax
add ebx, 2
cmp ebx, edx
jae 0x51718e
mov ebp, esi
add ebp, ebx
movzx ebx, byte [ebp]
mov ecx, ebx
cmp bl, 0x30
jb 0x517155
cmp cl, 0x39
ja 0x517155
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 0x51714e
cmp eax, ebp
ja 0x51714e
mov edi, ebp
sub edi, eax
mov ebp, esi
cmp edi, 0
je 0x516dd9
add ebp, eax
mov dword [esp + 0x3c], ebp
cmp edi, 3
jne 0x5170a4
mov ebp, dword [esp + 0x3c]
mov dword [esp], ebp
mov dword [esp + 0x40], edi
mov dword [esp + 4], edi
mov ebp, 0x5f5885
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.00452bf0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5170a4
add eax, 3
cmp eax, edx
jl 0x516bec
mov ebx, dword [esp + 0x24]
cmp ebx, 0
jne 0x516e56
cmp byte [esp + 0x23], 0
jne 0x516e56
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], 0x5c41e0
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.0043c1f0
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 0x516f44
cmp eax, edi
jae 0x517043
mov ebp, dword [esp + 0x64]
add ebp, eax
movzx ebx, byte [ebp]
cmp bl, 0x25
jne 0x51700d
mov ebx, eax
inc ebx
cmp ebx, edi
jae 0x517006
mov ebp, dword [esp + 0x64]
add ebp, ebx
movzx ebx, byte [ebp]
mov edx, ebx
cmp bl, 0x30
jb 0x516fcd
cmp dl, 0x39
ja 0x516fcd
mov ebx, edx
sub ebx, 0x30
mov esi, ebx
mov ebx, eax
add ebx, 2
cmp ebx, edi
jae 0x516fc6
mov ebp, dword [esp + 0x64]
add ebp, ebx
movzx ebx, byte [ebp]
mov edx, ebx
cmp bl, 0x30
jb 0x516f8d
cmp dl, 0x39
ja 0x516f8d
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 0x516f86
mov esi, dword [esp + 0x54]
add esi, ecx
mov byte [esi], bl
inc ecx
add eax, 3
cmp eax, edi
jl 0x516eaa
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.00440030
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.004287a0
ud2
cmp dl, 0x61
jb 0x516fa6
cmp dl, 0x66
ja 0x516fa6
mov ebx, edx
sub ebx, 0x61
add ebx, 0xa
mov edx, ebx
jmp 0x516f1f
cmp dl, 0x41
jb 0x516fbf
cmp dl, 0x46
ja 0x516fbf
mov ebx, edx
sub ebx, 0x41
add ebx, 0xa
mov edx, ebx
jmp 0x516f1f
xor edx, edx
jmp 0x516f1f
call fcn.004287a0
ud2
cmp dl, 0x61
jb 0x516fe6
cmp dl, 0x66
ja 0x516fe6
mov ebx, edx
sub ebx, 0x61
add ebx, 0xa
mov esi, ebx
jmp 0x516ef5
cmp dl, 0x41
jb 0x516fff
cmp dl, 0x46
ja 0x516fff
mov ebx, edx
sub ebx, 0x41
add ebx, 0xa
mov esi, ebx
jmp 0x516ef5
xor esi, esi
jmp 0x516ef5
call fcn.004287a0
ud2
cmp bl, 0x2b
jne 0x517070
mov ebx, dword [esp + 0x6c]
cmp ebx, 5
jne 0x517051
mov edx, 0x20
mov ebp, dword [esp + 0x58]
cmp ecx, ebp
jae 0x51704a
mov ebp, dword [esp + 0x54]
add ebp, ecx
mov byte [ebp], dl
inc ecx
inc eax
cmp eax, edi
jge 0x516f44
cmp eax, edi
jb 0x516eb2
call fcn.004287a0
ud2
call fcn.004287a0
ud2
mov edx, 0x2b
mov ebp, dword [esp + 0x58]
cmp ecx, ebp
jae 0x517069
mov ebp, dword [esp + 0x54]
add ebp, ecx
mov byte [ebp], dl
jmp 0x517031
call fcn.004287a0
ud2
cmp eax, edi
jae 0x51709d
mov ebp, dword [esp + 0x64]
add ebp, eax
movzx ebx, byte [ebp]
mov ebp, dword [esp + 0x58]
cmp ecx, ebp
jae 0x517096
mov ebp, dword [esp + 0x54]
add ebp, ecx
mov byte [ebp], bl
inc ecx
inc eax
jmp 0x516ea2
call fcn.004287a0
ud2
call fcn.004287a0
ud2
movzx ebx, byte [esp + 0x22]
cmp bl, 0x20
je 0x516e25
movzx ebx, byte [esp + 0x22]
mov byte [esp], bl
mov dword [esp + 4], 2
call fcn.005169a0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 8]
cmp bl, 0
je 0x516e25
mov ebp, eax
add ebp, 3
mov ecx, eax
cmp ebp, edx
ja 0x517147
cmp eax, ebp
ja 0x517147
mov edx, ebp
sub edx, eax
mov eax, esi
cmp edx, 0
je 0x5170fd
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.0040bad0
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.00428810
ud2
call fcn.00428810
ud2
cmp cl, 0x61
jb 0x51716e
cmp cl, 0x66
ja 0x51716e
mov ebx, ecx
sub ebx, 0x61
add ebx, 0xa
mov ecx, ebx
jmp 0x516da4
cmp cl, 0x41
jb 0x517187
cmp cl, 0x46
ja 0x517187
mov ebx, ecx
sub ebx, 0x41
add ebx, 0xa
mov ecx, ebx
jmp 0x516da4
xor ecx, ecx
jmp 0x516da4
call fcn.004287a0
ud2
cmp cl, 0x61
jb 0x5171ae
cmp cl, 0x66
ja 0x5171ae
mov ebx, ecx
sub ebx, 0x61
add ebx, 0xa
mov edi, ebx
jmp 0x516d74
cmp cl, 0x41
jb 0x5171c7
cmp cl, 0x46
ja 0x5171c7
mov ebx, ecx
sub ebx, 0x41
add ebx, 0xa
mov edi, ebx
jmp 0x516d74
xor edi, edi
jmp 0x516d74
call fcn.004287a0
ud2
mov ecx, eax
add ecx, 3
cmp ecx, edx
ja 0x517239
cmp eax, ecx
ja 0x517239
mov edx, ecx
sub edx, eax
mov ecx, esi
cmp edx, 0
je 0x5171ef
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.0040bad0
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.00428810
ud2
call fcn.00428810
ud2
cmp cl, 0x61
jb 0x517260
cmp cl, 0x66
ja 0x517260
mov ebx, ecx
sub ebx, 0x61
add ebx, 0xa
mov ecx, ebx
jmp 0x516cc2
cmp cl, 0x41
jb 0x517279
cmp cl, 0x46
ja 0x517279
mov ebx, ecx
sub ebx, 0x41
add ebx, 0xa
mov ecx, ebx
jmp 0x516cc2
xor ecx, ecx
jmp 0x516cc2
call fcn.004287a0
ud2
mov ecx, eax
cmp eax, edx
ja 0x5172fe
sub edx, eax
mov eax, esi
cmp edx, 0
je 0x517298
add eax, ecx
mov ecx, edx
mov edx, eax
cmp ecx, 3
jle 0x5172fc
cmp ecx, 3
jb 0x5172f5
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.0040bad0
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.00428810
ud2
jmp 0x5172ab
call fcn.00428810
ud2
cmp cl, 0x61
jb 0x517319
cmp cl, 0x66
ja 0x517319
mov ecx, 1
jmp 0x516c7e
cmp cl, 0x41
jb 0x51732d
cmp cl, 0x46
ja 0x51732d
mov ecx, 1
jmp 0x516c7e
xor ecx, ecx
jmp 0x516c7e
call fcn.004287a0
ud2
cmp cl, 0x61
jb 0x51734f
cmp cl, 0x66
ja 0x51734f
mov ecx, 1
jmp 0x516c47
cmp cl, 0x41
jb 0x517363
cmp cl, 0x46
ja 0x517363
mov ecx, 1
jmp 0x516c47
xor ecx, ecx
jmp 0x516c47
call fcn.004287a0
ud2
cmp bl, 0x2b
jne 0x5173a3
mov ebx, dword [esp + 0x6c]
cmp ebx, 5
je 0x51739c
mov byte [esp + 0x23], 0
inc eax
cmp eax, edx
jge 0x516e30
cmp eax, edx
jb 0x516bf4
call fcn.004287a0
ud2
mov byte [esp + 0x23], 1
jmp 0x517384
mov ebx, dword [esp + 0x6c]
cmp ebx, 2
je 0x5173bb
mov ebx, dword [esp + 0x6c]
cmp ebx, 3
je 0x5173bb
inc eax
jmp 0x516be4
cmp eax, edx
jae 0x51747c
mov ebp, esi
add ebp, eax
movzx ebx, byte [ebp]
cmp bl, 0x80
jae 0x5173b5
mov dword [esp + 0x28], eax
cmp eax, edx
jae 0x517475
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.005169a0
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 8]
cmp bl, 0
je 0x5173b5
mov ebp, eax
inc ebp
mov ecx, eax
cmp ebp, edx
ja 0x51746e
cmp eax, ebp
ja 0x51746e
mov edx, ebp
sub edx, eax
mov eax, esi
cmp edx, 0
je 0x517424
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.0040bad0
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.00428810
ud2
call fcn.004287a0
ud2
call fcn.004287a0
ud2
call fcn.00450ed0
jmp fcn.00516ba0