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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x50aea6
sub esp, 0xb8
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
xor ebx, ebx
xor ebx, ebx
xor ebx, ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
xor ebx, ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], ebx
xor eax, eax
cmp eax, ecx
jge 0x509c35
cmp eax, ecx
jae 0x50ae9f
mov ebp, edx
add ebp, eax
movzx ebx, byte [ebp]
cmp ebx, 0x34
jg 0x50a1f3
cmp ebx, 0x30
jg 0x509f16
cmp ebx, 0x2d
jne 0x509c88
mov ebp, eax
add ebp, 7
cmp ebp, ecx
jg 0x5098cc
mov ebp, eax
add ebp, 7
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x509c81
cmp eax, ebp
ja 0x509c81
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50982a
add ebp, eax
cmp edi, 7
jne 0x5098cc
mov dword [esp + 0x58], ebp
mov dword [esp], ebp
mov dword [esp + 0x5c], edi
mov dword [esp + 4], edi
mov ebp, 0x75a526
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 7
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5098cc
cmp eax, ecx
ja 0x5098c5
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 7
cmp ebp, ecx
ja 0x5098be
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x509890
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x1c
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 9
cmp ebp, ecx
jg 0x5099a7
mov ebp, eax
add ebp, 9
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x509c7a
cmp eax, ebp
ja 0x509c7a
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x5098ff
add ebp, eax
cmp edi, 9
jne 0x5099a7
mov dword [esp + 0xb0], ebp
mov dword [esp], ebp
mov dword [esp + 0xb4], edi
mov dword [esp + 4], edi
mov ebp, 0x75c128
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 9
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x5099a7
cmp eax, ecx
ja 0x5099a0
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 9
cmp ebp, ecx
ja 0x509999
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50996b
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x1f
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 5
cmp ebp, ecx
jg 0x509a7c
mov ebp, eax
add ebp, 5
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x509c73
cmp eax, ebp
ja 0x509c73
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x5099da
add ebp, eax
cmp edi, 5
jne 0x509a7c
mov dword [esp + 0x40], ebp
mov dword [esp], ebp
mov dword [esp + 0x44], edi
mov dword [esp + 4], edi
mov ebp, 0x7588ba
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 5
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x509a7c
cmp eax, ecx
ja 0x509a75
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 5
cmp ebp, ecx
ja 0x509a6e
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x509a40
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x1b
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 6
cmp ebp, ecx
jg 0x509b51
mov ebp, eax
add ebp, 6
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x509c6c
cmp eax, ebp
ja 0x509c6c
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x509aaf
add ebp, eax
cmp edi, 6
jne 0x509b51
mov dword [esp + 0x38], ebp
mov dword [esp], ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 4], edi
mov ebp, 0x759514
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 6
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x509b51
cmp eax, ecx
ja 0x509b4a
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 6
cmp ebp, ecx
ja 0x509b43
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x509b15
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x1e
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 3
cmp ebp, ecx
jg 0x509c2c
mov ebp, eax
add ebp, 3
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x509c65
cmp eax, ebp
ja 0x509c65
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x509b84
add ebp, eax
cmp edi, 3
jne 0x509c2c
mov dword [esp + 0xa8], ebp
mov dword [esp], ebp
mov dword [esp + 0xac], edi
mov dword [esp + 4], edi
mov ebp, 0x757aab
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x509c2c
cmp eax, ecx
ja 0x509c25
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 3
cmp ebp, ecx
ja 0x509c1e
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x509bf0
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x1d
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
inc eax
cmp eax, ecx
jl 0x5097cc
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], 0
xor ebx, ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], ebx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp ebx, 0x2e
jne 0x509e18
mov ebp, eax
inc ebp
cmp ebp, ecx
jge 0x509cc8
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509e11
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x30
je 0x509ccd
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509e0a
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x39
je 0x509ccd
jmp 0x509c2c
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509e03
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
mov byte [esp + 0x17], bl
mov esi, eax
inc esi
cmp esi, ecx
jge 0x509d0d
cmp esi, ecx
jae 0x509dfc
mov ebp, edx
add ebp, esi
movzx ebx, byte [ebp]
mov ebp, ebx
movzx ebx, byte [esp + 0x17]
xchg ebp, eax
cmp al, bl
xchg ebp, eax
jne 0x509d0d
inc esi
cmp esi, ecx
jl 0x509ceb
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ecx
mov ebx, dword [esp + 0x34]
cmp ebx, esi
jg 0x509dc8
xor ebp, ebp
xchg ebp, eax
cmp al, 0
xchg ebp, eax
jne 0x509c2c
mov edi, 0x20
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509dc1
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x39
jne 0x509d50
mov edi, 0x21
mov ebx, eax
inc ebx
mov ebp, esi
sub ebp, ebx
mov dword [esp + 0x1c], ebp
mov ebx, dword [esp + 0x1c]
shl ebx, 0x10
or ebx, edi
mov edi, ebx
cmp eax, ecx
ja 0x509dba
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], edx
cmp esi, ecx
ja 0x509db3
sub ecx, esi
mov eax, edx
cmp ecx, 0
je 0x509d81
add eax, esi
mov ebx, dword [esp + 0x78]
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], edi
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.00435970
ud2
mov ebp, dword [esp + 0x34]
cmp esi, ebp
jae 0x509df5
mov ebp, dword [esp + 0x30]
add ebp, esi
movzx ebx, byte [ebp]
cmp bl, 0x30
jb 0x509dee
cmp bl, 0x39
ja 0x509dee
mov ebp, 1
jmp 0x509d23
xor ebp, ebp
jmp 0x509d23
call fcn.00435970
ud2
call fcn.00435970
ud2
call fcn.00435970
ud2
call fcn.00435970
ud2
call fcn.00435970
ud2
cmp ebx, 0x30
jne 0x509c2c
mov ebp, eax
add ebp, 2
cmp ebp, ecx
jg 0x509f03
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509f0f
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x31
jb 0x509f03
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509f08
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x36
ja 0x509f03
cmp eax, ecx
ja 0x509efc
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], edx
mov esi, eax
add esi, 2
cmp esi, ecx
ja 0x509ef5
mov edi, ecx
sub edi, esi
mov ebp, edx
cmp edi, 0
je 0x509e8c
add ebp, esi
mov esi, ebp
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509eee
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
sub ebx, 0x31
movzx ebx, bl
mov ebp, 0x8c3fb0
cmp ebx, 6
jae 0x509ee7
shl ebx, 2
add ebp, ebx
mov eax, dword [ebp]
mov ebx, dword [esp + 0x68]
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], edi
add esp, 0xb8
ret
call fcn.00435970
ud2
call fcn.00435970
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x509c2c
call fcn.00435970
ud2
call fcn.00435970
ud2
cmp ebx, 0x32
jg 0x50a139
cmp ebx, 0x31
jne 0x509ffe
mov ebp, eax
add ebp, 2
cmp ebp, ecx
jg 0x509fa1
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x509ff7
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x35
jne 0x509fa1
cmp eax, ecx
ja 0x509f9a
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 2
cmp ebp, ecx
ja 0x509f93
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x509f65
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x20a
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp eax, ecx
ja 0x509ff0
mov edi, eax
mov esi, edx
mov ebp, eax
inc ebp
cmp ebp, ecx
ja 0x509fe9
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x509fbb
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x103
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.00435970
ud2
cmp ebx, 0x32
jne 0x509c2c
mov ebp, eax
add ebp, 4
cmp ebp, ecx
jg 0x50a0dc
mov ebp, eax
add ebp, 4
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50a132
cmp eax, ebp
ja 0x50a132
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a03a
add ebp, eax
cmp edi, 4
jne 0x50a0dc
mov dword [esp + 0x70], ebp
mov dword [esp], ebp
mov dword [esp + 0x74], edi
mov dword [esp + 4], edi
mov ebp, 0x758003
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 4
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a0dc
cmp eax, ecx
ja 0x50a0d5
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 4
cmp ebp, ecx
ja 0x50a0ce
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a0a0
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x111
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp eax, ecx
ja 0x50a12b
mov edi, eax
mov esi, edx
mov ebp, eax
inc ebp
cmp ebp, ecx
ja 0x50a124
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a0f6
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x107
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp ebx, 0x33
jne 0x50a194
cmp eax, ecx
ja 0x50a18d
mov edi, eax
mov esi, edx
mov ebp, eax
inc ebp
cmp ebp, ecx
ja 0x50a186
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a158
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x20b
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp ebx, 0x34
jne 0x509c2c
cmp eax, ecx
ja 0x50a1ec
mov edi, eax
mov esi, edx
mov ebp, eax
inc ebp
cmp ebp, ecx
ja 0x50a1e5
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a1b7
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x20d
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp ebx, 0x4d
jg 0x50a792
cmp ebx, 0x35
jne 0x50a257
cmp eax, ecx
ja 0x50a250
mov edi, eax
mov esi, edx
mov ebp, eax
inc ebp
cmp ebp, ecx
ja 0x50a249
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a21b
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x20f
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp ebx, 0x4a
jne 0x50a487
mov ebp, eax
add ebp, 3
cmp ebp, ecx
jg 0x50a47b
mov ebp, eax
add ebp, 3
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50a480
cmp eax, ebp
ja 0x50a480
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a293
add ebp, eax
cmp edi, 3
jne 0x50a47b
mov dword [esp + 0x60], ebp
mov dword [esp], ebp
mov dword [esp + 0x64], edi
mov dword [esp + 4], edi
mov ebp, 0x757ba7
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a47b
mov ebp, eax
add ebp, 7
cmp ebp, ecx
jg 0x50a3b2
mov ebp, eax
add ebp, 7
cmp ebp, ecx
ja 0x50a474
cmp eax, ebp
ja 0x50a474
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a310
add ebp, eax
cmp edi, 7
jne 0x50a3b2
mov dword [esp + 0x50], ebp
mov dword [esp], ebp
mov dword [esp + 0x54], edi
mov dword [esp + 4], edi
mov ebp, 0x75a6f4
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 7
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a3b2
cmp eax, ecx
ja 0x50a3ab
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 7
cmp ebp, ecx
ja 0x50a3a4
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a376
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x101
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov esi, eax
add esi, 3
cmp esi, ecx
ja 0x50a46d
mov edi, ecx
sub edi, esi
mov ebp, edx
cmp edi, 0
je 0x50a3cc
add ebp, esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], edi
cmp edi, 0
jne 0x50a43e
xor ebp, ebp
xchg ebp, eax
cmp al, 0
xchg ebp, eax
jne 0x509c2c
cmp eax, ecx
ja 0x50a437
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 3
cmp ebp, ecx
ja 0x50a430
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a402
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x102
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp edi, 0
jbe 0x50a466
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x61
xchg ebp, eax
jb 0x50a45f
xchg ebp, eax
cmp al, 0x7a
xchg ebp, eax
ja 0x50a45f
mov ebp, 1
jmp 0x50a3db
xor ebp, ebp
jmp 0x50a3db
call fcn.00435970
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x509c2c
call fcn.004359e0
ud2
cmp ebx, 0x4d
jne 0x509c2c
mov ebp, eax
add ebp, 3
cmp ebp, ecx
jg 0x50a78d
mov ebp, eax
add ebp, 3
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50a786
cmp eax, ebp
ja 0x50a786
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a4c3
add ebp, eax
cmp edi, 3
jne 0x50a781
mov dword [esp + 0xb0], ebp
mov dword [esp], ebp
mov dword [esp + 0xb4], edi
mov dword [esp + 4], edi
mov ebp, 0x757be0
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a781
mov ebp, eax
add ebp, 6
cmp ebp, ecx
jg 0x50a5e8
mov ebp, eax
add ebp, 6
cmp ebp, ecx
ja 0x50a77a
cmp eax, ebp
ja 0x50a77a
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a546
add ebp, eax
cmp edi, 6
jne 0x50a5e8
mov dword [esp + 0x48], ebp
mov dword [esp], ebp
mov dword [esp + 0x4c], edi
mov dword [esp + 4], edi
mov ebp, 0x759766
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 6
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a5e8
cmp eax, ecx
ja 0x50a5e1
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 6
cmp ebp, ecx
ja 0x50a5da
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a5ac
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x105
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov esi, eax
add esi, 3
cmp esi, ecx
ja 0x50a773
mov edi, ecx
sub edi, esi
mov ebp, edx
cmp edi, 0
je 0x50a602
add ebp, esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], edi
cmp edi, 0
jne 0x50a744
xor ebp, ebp
xchg ebp, eax
cmp al, 0
xchg ebp, eax
jne 0x50a674
cmp eax, ecx
ja 0x50a66d
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 3
cmp ebp, ecx
ja 0x50a666
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a638
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x106
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 3
cmp ebp, ecx
ja 0x50a73d
cmp eax, ebp
ja 0x50a73d
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a696
add ebp, eax
cmp edi, 3
jne 0x50a738
mov dword [esp + 0x70], ebp
mov dword [esp], ebp
mov dword [esp + 0x74], edi
mov dword [esp + 4], edi
mov ebp, 0x757bd4
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a738
cmp eax, ecx
ja 0x50a731
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 3
cmp ebp, ecx
ja 0x50a72a
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a6fc
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x15
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x509c2c
call fcn.004359e0
ud2
cmp edi, 0
jbe 0x50a76c
movzx ebp, byte [ebp]
xchg ebp, eax
cmp al, 0x61
xchg ebp, eax
jb 0x50a765
xchg ebp, eax
cmp al, 0x7a
xchg ebp, eax
ja 0x50a765
mov ebp, 1
jmp 0x50a615
xor ebp, ebp
jmp 0x50a615
call fcn.00435970
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x50a674
call fcn.004359e0
ud2
jmp 0x509c2c
cmp ebx, 0x5a
jg 0x50ac9d
cmp ebx, 0x50
jne 0x50a825
mov ebp, eax
add ebp, 2
cmp ebp, ecx
jg 0x50a819
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x50a81e
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x4d
jne 0x50a819
cmp eax, ecx
ja 0x50a812
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 2
cmp ebp, ecx
ja 0x50a80b
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a7dd
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x213
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x509c2c
call fcn.00435970
ud2
cmp ebx, 0x5a
jne 0x509c2c
mov ebp, eax
add ebp, 7
cmp ebp, ecx
jg 0x50a909
mov ebp, eax
add ebp, 7
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50ac96
cmp eax, ebp
ja 0x50ac96
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a861
add ebp, eax
cmp edi, 7
jne 0x50a909
mov dword [esp + 0xa0], ebp
mov dword [esp], ebp
mov dword [esp + 0xa4], edi
mov dword [esp + 4], edi
mov ebp, 0x75a994
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 7
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a909
cmp eax, ecx
ja 0x50a902
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 7
cmp ebp, ecx
ja 0x50a8fb
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a8cd
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x17
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 9
cmp ebp, ecx
jg 0x50a9e4
mov ebp, eax
add ebp, 9
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50ac8f
cmp eax, ebp
ja 0x50ac8f
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50a93c
add ebp, eax
cmp edi, 9
jne 0x50a9e4
mov dword [esp + 0x98], ebp
mov dword [esp], ebp
mov dword [esp + 0x9c], edi
mov dword [esp + 4], edi
mov ebp, 0x75c3cb
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 9
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50a9e4
cmp eax, ecx
ja 0x50a9dd
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 9
cmp ebp, ecx
ja 0x50a9d6
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50a9a8
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x1a
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 5
cmp ebp, ecx
jg 0x50aabf
mov ebp, eax
add ebp, 5
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50ac88
cmp eax, ebp
ja 0x50ac88
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50aa17
add ebp, eax
cmp edi, 5
jne 0x50aabf
mov dword [esp + 0x90], ebp
mov dword [esp], ebp
mov dword [esp + 0x94], edi
mov dword [esp + 4], edi
mov ebp, 0x758c84
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 5
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50aabf
cmp eax, ecx
ja 0x50aab8
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 5
cmp ebp, ecx
ja 0x50aab1
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50aa83
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x16
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 6
cmp ebp, ecx
jg 0x50ab9a
mov ebp, eax
add ebp, 6
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50ac81
cmp eax, ebp
ja 0x50ac81
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50aaf2
add ebp, eax
cmp edi, 6
jne 0x50ab9a
mov dword [esp + 0x88], ebp
mov dword [esp], ebp
mov dword [esp + 0x8c], edi
mov dword [esp + 4], edi
mov ebp, 0x7598ec
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 6
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50ab9a
cmp eax, ecx
ja 0x50ab93
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 6
cmp ebp, ecx
ja 0x50ab8c
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50ab5e
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x19
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
mov ebp, eax
add ebp, 3
cmp ebp, ecx
jg 0x50ac75
mov ebp, eax
add ebp, 3
mov dword [esp + 0x18], eax
cmp ebp, ecx
ja 0x50ac7a
cmp eax, ebp
ja 0x50ac7a
mov edi, ebp
sub edi, eax
mov ebp, edx
cmp edi, 0
je 0x50abcd
add ebp, eax
cmp edi, 3
jne 0x50ac75
mov dword [esp + 0x80], ebp
mov dword [esp], ebp
mov dword [esp + 0x84], edi
mov dword [esp + 4], edi
mov ebp, 0x757ca3
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 3
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50ac75
cmp eax, ecx
ja 0x50ac6e
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 3
cmp ebp, ecx
ja 0x50ac67
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50ac39
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x18
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x509c2c
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp ebx, 0x5f
jne 0x50ae15
mov ebp, eax
add ebp, 2
cmp ebp, ecx
jg 0x50ae09
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x50ae0e
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x32
jne 0x50ae09
mov esi, eax
add esi, 5
cmp esi, ecx
jg 0x50adaa
mov esi, eax
inc esi
mov ebp, eax
mov dword [esp + 0x18], eax
add ebp, 5
cmp ebp, ecx
ja 0x50ae02
cmp esi, ebp
ja 0x50ae02
mov edi, ebp
sub edi, esi
mov ebp, edx
cmp edi, 0
je 0x50ad05
add ebp, esi
cmp edi, 4
jne 0x50adaa
mov dword [esp + 0x68], ebp
mov dword [esp], ebp
mov dword [esp + 0x6c], edi
mov dword [esp + 4], edi
mov ebp, 0x758003
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 4
call fcn.004633f0
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [esp + 0x18]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x50adaa
mov ebp, eax
inc ebp
cmp ebp, ecx
ja 0x50ada3
mov edi, ebp
mov esi, edx
mov ebp, eax
add ebp, 5
cmp ebp, ecx
ja 0x50ad9c
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50ad6e
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x111
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
cmp eax, ecx
ja 0x50adfb
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 2
cmp ebp, ecx
ja 0x50adf4
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50adc6
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x108
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x509c2c
call fcn.00435970
ud2
cmp ebx, 0x70
jne 0x509c2c
mov ebp, eax
add ebp, 2
cmp ebp, ecx
jg 0x50ae93
mov ebx, eax
inc ebx
cmp ebx, ecx
jae 0x50ae98
mov ebp, edx
add ebp, ebx
movzx ebx, byte [ebp]
cmp bl, 0x6d
jne 0x50ae93
cmp eax, ecx
ja 0x50ae8c
mov edi, eax
mov esi, edx
mov ebp, eax
add ebp, 2
cmp ebp, ecx
ja 0x50ae85
sub ecx, ebp
mov eax, edx
cmp ecx, 0
je 0x50ae57
add eax, ebp
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], edi
mov dword [esp + 0xcc], 0x214
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
add esp, 0xb8
ret
call fcn.004359e0
ud2
call fcn.004359e0
ud2
jmp 0x509c2c
call fcn.00435970
ud2
call fcn.00435970
ud2
call fcn.004616d0
jmp fcn.00509770