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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x658d98]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x1c]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0xa0], ecx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x18]
test ebx, ebx
jne 0x597541
lea eax, [ebp + 0x20]
cmp dword [ebp + 0x20], ebx
jne 0x597527
push 1
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
call fcn.005974c0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
sub eax, esi
cdq
xor eax, edx
pop edi
sub eax, edx
pop esi
neg eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jae 0x59b134
mov dword [ebp - 0xb4], getpeername
inc dword [edi]
mov eax, dword [ebp + 0x20]
cmp eax, dword [edi + 8]
jae 0x59b11e
cmp dword [edi + 0x98], 2
jne 0x597590
lea eax, [ebp - 0x10c]
mov dword [ebp - 0x108], esi
mov dword [ebp - 0x10c], ecx
mov dword [ebp - 0xa0], eax
mov dword [edi + 0x98], 0
nop
mov cl, byte [ebx]
movzx edx, cl
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x80], edx
cmp edx, 0xa1
ja case.0x5975bf.15
movzx eax, byte [edx + 0x59b288]
jmp dword [eax*4 + 0x59b14c]
inc dword [edi + 0x28]
mov eax, dword [edi + 0x28]
cmp eax, dword [edi + 0x2c]
ja 0x59a2dd
movzx eax, byte [ebx]
movzx ecx, byte [eax + 0x61b7c0]
movzx eax, byte [ebx + 1]
add ebx, eax
add ebx, ecx
jmp 0x597590
mov eax, dword [edi + 0xac]
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x98], eax
mov edi, edi
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
lea eax, [ebx + 3]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push eax
push esi
call fcn.005974c0
add esp, 0x1c
cmp eax, 1
je 0x5976cf
cmp eax, 0xfffffc20
jne 0x597657
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl edx, 8
or edx, ecx
add edx, ebx
cmp dword [edi + 0x7c], edx
jae 0x59b13b
cmp byte [ebx], 0x77
je 0x59765f
cmp byte [edx], 0x77
jmp 0x597659
test eax, eax
jne 0x59b13b
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x98]
add ebx, ecx
mov dword [edi + 0xac], eax
cmp byte [ebx], 0x77
je 0x597600
mov edx, dword [ebp - 0x94]
mov al, byte [ebx]
cmp al, 0x82
je 0x597693
cmp al, 0x77
jne case.0x59aaae.14
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x597693
cmp byte [ebx], 0x78
mov eax, dword [edi + 0x8c]
mov esi, dword [edi + 0x80]
mov dword [ebp - 0x90], eax
je 0x5976c7
cmp esi, dword [ebp - 0x80]
jne 0x59a0cd
add ebx, 3
jmp 0x597590
mov edx, dword [edi + 0x7c]
mov dword [ebp - 0x94], edx
jmp 0x597685
mov dword [ebp - 0x98], 0
jmp 0x598122
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
add ebx, 3
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xa4], ecx
cmp byte [ebx], 0x76
jne 0x5977ff
mov eax, dword [0x68098c]
mov dword [ebp - 0x98], eax
test eax, eax
je 0x5977ee
movzx eax, byte [ebx + 1]
mov ecx, dword [edi + 0x74]
mov dword [ebp - 0x100], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xfc], eax
mov eax, dword [edi + 0x78]
sub eax, ecx
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x94]
sub eax, ecx
mov dword [ebp - 0x104], 2
mov dword [ebp - 0xf0], eax
mov eax, esi
sub eax, ecx
movzx ecx, byte [ebx + 2]
mov dword [ebp - 0xec], eax
movzx eax, byte [ebx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 5]
mov dword [ebp - 0xdc], ecx
movzx ecx, byte [ebx + 4]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x90]
cdq
sub eax, edx
mov dword [ebp - 0xd8], ecx
sar eax, 1
mov ecx, 0xffffffff
mov dword [ebp - 0xe8], eax
movzx eax, word [edi + 0x90]
test eax, eax
cmove eax, ecx
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0xa8]
mov dword [ebp - 0xe0], eax
mov eax, dword [edi + 0xb0]
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x104]
push eax
call dword [ebp - 0x98]
add esp, 4
test eax, eax
jg case.0x59aaae.14
js 0x59b13b
mov ecx, dword [ebp - 0xa4]
movzx eax, byte [0x61b836]
add ebx, eax
sub ecx, eax
mov dword [ebp - 0xa4], ecx
movzx eax, byte [ebx]
mov dword [ebp - 0x98], eax
add eax, 0xffffff73
mov dword [ebp - 0x88], 0
cmp eax, 4
ja case.default.0x597820
jmp dword [eax*4 + 0x59b32c]
mov edx, dword [edi + 0xa4]
test edx, edx
je case.0x597820.145
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
cmp ecx, 0xffff
je 0x597905
cmp ecx, dword [edx + 4]
je 0x597905
xor eax, eax
jmp 0x597a4e
cmp dword [edi + 0xa4], 0
je case.0x597820.145
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
movzx edx, byte [ebx + 1]
shl ecx, 8
shl edx, 8
or ecx, eax
movzx eax, byte [ebx + 2]
or edx, eax
imul edx, dword [edi + 0x24]
add edx, dword [edi + 0x30]
test ecx, ecx
jle 0x597a48
mov eax, dword [edi + 0xa4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x8c], eax
movzx eax, byte [edx + 1]
dec ecx
mov dword [ebp - 0x84], ecx
movzx ecx, byte [edx]
shl ecx, 8
or ecx, eax
xor eax, eax
cmp ecx, dword [ebp - 0x8c]
sete al
mov dword [ebp - 0x88], eax
test eax, eax
jne 0x59790f
add edx, dword [edi + 0x24]
mov ecx, dword [ebp - 0x84]
test ecx, ecx
jg 0x5978a3
jmp 0x597a48
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ecx, ecx
cmp ecx, dword [ebp - 0x90]
jge 0x597857
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x597857
mov dword [ebp - 0x88], 1
mov edx, dword [ebp - 0x98]
movzx ecx, byte [edx + 0x61b7c0]
mov eax, dword [ebp - 0x88]
jmp 0x597a54
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
movzx edx, byte [ebx + 1]
shl ecx, 8
shl edx, 8
or ecx, eax
movzx eax, byte [ebx + 2]
or edx, eax
imul edx, dword [edi + 0x24]
add edx, dword [edi + 0x30]
test ecx, ecx
jle 0x597a48
mov dword [ebp - 0x88], 0
lea ebx, [ebx]
movzx eax, byte [edx]
dec ecx
mov dword [ebp - 0x8c], ecx
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
add ecx, ecx
cmp ecx, dword [ebp - 0x90]
jge 0x59798a
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x597905
add edx, dword [edi + 0x24]
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
jg 0x597960
jmp 0x597a48
mov eax, dword [ebp + 0x20]
inc eax
mov dword [edi + 0x98], 1
push eax
push 0
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
cmp eax, 1
jne 0x597a39
mov eax, dword [edi + 0x8c]
mov ecx, dword [ebp - 0x90]
cmp eax, ecx
mov dword [ebp - 0x88], 1
cmovg ecx, eax
movzx eax, byte [ebx + 2]
mov dword [ebp - 0x90], ecx
movzx ecx, byte [ebx + 1]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
jne 0x597a14
mov edi, edi
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x597a00
mov edx, dword [ebp - 0x98]
mov ecx, 3
movzx eax, byte [edx + 0x61b7c0]
sub ecx, eax
mov eax, dword [ebp - 0x88]
add ebx, ecx
movzx ecx, byte [edx + 0x61b7c0]
jmp 0x597a54
test eax, eax
je 0x597a48
cmp eax, 0xfffffc20
jne 0x59b13b
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xa4]
add ebx, ecx
test eax, eax
jne 0x597a64
cmp byte [ebx - 3], 0x77
jne 0x597590
cmp dword [ebp - 0x80], 0x8c
jne 0x59a205
mov dword [edi + 0x98], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
mov eax, dword [edi + 0x90]
and eax, 0xffff0000
or eax, edx
mov dword [edi + 0x90], eax
lea ecx, [edx + edx]
mov dword [ebp - 0x8c], ecx
cmp ecx, dword [edi + 0x14]
jl 0x597aef
or eax, 0x10000
add ebx, 3
mov dword [edi + 0x90], eax
jmp 0x597590
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, edx
mov edx, dword [ebp - 0x8c]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, esi
mov eax, dword [edi + 0xc]
sub ecx, dword [edi + 0x74]
mov dword [eax + edx*4 + 4], ecx
cmp dword [ebp - 0x90], edx
jg 0x597b20
lea eax, [edx + 2]
mov dword [ebp - 0x90], eax
add ebx, 3
jmp 0x597590
cmp dword [edi + 0x98], 1
mov eax, dword [edi + 0xac]
mov dword [ebp - 0x98], eax
jne 0x597b53
mov dword [ebp - 0x8c], 1
mov dword [edi + 0x98], 0
jmp 0x597b60
mov dword [ebp - 0x8c], 0
lea ecx, [ecx]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push 0
push edi
push dword [ebp - 0x90]
lea eax, [ebx + 3]
push dword [ebp - 0x94]
push eax
push esi
call fcn.005974c0
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x597be8
cmp edx, 0xfffffc19
je 0x597be8
mov eax, dword [ebp - 0x98]
mov dword [edi + 0xac], eax
cmp edx, 0xfffffc20
jne 0x597bc6
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x59ad28
cmp byte [ebx], 0x77
je 0x597bce
cmp byte [ecx], 0x77
jmp 0x597bc8
test edx, edx
jne 0x59ad28
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x597b60
jmp 0x597bf1
mov eax, dword [edi + 0x7c]
mov dword [ebp - 0x94], eax
cmp byte [ebx], 0x78
je case.0x59aaae.14
cmp dword [ebp - 0x8c], 0
jne 0x59a4eb
jmp 0x597c10
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x597c10
mov eax, dword [edi + 0x8c]
add ebx, 3
mov dword [ebp - 0x90], eax
jmp 0x597590
cmp dword [edi + 0x98], 1
mov eax, dword [edi + 0xac]
mov dword [ebp - 0x98], eax
jne 0x597c63
mov dword [ebp - 0x8c], 1
mov dword [edi + 0x98], 0
jmp 0x597c70
mov dword [ebp - 0x8c], 0
lea ecx, [ecx]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push 0
push edi
push dword [ebp - 0x90]
lea eax, [ebx + 3]
push dword [ebp - 0x94]
push eax
push esi
call fcn.005974c0
mov ecx, eax
add esp, 0x1c
mov eax, dword [ebp - 0x98]
mov dword [edi + 0xac], eax
cmp ecx, 0xfffffc20
jg 0x597cc9
jne 0x597cea
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x597d05
cmp byte [ebx], 0x77
je 0x597cd4
cmp byte [ecx], 0x77
jne 0x597d05
jmp 0x597cd4
mov eax, ecx
sub eax, 0
jne 0x59a335
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x597c70
jmp 0x597d19
cmp ecx, 0xfffffc19
je case.0x59aaae.14
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x59ae63
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x597d05
cmp dword [ebp - 0x8c], 0
jne 0x59a4eb
add ebx, 3
jmp 0x597590
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
sub esi, ecx
cmp esi, dword [edi + 0x74]
jb case.0x59aaae.14
cmp esi, dword [edi + 0x84]
jae 0x597d54
mov dword [edi + 0x84], esi
add ebx, 3
jmp 0x597590
mov eax, dword [0x68098c]
mov dword [ebp - 0x98], eax
test eax, eax
je 0x597e3c
movzx eax, byte [ebx + 1]
mov ecx, dword [edi + 0x74]
mov dword [ebp - 0x100], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0xfc], eax
mov eax, dword [edi + 0x78]
sub eax, ecx
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x94]
sub eax, ecx
mov dword [ebp - 0x104], 2
mov dword [ebp - 0xf0], eax
mov eax, esi
sub eax, ecx
movzx ecx, byte [ebx + 2]
mov dword [ebp - 0xec], eax
movzx eax, byte [ebx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 5]
mov dword [ebp - 0xdc], ecx
movzx ecx, byte [ebx + 4]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x90]
cdq
sub eax, edx
mov dword [ebp - 0xd8], ecx
sar eax, 1
mov ecx, 0xffffffff
mov dword [ebp - 0xe8], eax
movzx eax, word [edi + 0x90]
test eax, eax
cmove eax, ecx
mov dword [ebp - 0xe4], eax
mov eax, dword [edi + 0xa8]
mov dword [ebp - 0xe0], eax
mov eax, dword [edi + 0xb0]
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x104]
push eax
call dword [ebp - 0x98]
add esp, 4
test eax, eax
jg case.0x59aaae.14
js 0x59b13b
add ebx, 6
jmp 0x597590
movzx edx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl edx, 8
or edx, eax
add edx, dword [edi + 0x70]
mov dword [ebp - 0x98], edx
cmp edx, dword [edi + 0x70]
jne 0x597e63
xor ecx, ecx
jmp 0x597e70
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
mov edx, dword [edi + 0xa4]
mov eax, edx
test eax, eax
je 0x597e94
lea esp, [esp]
cmp ecx, dword [eax + 4]
jne 0x597e8e
cmp esi, dword [eax + 0x14]
je 0x59a34b
mov eax, dword [eax]
test eax, eax
jne 0x597e80
mov eax, dword [edi + 0x90]
add ebx, 3
mov dword [ebp - 0xcc], ecx
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xc0], eax
lea eax, [ebp - 0xd0]
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xd0], edx
mov dword [edi + 0xa4], eax
mov dword [ebp - 0xc4], ecx
cmp ecx, 0x1e
jg 0x597eda
lea eax, [ebp - 0x7c]
mov dword [ebp - 0xc8], eax
jmp 0x597eff
lea eax, [ecx*4]
push eax
call dword [0x658d24]
add esp, 4
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x59a3c9
mov ecx, dword [ebp - 0xc4]
shl ecx, 2
push ecx
push dword [edi + 0xc]
push eax
call fcn.005a2910
mov edx, dword [ebp - 0x98]
add esp, 0xc
cmp byte [edx], 0x88
sbb eax, eax
inc eax
mov dword [ebp - 0x80], eax
mov edi, edi
test eax, eax
je 0x597f2e
mov dword [edi + 0x98], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [edx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, edx
push eax
push esi
call fcn.005974c0
mov ecx, dword [ebp - 0xc4]
shl ecx, 2
push ecx
push dword [ebp - 0xc8]
mov dword [ebp - 0x8c], eax
push dword [edi + 0xc]
call fcn.005a2910
mov eax, dword [ebp - 0xc0]
add esp, 0x28
mov dword [edi + 0x90], eax
mov eax, dword [ebp - 0xd0]
mov dword [edi + 0xa4], eax
mov eax, dword [ebp - 0x8c]
cmp eax, 1
je 0x597ff6
cmp eax, 0xfffffc19
je 0x597ff6
cmp eax, 0xfffffc1c
jl 0x597fb6
cmp eax, 0xfffffc20
jle case.0x59aaae.14
test eax, eax
jne 0x59a397
mov edx, dword [ebp - 0x98]
lea eax, [ebp - 0xd0]
mov dword [edi + 0xa4], eax
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
mov dword [ebp - 0x98], edx
cmp byte [edx], 0x77
jne 0x59a361
mov eax, dword [ebp - 0x80]
jmp 0x597f20
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x7c]
cmp eax, ecx
je 0x59800d
push eax
call dword [0x658d28]
add esp, 4
mov eax, dword [edi + 0x7c]
mov esi, dword [edi + 0x80]
mov dword [ebp - 0x94], eax
jmp 0x597590
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je case.0x5975bf.119
jmp 0x597590
mov eax, dword [ebp + 0x20]
inc ebx
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598065
add ebx, 3
jmp 0x597590
inc ebx
mov edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x77
je 0x598084
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
lea eax, [edx + 3]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push eax
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x597590
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
inc ebx
jmp 0x5980e0
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x5980e0
add ebx, 3
jmp 0x597590
movzx edx, byte [ebx + 1]
inc ebx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x98], 1
cmp edx, 0x86
je 0x598122
cmp edx, 0x8b
jne 0x598316
movzx edx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
shl edx, 8
or edx, eax
mov dword [ebp - 0x88], edx
lea eax, [edx + edx]
cmp eax, dword [edi + 0x14]
jge 0x598309
shl eax, 2
mov ecx, ebx
sub ecx, dword [edi + 0x70]
mov dword [ebp - 0x84], ecx
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0xa4], 0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xac], eax
mov eax, dword [edi + 0x10]
sub eax, dword [ebp - 0x88]
mov dword [ebp - 0xb8], edx
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xa8], eax
mov eax, dword [edi + 0x90]
mov dword [ebp - 0x8c], eax
mov ecx, dword [edi + 0x10]
mov edx, esi
sub ecx, dword [ebp - 0x88]
mov eax, dword [edi + 0xc]
sub edx, dword [edi + 0x74]
cmp dword [ebp - 0x80], 0x88
mov dword [eax + ecx*4], edx
jb 0x5981ba
mov dword [edi + 0x98], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc1a
jne 0x59823c
mov eax, dword [edi + 0x8c]
mov edx, 1
mov ebx, dword [edi + 0x70]
add ebx, dword [ebp - 0x84]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x90]
mov dword [ebp - 0x8c], eax
mov eax, dword [edi + 0x7c]
mov dword [ebp - 0x94], eax
mov eax, dword [edi + 0x80]
mov dword [ebp - 0xa4], edx
cmp esi, eax
je 0x5982f3
mov esi, eax
jmp 0x598193
cmp edx, 0xfffffc20
jne 0x598266
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x59ad28
cmp byte [ebx], 0x77
je 0x59826e
cmp byte [ecx], 0x77
jmp 0x598268
test edx, edx
jne 0x59ad28
mov eax, dword [ebp - 0x8c]
mov dword [edi + 0x90], eax
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598193
mov edx, dword [ebp - 0xa4]
test edx, edx
jne 0x5982d6
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xb8]
mov dword [ecx + eax], edx
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xac]
mov dword [ecx + eax + 4], edx
mov ecx, dword [edi + 0x10]
sub ecx, dword [ebp - 0x88]
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xa8]
mov dword [eax + ecx*4], edx
mov edx, dword [ebp - 0xa4]
cmp dword [ebp - 0x98], 0
jne 0x5976c7
test edx, edx
je case.0x59aaae.14
add ebx, 3
jmp 0x597590
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x5982f3
jmp 0x5982d6
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x98], 0
xor eax, eax
mov dword [ebp - 0x8c], eax
mov eax, ebx
sub eax, dword [edi + 0x70]
mov dword [ebp - 0xa8], eax
mov eax, dword [edi + 0x90]
mov dword [ebp - 0xac], eax
cmp edx, 0x88
jb 0x598347
mov dword [edi + 0x98], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc1a
jne 0x5983bb
mov eax, dword [edi + 0x8c]
mov ebx, dword [edi + 0x70]
add ebx, dword [ebp - 0xa8]
mov dword [ebp - 0x90], eax
mov eax, dword [edi + 0x7c]
mov dword [ebp - 0x94], eax
mov eax, dword [edi + 0x80]
mov dword [ebp - 0x8c], 1
cmp esi, eax
je 0x598415
mov edx, dword [ebp - 0x80]
mov esi, eax
jmp 0x598335
cmp edx, 0xfffffc20
jne 0x5983e5
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ecx, ebx
cmp dword [edi + 0x7c], ecx
jae 0x59ad28
cmp byte [ebx], 0x77
je 0x5983ed
cmp byte [ecx], 0x77
jmp 0x5983e7
test edx, edx
jne 0x59ad28
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
jne 0x598431
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0x80]
mov dword [edi + 0x90], eax
jmp 0x598335
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598415
add ebx, 3
jmp 0x597590
mov eax, dword [ebp - 0x8c]
test eax, eax
jne 0x5976c7
cmp dword [ebp - 0x98], eax
je case.0x59aaae.14
add ebx, 3
jmp 0x597590
movzx ecx, byte [ebx + 1]
mov edx, ebx
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
sub edx, ecx
mov dword [ebp - 0x80], edx
mov al, byte [edx]
cmp al, 0x88
jae 0x59847d
cmp al, 0x81
je 0x59847d
mov dword [ebp - 0x98], 0
jmp 0x59849a
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x98], ecx
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [ecx]
mov dword [ebp - 0xa0], ecx
cmp al, 0x7d
jb 0x5984a6
cmp al, 0x80
jbe 0x59a4d0
cmp al, 0x82
je 0x59a4d0
cmp al, 0x85
je 0x5984c2
cmp al, 0x8a
je 0x5984c2
cmp al, 0x86
je 0x5984c2
cmp al, 0x8b
jne 0x5985ae
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0xa4]
mov dword [ebp - 0xac], ecx
lea edx, [ecx + ecx]
mov dword [ebp - 0x8c], edx
test eax, eax
je 0x5984f1
cmp dword [eax + 4], ecx
je 0x59a3df
mov eax, dword [edi + 0x90]
and eax, 0xffff0000
or eax, ecx
mov ecx, dword [ebp - 0x90]
mov dword [edi + 0x90], eax
cmp edx, dword [edi + 0x14]
jl 0x598522
or eax, 0x10000
mov dword [edi + 0x90], eax
mov edx, dword [ebp - 0x80]
jmp 0x5985b4
cmp edx, ecx
jle 0x598574
mov eax, dword [edi + 0xc]
lea ecx, [eax + ecx*4]
lea eax, [eax + edx*4]
xor edx, edx
mov dword [ebp - 0x88], eax
sub dword [ebp - 0x88], ecx
add dword [ebp - 0x88], 3
shr dword [ebp - 0x88], 2
cmp ecx, eax
mov eax, dword [ebp - 0x88]
cmova eax, edx
test eax, eax
je 0x59856e
lea ebx, [ebx]
inc edx
mov dword [ecx], 0xffffffff
lea ecx, [ecx + 4]
cmp edx, eax
jb 0x598560
mov edx, dword [ebp - 0x8c]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
sub eax, dword [ebp - 0xac]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
mov ecx, esi
mov eax, dword [edi + 0xc]
sub ecx, dword [edi + 0x74]
mov dword [eax + edx*4 + 4], ecx
mov ecx, dword [ebp - 0x90]
cmp ecx, edx
jg 0x59851a
lea ecx, [edx + 2]
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x90], ecx
jmp 0x5985b4
mov ecx, dword [ebp - 0x90]
mov al, byte [ebx]
cmp al, 0x7b
je 0x59a4a5
cmp al, 0x78
je 0x5985ce
cmp esi, dword [ebp - 0x98]
jne 0x59a124
cmp byte [edx], 0x81
je 0x59a45e
add ebx, 3
jmp 0x597590
cmp dword [edi + 0x44], 0
je case.0x5975bf.1
cmp esi, dword [edi + 0x74]
je case.0x59aaae.14
cmp esi, dword [edi + 0x74]
jne case.0x59aaae.14
inc ebx
jmp 0x597590
cmp dword [edi + 0x44], 0
je 0x59860c
cmp esi, dword [edi + 0x74]
je case.0x59aaae.14
mov ecx, dword [edi + 0x74]
cmp esi, ecx
je 0x598678
cmp esi, dword [edi + 0x78]
je case.0x59aaae.14
mov edx, dword [edi + 0x18]
test edx, edx
je 0x59864a
cmp esi, ecx
jbe case.0x59aaae.14
push 0
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.0059c7c0
add esp, 0x14
test eax, eax
je case.0x59aaae.14
inc ebx
jmp 0x597590
mov edx, dword [edi + 0x1c]
lea eax, [edx + ecx]
cmp esi, eax
jb case.0x59aaae.14
mov ecx, esi
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [edi + 0x34]
jne case.0x59aaae.14
cmp edx, 1
je 0x598678
mov al, byte [ecx + 1]
cmp al, byte [edi + 0x35]
jne case.0x59aaae.14
inc ebx
jmp 0x597590
mov eax, dword [edi + 0x94]
add eax, dword [edi + 0x74]
cmp esi, eax
jne case.0x59aaae.14
inc ebx
jmp 0x597590
mov dword [ebp - 0x94], esi
inc ebx
jmp 0x597590
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x59874e
mov edx, dword [edi + 0x18]
test edx, edx
je 0x598727
push 0
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.0059c720
add esp, 0x14
test eax, eax
jne 0x598678
mov ecx, dword [edi + 0x88]
test ecx, ecx
je case.0x59aaae.14
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb case.0x59aaae.14
cmp dword [edi + 0x18], 0
jne case.0x59aaae.14
cmp dword [edi + 0x1c], 2
jne case.0x59aaae.14
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne case.0x59aaae.14
mov dword [edi + 0x64], 1
cmp ecx, 1
jle case.0x59aaae.14
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x5986c8
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x5986c8
cmp edx, 1
je 0x598678
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x5986c8
inc ebx
jmp 0x597590
cmp dword [edi + 0x48], 0
jne case.0x59aaae.14
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598678
cmp esi, dword [edi + 0x84]
jbe 0x598678
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
inc ebx
jmp 0x597590
cmp dword [edi + 0x48], 0
jne case.0x59aaae.14
cmp dword [edi + 0x58], 0
je case.0x5975bf.23
cmp esi, dword [edi + 0x78]
jb case.0x59aaae.14
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598678
cmp esi, dword [edi + 0x84]
jbe 0x598678
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
inc ebx
jmp 0x597590
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x59882e
mov edx, dword [edi + 0x18]
lea ecx, [edi + 0x1c]
test edx, edx
je 0x5987f9
push 0
push ecx
push eax
push edx
push esi
call fcn.0059c720
add esp, 0x14
test eax, eax
je 0x5986c8
lea ecx, [edi + 0x1c]
jmp 0x598821
mov edx, dword [ecx]
sub eax, edx
cmp esi, eax
ja 0x5986c8
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x5986c8
cmp edx, 1
je 0x598821
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x5986c8
mov eax, dword [edi + 0x78]
sub eax, dword [ecx]
cmp esi, eax
jne 0x5986c8
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598678
cmp esi, dword [edi + 0x84]
jbe 0x598678
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x74]
jne 0x598867
xor edx, edx
jmp 0x598889
cmp esi, dword [edi + 0x84]
ja 0x598878
lea eax, [esi - 1]
mov dword [edi + 0x84], eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [esi - 1]
movzx edx, byte [eax + ecx]
shr edx, 4
and edx, 1
cmp esi, dword [edi + 0x78]
jb 0x5988b4
mov eax, dword [edi + 0x88]
test eax, eax
je 0x5988b0
cmp esi, dword [edi + 0x84]
jbe 0x5988b0
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
xor ecx, ecx
jmp 0x5988c4
mov ecx, dword [edi + 0x40]
movzx eax, byte [esi]
movzx ecx, byte [eax + ecx]
shr ecx, 4
and ecx, 1
mov al, byte [ebx]
inc ebx
cmp al, 5
jne 0x5988d4
xor eax, eax
cmp ecx, edx
sete al
jmp 0x5988db
xor eax, eax
cmp ecx, edx
setne al
test eax, eax
je 0x597590
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x59891f
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x598947
push 0
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.0059c720
add esp, 0x14
test eax, eax
jne case.0x59aaae.14
jmp 0x598947
mov eax, dword [edi + 0x78]
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x598947
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x598947
cmp ecx, 1
je case.0x59aaae.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x59aaae.14
mov ecx, dword [edi + 0x88]
test ecx, ecx
je case.0x5975bf.13
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb case.0x5975bf.13
cmp dword [edi + 0x18], 0
jne case.0x5975bf.13
cmp dword [edi + 0x1c], 2
jne case.0x5975bf.13
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne case.0x5975bf.13
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x598711
cmp esi, dword [edi + 0x78]
jae 0x59a501
inc esi
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
jne case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
je case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
jne case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
je case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
jne case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
je case.0x59aaae.14
inc ebx
jmp 0x597590
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 0xd
ja 0x598aba
je 0x598a76
cmp eax, 0xa
je 0x598678
jbe case.0x59aaae.14
cmp eax, 0xc
jmp 0x598ac9
cmp esi, ecx
jb 0x598aaa
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598678
cmp esi, dword [edi + 0x84]
jbe 0x598678
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
inc ebx
jmp 0x597590
cmp byte [esi], 0xa
jne 0x598678
inc esi
inc ebx
jmp 0x597590
cmp eax, 0x85
je 0x598acf
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x59aaae.14
cmp dword [edi + 0x68], 0
jne case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 0x180e
ja 0x598b2f
je case.0x59aaae.14
cmp eax, 0xa0
ja 0x598b1e
je case.0x59aaae.14
cmp eax, 9
je case.0x59aaae.14
cmp eax, 0x20
je case.0x59aaae.14
inc ebx
jmp 0x597590
cmp eax, 0x1680
je case.0x59aaae.14
inc ebx
jmp 0x597590
cmp eax, 0x205f
ja 0x598b63
je case.0x59aaae.14
cmp eax, 0x2000
jb 0x598678
cmp eax, 0x200a
jbe case.0x59aaae.14
cmp eax, 0x202f
je case.0x59aaae.14
inc ebx
jmp 0x597590
cmp eax, 0x3000
je case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 0x180e
ja 0x598bb6
je 0x598678
cmp eax, 0xa0
ja 0x598bac
je 0x598678
cmp eax, 9
je 0x598678
cmp eax, 0x20
jmp 0x598672
cmp eax, 0x1680
jmp 0x598672
cmp eax, 0x205f
ja 0x598be3
je 0x598678
cmp eax, 0x2000
jb case.0x59aaae.14
cmp eax, 0x200a
jbe 0x598678
cmp eax, 0x202f
jmp 0x598672
cmp eax, 0x3000
jne case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 0x85
ja 0x598c26
je case.0x59aaae.14
cmp eax, 0xa
jb 0x598678
cmp eax, 0xd
jbe case.0x59aaae.14
inc ebx
jmp 0x597590
cmp eax, 0x2028
jb 0x598678
cmp eax, 0x2029
jbe case.0x59aaae.14
inc ebx
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 0x85
ja 0x598c6e
je 0x598678
add eax, 0xfffffff6
cmp eax, 3
ja case.0x59aaae.14
inc ebx
jmp 0x597590
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x59aaae.14
inc ebx
jmp 0x597590
movzx ecx, byte [ebx + 3]
xor eax, eax
cmp edx, 0x74
movzx edx, byte [ebx + 1]
sete al
shl ecx, 8
mov dword [ebp - 0x98], eax
movzx eax, byte [ebx + 4]
or ecx, eax
shl edx, 8
movzx eax, byte [ebx + 2]
add ebx, 5
or edx, eax
mov dword [ebp - 0x88], ecx
imul edx, dword [edi + 0x24]
mov eax, dword [edi + 0x50]
add edx, dword [edi + 0x30]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
mov dword [ebp - 0x84], ecx
dec eax
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x88]
test eax, eax
jle 0x598d19
lea esp, [esp]
movzx ecx, byte [edx + 1]
dec eax
mov dword [ebp - 0x88], eax
movzx eax, byte [edx]
shl eax, 8
or ecx, eax
add ecx, ecx
mov dword [ebp - 0x84], ecx
cmp ecx, dword [ebp - 0x90]
jge 0x598d0c
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x598d47
add edx, dword [edi + 0x24]
mov eax, dword [ebp - 0x88]
test eax, eax
jg 0x598ce0
mov edx, dword [ebp - 0x80]
mov al, byte [ebx]
mov byte [ebp - 0xad], al
movzx eax, al
mov dword [ebp - 0xa8], eax
add eax, 0xffffff9e
cmp eax, 7
ja case.default.0x598d40
movzx eax, byte [eax + 0x59b348]
jmp dword [eax*4 + 0x59b340]
mov eax, dword [edi + 0xc]
mov edx, dword [eax + ecx*4 + 4]
sub edx, dword [eax + ecx*4]
mov dword [ebp - 0x80], edx
jmp 0x598d1c
movzx ecx, byte [ebx + 1]
xor eax, eax
cmp edx, 0x72
sete al
shl ecx, 8
mov dword [ebp - 0x98], eax
movzx eax, byte [ebx + 2]
add ebx, 3
or ecx, eax
add ecx, ecx
mov dword [ebp - 0x84], ecx
cmp ecx, dword [ebp - 0x90]
jge 0x598d99
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x598d99
mov edx, dword [eax + ecx*4 + 4]
sub edx, dword [eax + ecx*4]
mov dword [ebp - 0x80], edx
jmp 0x598d1c
mov edx, dword [edi + 0x50]
neg edx
sbb edx, edx
neg edx
dec edx
mov dword [ebp - 0x80], edx
jmp 0x598d1c
mov eax, dword [ebp - 0xa8]
inc ebx
lea edx, [eax - 0x62]
and edx, 1
mov dword [ebp - 0x9c], edx
movsx edx, byte [eax + 0x61b746]
movsx eax, byte [eax + 0x61b752]
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x88], eax
test eax, eax
jne 0x598e3a
mov dword [ebp - 0x88], getpeername
jmp 0x598e3a
movzx edx, byte [ebx + 1]
xor eax, eax
cmp byte [ebp - 0xad], 0x69
sete al
shl edx, 8
mov dword [ebp - 0x9c], eax
movzx eax, byte [ebx + 2]
or edx, eax
movzx eax, byte [ebx + 3]
shl eax, 8
mov dword [ebp - 0x88], eax
movzx eax, byte [ebx + 4]
or dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
cmove eax, dword [ebp - 0xb4]
add ebx, 5
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x597590
jns 0x598e4f
test edx, edx
je 0x597590
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x598e9c
mov edi, edi
push dword [ebp - 0x98]
push edi
push eax
push esi
push ecx
call fcn.0059b540
add esp, 0x14
test eax, eax
js 0x59a541
mov edx, dword [ebp - 0xa4]
add esi, eax
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
mov eax, dword [ebp - 0x80]
jle 0x598e60
mov ecx, dword [ebp - 0x88]
cmp edx, ecx
je 0x597590
cmp dword [ebp - 0x9c], 0
je 0x59a583
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov eax, dword [ebp - 0x88]
cmp dword [ebp - 0xa4], eax
jge case.0x59aaae.14
push dword [ebp - 0x98]
push edi
push dword [ebp - 0x80]
push esi
push dword [ebp - 0x84]
call fcn.0059b540
add esp, 0x14
test eax, eax
js 0x59a562
inc dword [ebp - 0xa4]
add esi, eax
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x598ee1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x98]
push edi
push edx
push esi
push ecx
call fcn.0059b540
add esp, 0x14
test eax, eax
js 0x59a646
add esi, eax
jmp 0x597590
mov cl, byte [ebx + 0x21]
lea eax, [ebx + 1]
add ebx, 0x21
movzx edx, cl
mov dword [ebp - 0x98], eax
lea eax, [edx - 0x62]
cmp eax, 0xb
ja case.default.0x598f99
movzx eax, byte [eax + 0x59b358]
jmp dword [eax*4 + 0x59b350]
lea eax, [edx - 0x62]
inc ebx
cmp eax, 8
jae 0x598fb6
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x88], ecx
jmp 0x598fc0
mov dword [ebp - 0xa4], 1
movsx ecx, byte [eax + 0x61b7a8]
movsx eax, byte [eax + 0x61b7b4]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], eax
test eax, eax
jne 0x599042
mov dword [ebp - 0x84], getpeername
jmp 0x599042
movzx edx, byte [ebx + 3]
xor eax, eax
cmp cl, 0x69
sete al
mov dword [ebp - 0x88], eax
xor eax, eax
cmp cl, 0x6d
movzx ecx, byte [ebx + 1]
sete al
shl ecx, 8
mov dword [ebp - 0xa4], eax
movzx eax, byte [ebx + 2]
or ecx, eax
shl edx, 8
movzx eax, byte [ebx + 4]
or edx, eax
mov eax, bind
cmove edx, eax
add ebx, 5
mov dword [ebp - 0x84], edx
jmp 0x59903f
mov dword [ebp - 0x84], 1
mov ecx, 1
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x8c], 1
cmp ecx, 1
jl 0x599090
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
inc esi
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x98]
test byte [edx + ecx], al
je case.0x59aaae.14
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, ecx
jle 0x599051
mov eax, dword [ebp - 0x84]
cmp ecx, eax
je 0x597590
cmp dword [ebp - 0x88], 0
jne 0x59a66a
mov edx, esi
mov dword [ebp - 0x88], edx
cmp ecx, eax
jge 0x599113
cmp esi, dword [edi + 0x78]
jae 0x5990eb
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
shr edx, 3
and ecx, 7
shl eax, cl
mov ecx, dword [ebp - 0x98]
test byte [edx + ecx], al
je 0x59910d
mov ecx, dword [ebp - 0x80]
inc esi
inc ecx
mov dword [ebp - 0x80], ecx
cmp ecx, dword [ebp - 0x84]
jl 0x5990b7
jmp 0x59910d
mov eax, dword [edi + 0x88]
test eax, eax
je 0x59910d
cmp esi, dword [edi + 0x84]
jbe 0x59910d
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
mov edx, dword [ebp - 0x88]
cmp dword [ebp - 0xa4], 0
jne 0x597590
cmp esi, edx
jb case.0x59aaae.14
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
dec esi
cmp esi, dword [ebp - 0x88]
jae 0x599128
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x78]
sub eax, esi
cmp eax, 1
jl 0x59a501
mov al, byte [esi]
inc esi
cmp byte [ebx + 1], al
jne case.0x59aaae.14
add ebx, 2
jmp 0x597590
cmp esi, dword [edi + 0x78]
jae 0x59a501
mov edx, dword [edi + 0x38]
movzx eax, byte [ebx + 1]
movzx ecx, byte [esi]
mov al, byte [eax + edx]
cmp al, byte [ecx + edx]
jne case.0x59aaae.14
inc esi
add ebx, 2
jmp 0x597590
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, 3
mov dword [ebp - 0x84], ecx
mov edx, ecx
jmp 0x5992a8
mov dword [ebp - 0xa4], 1
movzx eax, byte [ebx + 1]
xor edx, edx
shl eax, 8
mov dword [ebp - 0x84], eax
movzx eax, byte [ebx + 2]
or dword [ebp - 0x84], eax
mov dword [ebp - 0x9c], edx
cmp cl, 0x28
je 0x59920c
mov dword [ebp - 0x88], edx
cmp cl, 0x35
jne 0x599216
mov dword [ebp - 0x88], 1
add ebx, 3
jmp 0x5992ae
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], getpeername
inc ebx
jmp 0x5992a8
mov dword [ebp - 0xa4], 1
mov edx, 1
mov dword [ebp - 0x84], getpeername
inc ebx
jmp 0x5992a8
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], 1
inc ebx
jmp 0x5992a8
cmp edx, 0x2e
mov ecx, edx
sbb eax, eax
inc ebx
and eax, 0xfffffff3
add eax, 0x2e
sub ecx, eax
mov eax, ecx
and eax, 1
mov dword [ebp - 0x88], eax
movsx eax, byte [ecx + 0x61b7b4]
movsx edx, byte [ecx + 0x61b7a8]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x9c], edx
movzx ecx, byte [ebx]
inc ebx
cmp dword [ebp - 0x80], 0x2e
mov dword [ebp - 0x98], ecx
jb 0x5993c5
mov eax, dword [edi + 0x3c]
movzx eax, byte [eax + ecx]
mov dword [ebp - 0x8c], eax
cmp edx, 1
jl 0x59930c
mov ecx, 1
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
je 0x599300
cmp dword [ebp - 0x8c], eax
jne case.0x59aaae.14
inc ecx
inc esi
cmp ecx, edx
jle 0x5992e0
mov ecx, dword [ebp - 0x98]
cmp edx, dword [ebp - 0x84]
je 0x597590
cmp dword [ebp - 0x88], 0
jne 0x59a714
mov eax, esi
mov dword [ebp - 0x80], eax
cmp edx, dword [ebp - 0x84]
jge 0x599377
cmp esi, dword [edi + 0x78]
jae 0x599352
movzx eax, byte [esi]
cmp ecx, eax
je 0x599346
cmp dword [ebp - 0x8c], eax
jne 0x599374
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599332
jmp 0x599374
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599374
cmp esi, dword [edi + 0x84]
jbe 0x599374
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597590
cmp esi, eax
je 0x59a205
lea esp, [esp]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
dec esi
test eax, eax
jne 0x59b13b
cmp esi, dword [ebp - 0x80]
jne 0x599390
jmp 0x59a205
mov ecx, 1
cmp edx, ecx
jl 0x5993ee
mov edi, edi
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
jne case.0x59aaae.14
inc ecx
cmp ecx, edx
jle 0x5993d0
mov ecx, dword [ebp - 0x84]
cmp edx, ecx
je 0x597590
cmp dword [ebp - 0x88], 0
jne 0x59a7b1
mov eax, esi
mov dword [ebp - 0x80], eax
cmp edx, ecx
jge 0x599455
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x599430
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
jne 0x599452
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599415
jmp 0x599452
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599452
cmp esi, dword [edi + 0x84]
jbe 0x599452
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597590
cmp esi, eax
je 0x59a205
lea ebx, [ebx]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
dec esi
test eax, eax
jne 0x59b13b
cmp esi, dword [ebp - 0x80]
jne 0x599470
jmp 0x59a205
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx edx, byte [esi]
inc esi
movzx ecx, byte [ebx + 1]
cmp ecx, edx
je case.0x59aaae.14
cmp dword [ebp - 0x80], 0x20
jne 0x5994d3
mov eax, dword [edi + 0x3c]
movzx eax, byte [eax + ecx]
cmp eax, edx
je case.0x59aaae.14
add ebx, 2
jmp 0x597590
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, 3
mov dword [ebp - 0x84], ecx
mov edx, ecx
jmp 0x5995ea
movzx eax, byte [ebx + 1]
xor edx, edx
shl eax, 8
mov dword [ebp - 0x84], eax
movzx eax, byte [ebx + 2]
or dword [ebp - 0x84], eax
mov dword [ebp - 0x9c], edx
cmp cl, 0x42
je 0x599527
mov dword [ebp - 0x88], edx
cmp cl, 0x4f
jne 0x599531
mov dword [ebp - 0x88], 1
add ebx, 3
jmp 0x5995f0
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], getpeername
inc ebx
jmp 0x5995ea
mov dword [ebp - 0xa4], 1
mov edx, 1
mov dword [ebp - 0x84], getpeername
inc ebx
jmp 0x5995ea
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], 1
inc ebx
jmp 0x5995ea
movzx ecx, byte [ebx + 1]
xor edx, edx
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], ecx
add ebx, 3
jmp 0x5995ea
cmp edx, 0x48
mov ecx, edx
sbb eax, eax
inc ebx
and eax, 0xfffffff3
add eax, 0x48
sub ecx, eax
mov eax, ecx
and eax, 1
mov dword [ebp - 0x88], eax
movsx eax, byte [ecx + 0x61b7b4]
movsx edx, byte [ecx + 0x61b7a8]
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x9c], edx
movzx ecx, byte [ebx]
inc ebx
cmp dword [ebp - 0x80], 0x48
mov dword [ebp - 0x98], ecx
jb 0x599705
mov eax, dword [edi + 0x3c]
movzx eax, byte [eax + ecx]
mov ecx, 1
mov dword [ebp - 0x8c], eax
cmp edx, ecx
jl 0x59964a
lea ebx, [ebx]
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
je case.0x59aaae.14
cmp dword [ebp - 0x8c], eax
je case.0x59aaae.14
inc ecx
inc esi
cmp ecx, edx
jle 0x599620
mov eax, dword [ebp - 0x84]
cmp edx, eax
je 0x597590
cmp dword [ebp - 0x88], 0
jne 0x59a849
mov ecx, esi
mov dword [ebp - 0x80], ecx
cmp edx, eax
jge 0x5996b9
mov ecx, dword [ebp - 0x98]
cmp esi, dword [edi + 0x78]
jae 0x599694
movzx eax, byte [esi]
cmp ecx, eax
je 0x5996b6
cmp dword [ebp - 0x8c], eax
je 0x5996b6
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599674
jmp 0x5996b6
mov eax, dword [edi + 0x88]
test eax, eax
je 0x5996b6
cmp esi, dword [edi + 0x84]
jbe 0x5996b6
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
mov ecx, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597590
cmp esi, ecx
je 0x59a205
mov edi, edi
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
dec esi
cmp esi, dword [ebp - 0x80]
jne 0x5996d0
jmp 0x59a205
mov ecx, 1
cmp edx, ecx
jl 0x59972e
mov edi, edi
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
je case.0x59aaae.14
inc ecx
cmp ecx, edx
jle 0x599710
mov ecx, dword [ebp - 0x84]
cmp edx, ecx
je 0x597590
cmp dword [ebp - 0x88], 0
jne 0x59a8e8
mov eax, esi
mov dword [ebp - 0x80], eax
cmp edx, ecx
jge 0x599795
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x599770
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
je 0x599792
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599755
jmp 0x599792
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599792
cmp esi, dword [edi + 0x84]
jbe 0x599792
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597590
cmp esi, eax
je 0x59a205
lea ebx, [ebx]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
dec esi
cmp esi, dword [ebp - 0x80]
jne 0x5997b0
jmp 0x59a205
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0x88], 1
mov dword [ebp - 0x84], ecx
mov edx, ecx
add ebx, 3
jmp 0x5998dd
movzx eax, byte [ebx + 1]
xor edx, edx
shl eax, 8
mov dword [ebp - 0x84], eax
movzx eax, byte [ebx + 2]
or dword [ebp - 0x84], eax
xor eax, eax
cmp cl, 0x5c
sete al
add ebx, 3
mov dword [ebp - 0x88], eax
jmp 0x5998dd
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], getpeername
inc ebx
jmp 0x5998dd
mov dword [ebp - 0xa4], 1
mov edx, 1
mov dword [ebp - 0x84], getpeername
inc ebx
jmp 0x5998dd
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], 1
inc ebx
jmp 0x5998dd
movzx ecx, byte [ebx + 1]
xor edx, edx
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], ecx
add ebx, 3
jmp 0x5998dd
lea eax, [edx - 0x55]
inc ebx
movsx edx, byte [eax + 0x61b7a8]
mov ecx, eax
movsx eax, byte [eax + 0x61b7b4]
and ecx, 1
mov dword [ebp - 0x88], ecx
test eax, eax
mov ecx, bind
cmove eax, ecx
mov dword [ebp - 0x84], eax
movzx eax, byte [ebx]
inc ebx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x9c], eax
test edx, edx
jle 0x599cd1
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x59aa45.15
jmp dword [eax*4 + 0x59b364]
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x599ccb
jmp 0x599920
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x59a501
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x599950
push 0
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0059c720
add esp, 0x14
test eax, eax
jne case.0x59aaae.14
mov edx, dword [ebp - 0x80]
jmp 0x599975
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x599975
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x599975
cmp ecx, 1
je case.0x59aaae.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x59aaae.14
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x5999aa
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb 0x5999aa
cmp dword [edi + 0x18], 0
jne 0x5999aa
cmp dword [edi + 0x1c], 2
jne 0x5999aa
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x5999aa
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x598711
mov ecx, dword [ebp - 0x8c]
inc esi
inc ecx
mov dword [ebp - 0x8c], ecx
cmp ecx, edx
jle 0x599920
jmp 0x599ccb
mov eax, dword [edi + 0x78]
sub eax, edx
cmp esi, eax
ja 0x59a501
add esi, edx
jmp 0x599ccb
mov ecx, 1
cmp edx, ecx
jl 0x599ccb
mov eax, dword [edi + 0x78]
lea esp, [esp]
cmp esi, eax
jae 0x59a501
movzx eax, byte [esi]
inc esi
sub eax, 0xa
cmp eax, 0x7b
ja case.0x59aaae.14
movzx eax, byte [eax + 0x59b3b4]
jmp dword [eax*4 + 0x59b3a4]
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x599a32
cmp byte [esi], 0xa
jne 0x599a32
inc esi
jmp 0x599a32
cmp dword [edi + 0x68], 0
jne case.0x59aaae.14
mov eax, dword [edi + 0x78]
inc ecx
cmp ecx, edx
jle 0x5999f0
jmp 0x599ccb
mov ecx, 1
cmp edx, ecx
jl 0x599ccb
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 9
je case.0x59aaae.14
cmp eax, 0x20
je case.0x59aaae.14
cmp eax, 0xa0
je case.0x59aaae.14
inc ecx
cmp ecx, edx
jle 0x599a50
jmp 0x599ccb
mov ecx, 1
cmp edx, ecx
jl 0x599ccb
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 9
je 0x599ab3
cmp eax, 0x20
je 0x599ab3
cmp eax, 0xa0
jne case.0x59aaae.14
inc ecx
cmp ecx, edx
jle 0x599a91
jmp 0x599ccb
mov ecx, 1
cmp edx, ecx
jl 0x599ccb
lea ebx, [ebx]
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl 0x599af6
cmp eax, 0xd
jle case.0x59aaae.14
cmp eax, 0x85
je case.0x59aaae.14
inc ecx
cmp ecx, edx
jle 0x599ad0
jmp 0x599ccb
mov ecx, 1
cmp edx, ecx
jl 0x599ccb
lea ecx, [ecx]
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl case.0x59aaae.14
cmp eax, 0xd
jle 0x599b36
cmp eax, 0x85
jne case.0x59aaae.14
inc ecx
cmp ecx, edx
jle 0x599b10
jmp 0x599ccb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x599ccb
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
jne case.0x59aaae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x599b53
jmp 0x599ccb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x599ccb
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
je case.0x59aaae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x599b96
jmp 0x599ccb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x599ccb
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
jne case.0x59aaae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x599be0
jmp 0x599ccb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x599ccb
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
je case.0x59aaae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x599c23
jmp 0x599ccb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x599ccb
nop
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
jne case.0x59aaae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x599c60
jmp 0x599ccb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x599ccb
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
je case.0x59aaae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x599ca0
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x84]
cmp edx, ecx
je 0x597590
cmp dword [ebp - 0x88], 0
jne 0x59a991
add eax, 0xfffffffa
mov dword [ebp - 0x98], esi
cmp eax, 0xf
ja case.0x59aa45.15
jmp dword [eax*4 + 0x59b430]
cmp edx, ecx
jge 0x599df0
lea ecx, [ecx]
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x599dce
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x599d40
push 0
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0059c720
add esp, 0x14
test eax, eax
jne 0x599df0
mov edx, dword [ebp - 0x80]
jmp 0x599d65
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x599d65
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x599d65
cmp ecx, 1
je 0x599df0
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je 0x599df0
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x599d9a
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb 0x599d9a
cmp dword [edi + 0x18], 0
jne 0x599d9a
cmp dword [edi + 0x1c], 2
jne 0x599d9a
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x599d9a
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x598711
mov ecx, dword [ebp - 0x84]
inc edx
inc esi
mov dword [ebp - 0x80], edx
cmp edx, ecx
jl 0x599d10
jmp 0x599df0
sub ecx, edx
mov dword [ebp - 0x84], ecx
mov ecx, dword [edi + 0x78]
mov eax, ecx
mov edx, dword [ebp - 0x84]
sub eax, esi
cmp edx, eax
jbe 0x599e66
mov esi, ecx
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599df0
cmp esi, dword [edi + 0x84]
jbe 0x599df0
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x598711
cmp dword [ebp - 0xa4], 0
jne 0x597590
cmp esi, dword [ebp - 0x98]
je 0x59a205
lea esp, [esp]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov ecx, dword [ebp - 0x98]
dec esi
cmp dword [ebp - 0x9c], 0x11
jne 0x599e5d
cmp esi, ecx
jbe 0x599e5f
cmp byte [esi], 0xa
jne 0x599e5d
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
cmp esi, ecx
jne 0x599e10
jmp 0x59a205
add esi, edx
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x599dce
movzx eax, byte [esi]
cmp eax, 0xd
jne 0x599e91
inc esi
cmp esi, ecx
jae 0x599df0
cmp byte [esi], 0xa
jne 0x599eb6
jmp 0x599eb5
cmp eax, 0xa
je 0x599eb5
cmp dword [edi + 0x68], 0
jne 0x599df0
cmp eax, 0xb
je 0x599eb5
cmp eax, 0xc
je 0x599eb5
cmp eax, 0x85
jne 0x599df0
inc esi
inc edx
cmp edx, dword [ebp - 0x84]
jl 0x599e71
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
mov ecx, dword [edi + 0x78]
nop
cmp esi, ecx
jae 0x599dce
mov al, byte [esi]
cmp al, 9
je 0x599df0
cmp al, 0x20
je 0x599df0
cmp al, 0xa0
je 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599ed0
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x599dce
mov al, byte [esi]
cmp al, 9
je 0x599f2a
cmp al, 0x20
je 0x599f2a
cmp al, 0xa0
jne 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599f10
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x599dce
mov al, byte [esi]
cmp al, 0xa
jb 0x599f62
cmp al, 0xd
jbe 0x599df0
cmp al, 0x85
je 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599f44
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x599dce
mov al, byte [esi]
cmp al, 0xa
jb 0x599df0
cmp al, 0xd
jbe 0x599f9e
cmp al, 0x85
jne 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599f80
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
cmp esi, dword [edi + 0x78]
jae 0x599dce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
jne 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599fb5
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
cmp esi, dword [edi + 0x78]
jae 0x599dce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
je 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599fe5
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
cmp esi, dword [edi + 0x78]
jae 0x599dce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
jne 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a015
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
cmp esi, dword [edi + 0x78]
jae 0x599dce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
je 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a045
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
cmp esi, dword [edi + 0x78]
jae 0x599dce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
jne 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a075
jmp 0x599df0
cmp edx, ecx
jge 0x599df0
cmp esi, dword [edi + 0x78]
jae 0x599dce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
je 0x599df0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a0a5
jmp 0x599df0
mov eax, dword [ebp + 0x20]
inc eax
cmp byte [ebx], 0x7a
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push edx
jne 0x59a105
lea eax, [ebx + 3]
push eax
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov ebx, dword [ebp - 0x8c]
jmp 0x59a205
push dword [ebp - 0x8c]
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
add ebx, 3
jmp 0x59a205
mov eax, dword [ebp + 0x20]
inc eax
cmp byte [ebx], 0x7a
push eax
push dword [ebp - 0xa0]
push edi
push ecx
push dword [ebp - 0x94]
jne 0x59a16b
lea eax, [ebx + 3]
push eax
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov ebx, dword [ebp - 0x80]
mov al, byte [ebx]
cmp al, 0x81
je 0x59a404
cmp al, 0x88
jae 0x597a7b
jmp 0x59a205
push edx
push esi
call fcn.005974c0
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x59a18d
mov ecx, dword [ebp - 0x80]
cmp dword [edi + 0xb4], ecx
jne 0x59b13b
jmp 0x59a198
test eax, eax
jne 0x59b13b
mov ecx, dword [ebp - 0x80]
cmp byte [ecx], 0x81
je 0x59a44a
add ebx, 3
jmp 0x59a205
movzx edx, byte [ebx + 3]
movzx eax, byte [ebx + 4]
shl edx, 8
or edx, eax
mov dword [ebp - 0x98], edx
lea eax, [edx + edx]
mov dword [ebp - 0xac], eax
cmp eax, dword [edi + 0x14]
jl 0x59abd6
mov edx, dword [ebp - 0x80]
mov edi, edi
cmp edx, 0x88
jae 0x59a21b
cmp edx, 0x81
je 0x59a21b
cmp dword [edi + 0x6c], 0
jne 0x59a225
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + ebx], 0x77
je 0x59a225
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x61b7c0]
add ebx, eax
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jae 0x59b134
mov ecx, dword [ebp - 0xa0]
jmp 0x597556
mov dword [edi + 0x98], 2
mov eax, dword [edi + 0xac]
mov dword [ebp - 0xa8], eax
mov eax, dword [edi + 0x90]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
add esp, 0x1c
mov dword [ebp - 0xb8], eax
cmp eax, 0xfffffc20
jne 0x59a2a0
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl edx, 8
or edx, ecx
add edx, ebx
cmp dword [edi + 0x7c], edx
jae 0x59b13b
cmp byte [ebx], 0x77
je 0x59a2a8
cmp byte [edx], 0x77
jne 0x59b13b
jmp 0x59a2a8
test eax, eax
jne 0x59ad3b
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xa8]
add ebx, ecx
mov dword [edi + 0xac], eax
cmp byte [ebx], 0x77
jne case.0x59aaae.14
mov eax, dword [ebp - 0xac]
mov dword [edi + 0x90], eax
jmp 0x59a1cb
mov eax, dword [ebp + 0x20]
movzx ecx, byte [ebx + 1]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
lea eax, [ebx + 2]
mov dword [edi + 0x7c], eax
mov eax, 0xfffffc1f
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
dec eax
je case.0x59aaae.14
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffe6
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xd0]
lea ecx, [ebp - 0x7c]
mov dword [edi + 0xa4], eax
mov eax, dword [ebp - 0xc8]
cmp eax, ecx
je case.0x59aaae.14
push eax
call dword [0x658d28]
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0x7c]
cmp ecx, edx
je 0x59b13b
push ecx
call dword [0x658d28]
mov eax, dword [ebp - 0x8c]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffa
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x80], esi
mov dword [edi + 0x7c], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov dword [edi + 0xb4], ebx
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
jmp 0x59a46b
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push ecx
push dword [ebp - 0x94]
lea eax, [ebx + 3]
push eax
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov eax, dword [ebp - 0x80]
mov dword [edi + 0xb4], eax
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x7c], eax
mov eax, 0xfffffc1a
mov dword [edi + 0x80], esi
mov dword [edi + 0x8c], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x90]
mov dword [edi + 0x8c], eax
mov eax, dword [ebp - 0x94]
mov dword [edi + 0x80], esi
mov dword [edi + 0x7c], eax
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59aaae.14
cmp esi, dword [edi + 0x84]
jbe case.0x59aaae.14
mov dword [edi + 0x64], 1
cmp eax, 1
jle case.0x59aaae.14
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffffe
jne 0x59a549
mov esi, dword [edi + 0x78]
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jb case.0x59aaae.14
jmp 0x59a50f
cmp eax, 0xfffffffe
jne 0x59a56a
mov esi, dword [edi + 0x78]
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jb case.0x59aaae.14
jmp 0x59a50f
mov dword [ebp - 0x8c], esi
cmp edx, ecx
jge 0x59a600
lea ecx, [ecx]
push dword [ebp - 0x98]
push edi
push eax
push esi
push dword [ebp - 0x84]
call fcn.0059b540
add esp, 0x14
test eax, eax
js 0x59a5c7
add esi, eax
mov eax, dword [ebp - 0xa4]
inc eax
cmp eax, dword [ebp - 0x88]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x80]
jl 0x59a590
jmp 0x59a5f1
cmp eax, 0xfffffffe
jne 0x59a5f1
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x59a5f1
mov eax, dword [edi + 0x78]
cmp eax, dword [edi + 0x84]
jbe 0x59a5f1
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x598711
cmp esi, dword [ebp - 0x8c]
jb case.0x59aaae.14
lea ecx, [ecx]
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
sub esi, dword [ebp - 0x80]
cmp esi, dword [ebp - 0x8c]
jae 0x59a600
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffffe
jne 0x59a64e
mov esi, dword [edi + 0x78]
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jb case.0x59aaae.14
jmp 0x59a50f
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
jmp 0x59a6a0
mov eax, dword [ebp - 0x84]
cmp dword [ebp - 0x80], eax
jge case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx edx, byte [esi]
mov eax, 1
mov ecx, edx
inc esi
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x98]
test byte [edx + ecx], al
je case.0x59aaae.14
mov eax, dword [ebp + 0x20]
inc dword [ebp - 0x80]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x59a6a0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov edi, edi
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0x84]
jge case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
cmp dword [ebp - 0x98], ecx
je 0x59a772
cmp dword [ebp - 0x8c], ecx
jne case.0x59aaae.14
inc eax
inc esi
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x59a740
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
jmp 0x59a7e0
mov ecx, dword [ebp - 0x9c]
cmp ecx, dword [ebp - 0x84]
jge case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
jne case.0x59aaae.14
mov eax, dword [ebp + 0x20]
inc ecx
inc eax
mov dword [ebp - 0x9c], ecx
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x59a7e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0x84]
jge case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx ecx, byte [esi]
cmp dword [ebp - 0x98], ecx
je case.0x59aaae.14
cmp dword [ebp - 0x8c], ecx
je case.0x59aaae.14
inc eax
inc esi
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x59a873
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov ecx, dword [ebp - 0x9c]
cmp ecx, dword [ebp - 0x84]
jge case.0x59aaae.14
cmp esi, dword [edi + 0x78]
jae 0x59a501
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
je case.0x59aaae.14
mov eax, dword [ebp + 0x20]
inc ecx
inc eax
mov dword [ebp - 0x9c], ecx
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x59a912
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffff2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
jmp 0x59a9c0
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x84]
jge case.0x59aaae.14
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x59a501
mov eax, dword [ebp - 0x9c]
cmp eax, 0xc
jne 0x59aa35
cmp dword [edi + 0x18], 0
je 0x59aa0b
push 0
lea eax, [edi + 0x1c]
push eax
push edx
push dword [edi + 0x18]
push esi
call fcn.0059c720
add esp, 0x14
test eax, eax
jne case.0x59aaae.14
mov ecx, dword [ebp - 0x80]
jmp 0x59aa2f
sub edx, dword [edi + 0x1c]
cmp esi, edx
ja 0x59aa35
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x59aa2f
cmp dword [edi + 0x1c], 1
je case.0x59aaae.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x59aaae.14
mov eax, dword [ebp - 0x9c]
movzx edx, byte [esi]
add eax, 0xfffffffa
inc esi
cmp eax, 0xf
ja case.0x59aa45.15
jmp dword [eax*4 + 0x59b470]
cmp dword [edi + 0x88], 0
je case.0x59aa45.13
cmp esi, dword [edi + 0x78]
jb case.0x59aa45.13
cmp dword [edi + 0x18], 0
jne case.0x59aa45.13
cmp dword [edi + 0x1c], 2
jne case.0x59aa45.13
movzx eax, byte [edi + 0x34]
cmp edx, eax
jne case.0x59aa45.13
cmp dword [edi + 0x88], 1
mov dword [edi + 0x64], 1
jg 0x598711
jmp case.0x59aa45.13
add edx, 0xfffffff6
cmp edx, 0x7b
ja case.0x59aaae.14
movzx eax, byte [edx + 0x59b4c0]
jmp dword [eax*4 + 0x59b4b0]
cmp esi, dword [edi + 0x78]
jae case.0x59aa45.13
cmp byte [esi], 0xa
jne case.0x59aa45.13
inc esi
jmp case.0x59aa45.13
cmp dword [edi + 0x68], 0
jne case.0x59aaae.14
jmp case.0x59aa45.13
cmp edx, 9
je case.0x59aaae.14
cmp edx, 0x20
je case.0x59aaae.14
cmp edx, 0xa0
jmp 0x59ab91
cmp edx, 9
je case.0x59aa45.13
cmp edx, 0x20
je case.0x59aa45.13
cmp edx, 0xa0
jne case.0x59aaae.14
jmp case.0x59aa45.13
cmp edx, 0xa
jb case.0x59aa45.13
cmp edx, 0xd
jbe case.0x59aaae.14
cmp edx, 0x85
jmp 0x59ab91
cmp edx, 0xa
jb case.0x59aaae.14
cmp edx, 0xd
jbe case.0x59aa45.13
cmp edx, 0x85
jne case.0x59aaae.14
jmp case.0x59aa45.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 4
jne case.0x59aaae.14
jmp case.0x59aa45.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 4
jmp 0x59ab91
mov eax, dword [edi + 0x40]
test byte [edx + eax], 1
jne case.0x59aaae.14
jmp case.0x59aa45.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 1
jmp 0x59ab91
mov eax, dword [edi + 0x40]
test byte [edx + eax], 0x10
jne case.0x59aaae.14
jmp case.0x59aa45.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 0x10
je case.0x59aaae.14
mov eax, dword [ebp + 0x20]
inc ecx
inc eax
mov dword [ebp - 0x80], ecx
push eax
push dword [ebp - 0xa0]
push edi
push dword [ebp - 0x90]
push dword [ebp - 0x94]
push ebx
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
je 0x59a9c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x88], eax
mov eax, dword [edi + 0x10]
sub eax, dword [ebp - 0x98]
lea ecx, [ecx + eax*4]
mov dword [ebp - 0xb8], edx
mov eax, dword [ecx]
mov dword [ebp - 0xa4], eax
mov eax, dword [edi + 0x90]
mov dword [ebp - 0xb4], eax
mov eax, dword [edi + 0xac]
mov dword [ebp - 0xa8], eax
mov eax, esi
sub eax, dword [edi + 0x74]
mov dword [ecx], eax
nop
cmp dword [ebp - 0x80], 0x88
jb 0x59ac33
mov dword [edi + 0x98], 2
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
mov edx, eax
add esp, 0x1c
mov dword [ebp - 0x8c], edx
cmp edx, 0xfffffc1b
je 0x59acdb
cmp edx, 0xfffffc20
jne 0x59aca3
movzx edx, byte [ebx + 1]
movzx ecx, byte [ebx + 2]
shl edx, 8
or edx, ecx
add edx, ebx
cmp dword [edi + 0x7c], edx
jae 0x59ad22
cmp byte [ebx], 0x77
je 0x59ac9f
cmp byte [edx], 0x77
jne 0x59ad22
xor edx, edx
jmp 0x59acab
test edx, edx
jne 0x59ad28
mov eax, dword [ebp - 0xb4]
mov dword [edi + 0x90], eax
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xa8]
add ebx, ecx
mov dword [edi + 0xac], eax
cmp byte [ebx], 0x77
je 0x59ac20
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xac]
mov ebx, dword [ebp - 0xb8]
mov esi, dword [ebp - 0x88]
mov dword [eax + ecx*4], ebx
mov eax, dword [edi + 0xc]
mov dword [eax + ecx*4 + 4], esi
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
sub ecx, dword [ebp - 0x98]
mov esi, dword [ebp - 0xa4]
pop edi
mov dword [eax + ecx*4], esi
mov eax, edx
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x8c]
pop edi
pop esi
mov eax, edx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffc1b
jne 0x59b13b
mov cl, byte [ebx]
cmp cl, 0x81
je 0x59ad7b
cmp cl, 0x77
jne 0x59ad66
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x59ad52
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0xb8]
sub ebx, ecx
xor ecx, ecx
cmp dword [edi + 0xb4], ebx
pop edi
pop esi
cmove eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 2]
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], eax
movzx ecx, byte [ebx + 1]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.005974c0
mov ecx, eax
add esp, 0x1c
mov dword [ebp - 0xa8], ecx
cmp ecx, 1
je 0x59adf9
cmp ecx, 0xfffffc19
jne 0x59ae1e
cmp dword [edi + 0xac], 0
jne 0x59ae1e
lea eax, [ebx + 2]
mov dword [edi + 0xac], eax
mov eax, ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
cmp ecx, 0xfffffc1f
jne 0x59ae63
mov ecx, dword [edi + 0x7c]
mov eax, dword [ebp - 0xb4]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x59ae50
test dl, dl
je 0x59ae4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x59ae50
add eax, 2
add ecx, 2
test dl, dl
jne 0x59ae30
xor eax, eax
jmp 0x59ae55
sbb eax, eax
or eax, 1
test eax, eax
je 0x59afc5
mov ecx, dword [ebp - 0xa8]
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
add esp, 0x1c
mov ecx, 0xfffffc1c
test eax, eax
cmovne ecx, eax
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
add esp, 0x1c
mov ecx, 0xfffffc1d
test eax, eax
cmovne ecx, eax
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 2]
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], eax
mov eax, dword [ebp + 0x20]
movzx ecx, byte [ebx + 1]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.005974c0
mov ecx, eax
add esp, 0x1c
cmp ecx, 1
je 0x59af62
cmp ecx, 0xfffffc19
jne 0x59af74
cmp dword [edi + 0xac], 0
jne 0x59af74
lea eax, [ebx + 2]
mov dword [edi + 0xac], eax
pop edi
test ecx, ecx
mov eax, 0xfffffc1d
pop esi
cmovne eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov dword [edi + 0x7c], esi
mov eax, 0xfffffc1e
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x20]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.005974c0
add esp, 0x1c
test eax, eax
jne 0x59b13b
mov dword [edi + 0x7c], ebx
mov eax, 0xfffffc20
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 2]
mov dword [edi + 0xac], 0
mov dword [edi + 0xb0], eax
mov eax, dword [ebp + 0x20]
movzx ecx, byte [ebx + 1]
inc eax
push eax
push dword [ebp - 0xa0]
movzx eax, byte [ebx]
push edi
push dword [ebp - 0x90]
movzx eax, byte [eax + 0x61b7c0]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.005974c0
add esp, 0x1c
cmp eax, 1
je 0x59b080
cmp eax, 0xfffffc19
jne 0x59b00c
cmp dword [edi + 0xac], 0
jne 0x59b00c
lea ecx, [ebx + 2]
mov dword [edi + 0xac], ecx
jmp 0x59b00c
mov ecx, dword [ebp - 0x94]
cmp esi, ecx
jne 0x59b0d3
cmp edx, 0x9f
je 0x59b0d3
cmp dword [edi + 0xa4], 0
jne 0x59b0d3
cmp dword [edi + 0x5c], 0
jne case.0x59aaae.14
cmp dword [edi + 0x60], 0
je 0x59b0d3
mov eax, dword [edi + 0x94]
add eax, dword [edi + 0x74]
cmp ecx, eax
je case.0x59aaae.14
mov eax, dword [ebp - 0x90]
test edx, edx
mov dword [edi + 0x8c], eax
mov eax, 0xfffffc19
mov dword [edi + 0x80], esi
mov dword [edi + 0x7c], ecx
mov ecx, 1
pop edi
pop esi
cmove eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffb
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffffeb
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059e77d
mov esp, ebp
pop ebp
ret
inc dword [edi]
mov eax, 0xfffffff8
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0059e77d
mov esp, ebp
pop ebp
ret