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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x651da0]
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 0x597e41
lea eax, [ebp + 0x20]
cmp dword [ebp + 0x20], ebx
jne 0x597e27
push 1
push ebx
push ebx
push ebx
push ebx
push ebx
push eax
call fcn.00597dc0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.0059f07a
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jae 0x59ba34
mov dword [ebp - 0xb4], connect
inc dword [edi]
mov eax, dword [ebp + 0x20]
cmp eax, dword [edi + 8]
jae 0x59ba1e
cmp dword [edi + 0x98], 2
jne 0x597e90
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.0x597ebf.15
movzx eax, byte [edx + 0x59bb88]
jmp dword [eax*4 + 0x59ba4c]
inc dword [edi + 0x28]
mov eax, dword [edi + 0x28]
cmp eax, dword [edi + 0x2c]
ja 0x59abdd
movzx eax, byte [ebx]
movzx ecx, byte [eax + 0x615420]
movzx eax, byte [ebx + 1]
add ebx, eax
add ebx, ecx
jmp 0x597e90
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.00597dc0
add esp, 0x1c
cmp eax, 1
je 0x597fcf
cmp eax, 0xfffffc20
jne 0x597f57
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 0x59ba3b
cmp byte [ebx], 0x77
je 0x597f5f
cmp byte [edx], 0x77
jmp 0x597f59
test eax, eax
jne 0x59ba3b
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 0x597f00
mov edx, dword [ebp - 0x94]
mov al, byte [ebx]
cmp al, 0x82
je 0x597f93
cmp al, 0x77
jne case.0x59b3ae.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 0x597f93
cmp byte [ebx], 0x78
mov eax, dword [edi + 0x8c]
mov esi, dword [edi + 0x80]
mov dword [ebp - 0x90], eax
je 0x597fc7
cmp esi, dword [ebp - 0x80]
jne 0x59a9cd
add ebx, 3
jmp 0x597e90
mov edx, dword [edi + 0x7c]
mov dword [ebp - 0x94], edx
jmp 0x597f85
mov dword [ebp - 0x98], 0
jmp 0x598a22
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 0x5980ff
mov eax, dword [0x6798e4]
mov dword [ebp - 0x98], eax
test eax, eax
je 0x5980ee
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.0x59b3ae.14
js 0x59ba3b
mov ecx, dword [ebp - 0xa4]
movzx eax, byte [0x615496]
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.0x598120
jmp dword [eax*4 + 0x59bc2c]
mov edx, dword [edi + 0xa4]
test edx, edx
je case.0x598120.145
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
cmp ecx, 0xffff
je 0x598205
cmp ecx, dword [edx + 4]
je 0x598205
xor eax, eax
jmp 0x59834e
cmp dword [edi + 0xa4], 0
je case.0x598120.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 0x598348
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 0x59820f
add edx, dword [edi + 0x24]
mov ecx, dword [ebp - 0x84]
test ecx, ecx
jg 0x5981a3
jmp 0x598348
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 0x598157
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x598157
mov dword [ebp - 0x88], 1
mov edx, dword [ebp - 0x98]
movzx ecx, byte [edx + 0x615420]
mov eax, dword [ebp - 0x88]
jmp 0x598354
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 0x598348
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 0x59828a
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x598205
add edx, dword [edi + 0x24]
mov ecx, dword [ebp - 0x8c]
test ecx, ecx
jg 0x598260
jmp 0x598348
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.00597dc0
add esp, 0x1c
cmp eax, 1
jne 0x598339
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 0x598314
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 0x598300
mov edx, dword [ebp - 0x98]
mov ecx, 3
movzx eax, byte [edx + 0x615420]
sub ecx, eax
mov eax, dword [ebp - 0x88]
add ebx, ecx
movzx ecx, byte [edx + 0x615420]
jmp 0x598354
test eax, eax
je 0x598348
cmp eax, 0xfffffc20
jne 0x59ba3b
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0xa4]
add ebx, ecx
test eax, eax
jne 0x598364
cmp byte [ebx - 3], 0x77
jne 0x597e90
cmp dword [ebp - 0x80], 0x8c
jne 0x59ab05
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.00597dc0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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 0x5983ef
or eax, 0x10000
add ebx, 3
mov dword [edi + 0x90], eax
jmp 0x597e90
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 0x598420
lea eax, [edx + 2]
mov dword [ebp - 0x90], eax
add ebx, 3
jmp 0x597e90
cmp dword [edi + 0x98], 1
mov eax, dword [edi + 0xac]
mov dword [ebp - 0x98], eax
jne 0x598453
mov dword [ebp - 0x8c], 1
mov dword [edi + 0x98], 0
jmp 0x598460
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.00597dc0
mov edx, eax
add esp, 0x1c
cmp edx, 1
je 0x5984e8
cmp edx, 0xfffffc19
je 0x5984e8
mov eax, dword [ebp - 0x98]
mov dword [edi + 0xac], eax
cmp edx, 0xfffffc20
jne 0x5984c6
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 0x59b628
cmp byte [ebx], 0x77
je 0x5984ce
cmp byte [ecx], 0x77
jmp 0x5984c8
test edx, edx
jne 0x59b628
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598460
jmp 0x5984f1
mov eax, dword [edi + 0x7c]
mov dword [ebp - 0x94], eax
cmp byte [ebx], 0x78
je case.0x59b3ae.14
cmp dword [ebp - 0x8c], 0
jne 0x59adeb
jmp 0x598510
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598510
mov eax, dword [edi + 0x8c]
add ebx, 3
mov dword [ebp - 0x90], eax
jmp 0x597e90
cmp dword [edi + 0x98], 1
mov eax, dword [edi + 0xac]
mov dword [ebp - 0x98], eax
jne 0x598563
mov dword [ebp - 0x8c], 1
mov dword [edi + 0x98], 0
jmp 0x598570
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.00597dc0
mov ecx, eax
add esp, 0x1c
mov eax, dword [ebp - 0x98]
mov dword [edi + 0xac], eax
cmp ecx, 0xfffffc20
jg 0x5985c9
jne 0x5985ea
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 0x598605
cmp byte [ebx], 0x77
je 0x5985d4
cmp byte [ecx], 0x77
jne 0x598605
jmp 0x5985d4
mov eax, ecx
sub eax, 0
jne 0x59ac35
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598570
jmp 0x598619
cmp ecx, 0xfffffc19
je case.0x59b3ae.14
lea eax, [ecx + 0x3e4]
cmp eax, 3
ja 0x59b763
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598605
cmp dword [ebp - 0x8c], 0
jne 0x59adeb
add ebx, 3
jmp 0x597e90
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.0x59b3ae.14
cmp esi, dword [edi + 0x84]
jae 0x598654
mov dword [edi + 0x84], esi
add ebx, 3
jmp 0x597e90
mov eax, dword [0x6798e4]
mov dword [ebp - 0x98], eax
test eax, eax
je 0x59873c
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.0x59b3ae.14
js 0x59ba3b
add ebx, 6
jmp 0x597e90
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 0x598763
xor ecx, ecx
jmp 0x598770
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 0x598794
lea esp, [esp]
cmp ecx, dword [eax + 4]
jne 0x59878e
cmp esi, dword [eax + 0x14]
je 0x59ac4b
mov eax, dword [eax]
test eax, eax
jne 0x598780
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 0x5987da
lea eax, [ebp - 0x7c]
mov dword [ebp - 0xc8], eax
jmp 0x5987ff
lea eax, [ecx*4]
push eax
call dword [0x651d2c]
add esp, 4
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x59acc9
mov ecx, dword [ebp - 0xc4]
shl ecx, 2
push ecx
push dword [edi + 0xc]
push eax
call fcn.005a3210
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 0x59882e
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 + 0x615420]
push dword [ebp - 0x94]
add eax, edx
push eax
push esi
call fcn.00597dc0
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.005a3210
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 0x5988f6
cmp eax, 0xfffffc19
je 0x5988f6
cmp eax, 0xfffffc1c
jl 0x5988b6
cmp eax, 0xfffffc20
jle case.0x59b3ae.14
test eax, eax
jne 0x59ac97
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 0x59ac61
mov eax, dword [ebp - 0x80]
jmp 0x598820
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x7c]
cmp eax, ecx
je 0x59890d
push eax
call dword [0x651d30]
add esp, 4
mov eax, dword [edi + 0x7c]
mov esi, dword [edi + 0x80]
mov dword [ebp - 0x94], eax
jmp 0x597e90
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.0x597ebf.119
jmp 0x597e90
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598965
add ebx, 3
jmp 0x597e90
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 0x598984
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.00597dc0
add esp, 0x1c
test eax, eax
je 0x597e90
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
inc ebx
jmp 0x5989e0
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x5989e0
add ebx, 3
jmp 0x597e90
movzx edx, byte [ebx + 1]
inc ebx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x98], 1
cmp edx, 0x86
je 0x598a22
cmp edx, 0x8b
jne 0x598c16
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 0x598c09
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 0x598aba
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc1a
jne 0x598b3c
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 0x598bf3
mov esi, eax
jmp 0x598a93
cmp edx, 0xfffffc20
jne 0x598b66
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 0x59b628
cmp byte [ebx], 0x77
je 0x598b6e
cmp byte [ecx], 0x77
jmp 0x598b68
test edx, edx
jne 0x59b628
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 0x598a93
mov edx, dword [ebp - 0xa4]
test edx, edx
jne 0x598bd6
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 0x597fc7
test edx, edx
je case.0x59b3ae.14
add ebx, 3
jmp 0x597e90
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598bf3
jmp 0x598bd6
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 0x598c47
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
mov edx, eax
add esp, 0x1c
cmp edx, 0xfffffc1a
jne 0x598cbb
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 0x598d15
mov edx, dword [ebp - 0x80]
mov esi, eax
jmp 0x598c35
cmp edx, 0xfffffc20
jne 0x598ce5
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 0x59b628
cmp byte [ebx], 0x77
je 0x598ced
cmp byte [ecx], 0x77
jmp 0x598ce7
test edx, edx
jne 0x59b628
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
jne 0x598d31
mov eax, dword [ebp - 0xac]
mov edx, dword [ebp - 0x80]
mov dword [edi + 0x90], eax
jmp 0x598c35
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x598d15
add ebx, 3
jmp 0x597e90
mov eax, dword [ebp - 0x8c]
test eax, eax
jne 0x597fc7
cmp dword [ebp - 0x98], eax
je case.0x59b3ae.14
add ebx, 3
jmp 0x597e90
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 0x598d7d
cmp al, 0x81
je 0x598d7d
mov dword [ebp - 0x98], 0
jmp 0x598d9a
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 0x598da6
cmp al, 0x80
jbe 0x59add0
cmp al, 0x82
je 0x59add0
cmp al, 0x85
je 0x598dc2
cmp al, 0x8a
je 0x598dc2
cmp al, 0x86
je 0x598dc2
cmp al, 0x8b
jne 0x598eae
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 0x598df1
cmp dword [eax + 4], ecx
je 0x59acdf
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 0x598e22
or eax, 0x10000
mov dword [edi + 0x90], eax
mov edx, dword [ebp - 0x80]
jmp 0x598eb4
cmp edx, ecx
jle 0x598e74
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 0x598e6e
lea ebx, [ebx]
inc edx
mov dword [ecx], 0xffffffff
lea ecx, [ecx + 4]
cmp edx, eax
jb 0x598e60
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 0x598e1a
lea ecx, [edx + 2]
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x90], ecx
jmp 0x598eb4
mov ecx, dword [ebp - 0x90]
mov al, byte [ebx]
cmp al, 0x7b
je 0x59ada5
cmp al, 0x78
je 0x598ece
cmp esi, dword [ebp - 0x98]
jne 0x59aa24
cmp byte [edx], 0x81
je 0x59ad5e
add ebx, 3
jmp 0x597e90
cmp dword [edi + 0x44], 0
je case.0x597ebf.1
cmp esi, dword [edi + 0x74]
je case.0x59b3ae.14
cmp esi, dword [edi + 0x74]
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp dword [edi + 0x44], 0
je 0x598f0c
cmp esi, dword [edi + 0x74]
je case.0x59b3ae.14
mov ecx, dword [edi + 0x74]
cmp esi, ecx
je 0x598f78
cmp esi, dword [edi + 0x78]
je case.0x59b3ae.14
mov edx, dword [edi + 0x18]
test edx, edx
je 0x598f4a
cmp esi, ecx
jbe case.0x59b3ae.14
push 0
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.0059d0c0
add esp, 0x14
test eax, eax
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
mov edx, dword [edi + 0x1c]
lea eax, [edx + ecx]
cmp esi, eax
jb case.0x59b3ae.14
mov ecx, esi
sub ecx, edx
mov al, byte [ecx]
cmp al, byte [edi + 0x34]
jne case.0x59b3ae.14
cmp edx, 1
je 0x598f78
mov al, byte [ecx + 1]
cmp al, byte [edi + 0x35]
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
mov eax, dword [edi + 0x94]
add eax, dword [edi + 0x74]
cmp esi, eax
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
mov dword [ebp - 0x94], esi
inc ebx
jmp 0x597e90
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x59904e
mov edx, dword [edi + 0x18]
test edx, edx
je 0x599027
push 0
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.0059d020
add esp, 0x14
test eax, eax
jne 0x598f78
mov ecx, dword [edi + 0x88]
test ecx, ecx
je case.0x59b3ae.14
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb case.0x59b3ae.14
cmp dword [edi + 0x18], 0
jne case.0x59b3ae.14
cmp dword [edi + 0x1c], 2
jne case.0x59b3ae.14
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne case.0x59b3ae.14
mov dword [edi + 0x64], 1
cmp ecx, 1
jle case.0x59b3ae.14
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x1c]
sub ecx, edx
cmp esi, ecx
ja 0x598fc8
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x598fc8
cmp edx, 1
je 0x598f78
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x598fc8
inc ebx
jmp 0x597e90
cmp dword [edi + 0x48], 0
jne case.0x59b3ae.14
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598f78
cmp esi, dword [edi + 0x84]
jbe 0x598f78
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
inc ebx
jmp 0x597e90
cmp dword [edi + 0x48], 0
jne case.0x59b3ae.14
cmp dword [edi + 0x58], 0
je case.0x597ebf.23
cmp esi, dword [edi + 0x78]
jb case.0x59b3ae.14
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598f78
cmp esi, dword [edi + 0x84]
jbe 0x598f78
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
inc ebx
jmp 0x597e90
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x59912e
mov edx, dword [edi + 0x18]
lea ecx, [edi + 0x1c]
test edx, edx
je 0x5990f9
push 0
push ecx
push eax
push edx
push esi
call fcn.0059d020
add esp, 0x14
test eax, eax
je 0x598fc8
lea ecx, [edi + 0x1c]
jmp 0x599121
mov edx, dword [ecx]
sub eax, edx
cmp esi, eax
ja 0x598fc8
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x598fc8
cmp edx, 1
je 0x599121
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
jne 0x598fc8
mov eax, dword [edi + 0x78]
sub eax, dword [ecx]
cmp esi, eax
jne 0x598fc8
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598f78
cmp esi, dword [edi + 0x84]
jbe 0x598f78
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x74]
jne 0x599167
xor edx, edx
jmp 0x599189
cmp esi, dword [edi + 0x84]
ja 0x599178
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 0x5991b4
mov eax, dword [edi + 0x88]
test eax, eax
je 0x5991b0
cmp esi, dword [edi + 0x84]
jbe 0x5991b0
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
xor ecx, ecx
jmp 0x5991c4
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 0x5991d4
xor eax, eax
cmp ecx, edx
sete al
jmp 0x5991db
xor eax, eax
cmp ecx, edx
setne al
test eax, eax
je 0x597e90
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
mov edx, dword [edi + 0x18]
test edx, edx
je 0x59921f
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x599247
push 0
lea eax, [edi + 0x1c]
push eax
push ecx
push edx
push esi
call fcn.0059d020
add esp, 0x14
test eax, eax
jne case.0x59b3ae.14
jmp 0x599247
mov eax, dword [edi + 0x78]
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x599247
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x599247
cmp ecx, 1
je case.0x59b3ae.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x59b3ae.14
mov ecx, dword [edi + 0x88]
test ecx, ecx
je case.0x597ebf.13
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb case.0x597ebf.13
cmp dword [edi + 0x18], 0
jne case.0x597ebf.13
cmp dword [edi + 0x1c], 2
jne case.0x597ebf.13
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne case.0x597ebf.13
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x599011
cmp esi, dword [edi + 0x78]
jae 0x59ae01
inc esi
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
inc esi
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 0xd
ja 0x5993ba
je 0x599376
cmp eax, 0xa
je 0x598f78
jbe case.0x59b3ae.14
cmp eax, 0xc
jmp 0x5993c9
cmp esi, ecx
jb 0x5993aa
mov eax, dword [edi + 0x88]
test eax, eax
je 0x598f78
cmp esi, dword [edi + 0x84]
jbe 0x598f78
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
inc ebx
jmp 0x597e90
cmp byte [esi], 0xa
jne 0x598f78
inc esi
inc ebx
jmp 0x597e90
cmp eax, 0x85
je 0x5993cf
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x59b3ae.14
cmp dword [edi + 0x68], 0
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 0x180e
ja 0x59942f
je case.0x59b3ae.14
cmp eax, 0xa0
ja 0x59941e
je case.0x59b3ae.14
cmp eax, 9
je case.0x59b3ae.14
cmp eax, 0x20
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp eax, 0x1680
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp eax, 0x205f
ja 0x599463
je case.0x59b3ae.14
cmp eax, 0x2000
jb 0x598f78
cmp eax, 0x200a
jbe case.0x59b3ae.14
cmp eax, 0x202f
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp eax, 0x3000
je case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 0x180e
ja 0x5994b6
je 0x598f78
cmp eax, 0xa0
ja 0x5994ac
je 0x598f78
cmp eax, 9
je 0x598f78
cmp eax, 0x20
jmp 0x598f72
cmp eax, 0x1680
jmp 0x598f72
cmp eax, 0x205f
ja 0x5994e3
je 0x598f78
cmp eax, 0x2000
jb case.0x59b3ae.14
cmp eax, 0x200a
jbe 0x598f78
cmp eax, 0x202f
jmp 0x598f72
cmp eax, 0x3000
jne case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 0x85
ja 0x599526
je case.0x59b3ae.14
cmp eax, 0xa
jb 0x598f78
cmp eax, 0xd
jbe case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp eax, 0x2028
jb 0x598f78
cmp eax, 0x2029
jbe case.0x59b3ae.14
inc ebx
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 0x85
ja 0x59956e
je 0x598f78
add eax, 0xfffffff6
cmp eax, 3
ja case.0x59b3ae.14
inc ebx
jmp 0x597e90
add eax, 0xffffdfd8
cmp eax, 1
ja case.0x59b3ae.14
inc ebx
jmp 0x597e90
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 0x599619
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 0x59960c
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jge 0x599647
add edx, dword [edi + 0x24]
mov eax, dword [ebp - 0x88]
test eax, eax
jg 0x5995e0
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.0x599640
movzx eax, byte [eax + 0x59bc48]
jmp dword [eax*4 + 0x59bc40]
mov eax, dword [edi + 0xc]
mov edx, dword [eax + ecx*4 + 4]
sub edx, dword [eax + ecx*4]
mov dword [ebp - 0x80], edx
jmp 0x59961c
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 0x599699
mov eax, dword [edi + 0xc]
cmp dword [eax + ecx*4], 0
jl 0x599699
mov edx, dword [eax + ecx*4 + 4]
sub edx, dword [eax + ecx*4]
mov dword [ebp - 0x80], edx
jmp 0x59961c
mov edx, dword [edi + 0x50]
neg edx
sbb edx, edx
neg edx
dec edx
mov dword [ebp - 0x80], edx
jmp 0x59961c
mov eax, dword [ebp - 0xa8]
inc ebx
lea edx, [eax - 0x62]
and edx, 1
mov dword [ebp - 0x9c], edx
movsx edx, byte [eax + 0x6153a6]
movsx eax, byte [eax + 0x6153b2]
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x88], eax
test eax, eax
jne 0x59973a
mov dword [ebp - 0x88], connect
jmp 0x59973a
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 0x597e90
jns 0x59974f
test edx, edx
je 0x597e90
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59979c
mov edi, edi
push dword [ebp - 0x98]
push edi
push eax
push esi
push ecx
call fcn.0059be40
add esp, 0x14
test eax, eax
js 0x59ae41
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 0x599760
mov ecx, dword [ebp - 0x88]
cmp edx, ecx
je 0x597e90
cmp dword [ebp - 0x9c], 0
je 0x59ae83
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov eax, dword [ebp - 0x88]
cmp dword [ebp - 0xa4], eax
jge case.0x59b3ae.14
push dword [ebp - 0x98]
push edi
push dword [ebp - 0x80]
push esi
push dword [ebp - 0x84]
call fcn.0059be40
add esp, 0x14
test eax, eax
js 0x59ae62
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.00597dc0
add esp, 0x1c
test eax, eax
je 0x5997e1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x98]
push edi
push edx
push esi
push ecx
call fcn.0059be40
add esp, 0x14
test eax, eax
js 0x59af46
add esi, eax
jmp 0x597e90
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.0x599899
movzx eax, byte [eax + 0x59bc58]
jmp dword [eax*4 + 0x59bc50]
lea eax, [edx - 0x62]
inc ebx
cmp eax, 8
jae 0x5998b6
mov ecx, eax
and ecx, 1
mov dword [ebp - 0x88], ecx
jmp 0x5998c0
mov dword [ebp - 0xa4], 1
movsx ecx, byte [eax + 0x615408]
movsx eax, byte [eax + 0x615414]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], eax
test eax, eax
jne 0x599942
mov dword [ebp - 0x84], connect
jmp 0x599942
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 0x59993f
mov dword [ebp - 0x84], 1
mov ecx, 1
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x8c], 1
cmp ecx, 1
jl 0x599990
cmp esi, dword [edi + 0x78]
jae 0x59ae01
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.0x59b3ae.14
mov eax, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x80]
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, ecx
jle 0x599951
mov eax, dword [ebp - 0x84]
cmp ecx, eax
je 0x597e90
cmp dword [ebp - 0x88], 0
jne 0x59af6a
mov edx, esi
mov dword [ebp - 0x88], edx
cmp ecx, eax
jge 0x599a13
cmp esi, dword [edi + 0x78]
jae 0x5999eb
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 0x599a0d
mov ecx, dword [ebp - 0x80]
inc esi
inc ecx
mov dword [ebp - 0x80], ecx
cmp ecx, dword [ebp - 0x84]
jl 0x5999b7
jmp 0x599a0d
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599a0d
cmp esi, dword [edi + 0x84]
jbe 0x599a0d
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
mov edx, dword [ebp - 0x88]
cmp dword [ebp - 0xa4], 0
jne 0x597e90
cmp esi, edx
jb case.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
dec esi
cmp esi, dword [ebp - 0x88]
jae 0x599a28
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x78]
sub eax, esi
cmp eax, 1
jl 0x59ae01
mov al, byte [esi]
inc esi
cmp byte [ebx + 1], al
jne case.0x59b3ae.14
add ebx, 2
jmp 0x597e90
cmp esi, dword [edi + 0x78]
jae 0x59ae01
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.0x59b3ae.14
inc esi
add ebx, 2
jmp 0x597e90
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 0x599ba8
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 0x599b0c
mov dword [ebp - 0x88], edx
cmp cl, 0x35
jne 0x599b16
mov dword [ebp - 0x88], 1
add ebx, 3
jmp 0x599bae
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], connect
inc ebx
jmp 0x599ba8
mov dword [ebp - 0xa4], 1
mov edx, 1
mov dword [ebp - 0x84], connect
inc ebx
jmp 0x599ba8
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], 1
inc ebx
jmp 0x599ba8
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 + 0x615414]
movsx edx, byte [ecx + 0x615408]
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 0x599cc5
mov eax, dword [edi + 0x3c]
movzx eax, byte [eax + ecx]
mov dword [ebp - 0x8c], eax
cmp edx, 1
jl 0x599c0c
mov ecx, 1
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
je 0x599c00
cmp dword [ebp - 0x8c], eax
jne case.0x59b3ae.14
inc ecx
inc esi
cmp ecx, edx
jle 0x599be0
mov ecx, dword [ebp - 0x98]
cmp edx, dword [ebp - 0x84]
je 0x597e90
cmp dword [ebp - 0x88], 0
jne 0x59b014
mov eax, esi
mov dword [ebp - 0x80], eax
cmp edx, dword [ebp - 0x84]
jge 0x599c77
cmp esi, dword [edi + 0x78]
jae 0x599c52
movzx eax, byte [esi]
cmp ecx, eax
je 0x599c46
cmp dword [ebp - 0x8c], eax
jne 0x599c74
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599c32
jmp 0x599c74
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599c74
cmp esi, dword [edi + 0x84]
jbe 0x599c74
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597e90
cmp esi, eax
je 0x59ab05
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.00597dc0
add esp, 0x1c
dec esi
test eax, eax
jne 0x59ba3b
cmp esi, dword [ebp - 0x80]
jne 0x599c90
jmp 0x59ab05
mov ecx, 1
cmp edx, ecx
jl 0x599cee
mov edi, edi
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
jne case.0x59b3ae.14
inc ecx
cmp ecx, edx
jle 0x599cd0
mov ecx, dword [ebp - 0x84]
cmp edx, ecx
je 0x597e90
cmp dword [ebp - 0x88], 0
jne 0x59b0b1
mov eax, esi
mov dword [ebp - 0x80], eax
cmp edx, ecx
jge 0x599d55
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x599d30
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
jne 0x599d52
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599d15
jmp 0x599d52
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599d52
cmp esi, dword [edi + 0x84]
jbe 0x599d52
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597e90
cmp esi, eax
je 0x59ab05
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.00597dc0
add esp, 0x1c
dec esi
test eax, eax
jne 0x59ba3b
cmp esi, dword [ebp - 0x80]
jne 0x599d70
jmp 0x59ab05
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx edx, byte [esi]
inc esi
movzx ecx, byte [ebx + 1]
cmp ecx, edx
je case.0x59b3ae.14
cmp dword [ebp - 0x80], 0x20
jne 0x599dd3
mov eax, dword [edi + 0x3c]
movzx eax, byte [eax + ecx]
cmp eax, edx
je case.0x59b3ae.14
add ebx, 2
jmp 0x597e90
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 0x599eea
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 0x599e27
mov dword [ebp - 0x88], edx
cmp cl, 0x4f
jne 0x599e31
mov dword [ebp - 0x88], 1
add ebx, 3
jmp 0x599ef0
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], connect
inc ebx
jmp 0x599eea
mov dword [ebp - 0xa4], 1
mov edx, 1
mov dword [ebp - 0x84], connect
inc ebx
jmp 0x599eea
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], 1
inc ebx
jmp 0x599eea
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 0x599eea
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 + 0x615414]
movsx edx, byte [ecx + 0x615408]
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 0x59a005
mov eax, dword [edi + 0x3c]
movzx eax, byte [eax + ecx]
mov ecx, 1
mov dword [ebp - 0x8c], eax
cmp edx, ecx
jl 0x599f4a
lea ebx, [ebx]
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
je case.0x59b3ae.14
cmp dword [ebp - 0x8c], eax
je case.0x59b3ae.14
inc ecx
inc esi
cmp ecx, edx
jle 0x599f20
mov eax, dword [ebp - 0x84]
cmp edx, eax
je 0x597e90
cmp dword [ebp - 0x88], 0
jne 0x59b149
mov ecx, esi
mov dword [ebp - 0x80], ecx
cmp edx, eax
jge 0x599fb9
mov ecx, dword [ebp - 0x98]
cmp esi, dword [edi + 0x78]
jae 0x599f94
movzx eax, byte [esi]
cmp ecx, eax
je 0x599fb6
cmp dword [ebp - 0x8c], eax
je 0x599fb6
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x599f74
jmp 0x599fb6
mov eax, dword [edi + 0x88]
test eax, eax
je 0x599fb6
cmp esi, dword [edi + 0x84]
jbe 0x599fb6
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
mov ecx, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597e90
cmp esi, ecx
je 0x59ab05
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
dec esi
cmp esi, dword [ebp - 0x80]
jne 0x599fd0
jmp 0x59ab05
mov ecx, 1
cmp edx, ecx
jl 0x59a02e
mov edi, edi
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
je case.0x59b3ae.14
inc ecx
cmp ecx, edx
jle 0x59a010
mov ecx, dword [ebp - 0x84]
cmp edx, ecx
je 0x597e90
cmp dword [ebp - 0x88], 0
jne 0x59b1e8
mov eax, esi
mov dword [ebp - 0x80], eax
cmp edx, ecx
jge 0x59a095
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x59a070
movzx eax, byte [esi]
cmp dword [ebp - 0x98], eax
je 0x59a092
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a055
jmp 0x59a092
mov eax, dword [edi + 0x88]
test eax, eax
je 0x59a092
cmp esi, dword [edi + 0x84]
jbe 0x59a092
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
mov eax, dword [ebp - 0x80]
cmp dword [ebp - 0xa4], 0
jne 0x597e90
cmp esi, eax
je 0x59ab05
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
dec esi
cmp esi, dword [ebp - 0x80]
jne 0x59a0b0
jmp 0x59ab05
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 0x59a1dd
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 0x59a1dd
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], connect
inc ebx
jmp 0x59a1dd
mov dword [ebp - 0xa4], 1
mov edx, 1
mov dword [ebp - 0x84], connect
inc ebx
jmp 0x59a1dd
xor edx, edx
mov dword [ebp - 0xa4], 1
mov dword [ebp - 0x84], 1
inc ebx
jmp 0x59a1dd
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 0x59a1dd
lea eax, [edx - 0x55]
inc ebx
movsx edx, byte [eax + 0x615408]
mov ecx, eax
movsx eax, byte [eax + 0x615414]
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 0x59a5d1
add eax, 0xfffffffa
cmp eax, 0xf
ja case.0x59b345.15
jmp dword [eax*4 + 0x59bc64]
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59a5cb
jmp 0x59a220
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x59ae01
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x59a250
push 0
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0059d020
add esp, 0x14
test eax, eax
jne case.0x59b3ae.14
mov edx, dword [ebp - 0x80]
jmp 0x59a275
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x59a275
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x59a275
cmp ecx, 1
je case.0x59b3ae.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x59b3ae.14
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x59a2aa
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb 0x59a2aa
cmp dword [edi + 0x18], 0
jne 0x59a2aa
cmp dword [edi + 0x1c], 2
jne 0x59a2aa
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x59a2aa
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x599011
mov ecx, dword [ebp - 0x8c]
inc esi
inc ecx
mov dword [ebp - 0x8c], ecx
cmp ecx, edx
jle 0x59a220
jmp 0x59a5cb
mov eax, dword [edi + 0x78]
sub eax, edx
cmp esi, eax
ja 0x59ae01
add esi, edx
jmp 0x59a5cb
mov ecx, 1
cmp edx, ecx
jl 0x59a5cb
mov eax, dword [edi + 0x78]
lea esp, [esp]
cmp esi, eax
jae 0x59ae01
movzx eax, byte [esi]
inc esi
sub eax, 0xa
cmp eax, 0x7b
ja case.0x59b3ae.14
movzx eax, byte [eax + 0x59bcb4]
jmp dword [eax*4 + 0x59bca4]
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x59a332
cmp byte [esi], 0xa
jne 0x59a332
inc esi
jmp 0x59a332
cmp dword [edi + 0x68], 0
jne case.0x59b3ae.14
mov eax, dword [edi + 0x78]
inc ecx
cmp ecx, edx
jle 0x59a2f0
jmp 0x59a5cb
mov ecx, 1
cmp edx, ecx
jl 0x59a5cb
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 9
je case.0x59b3ae.14
cmp eax, 0x20
je case.0x59b3ae.14
cmp eax, 0xa0
je case.0x59b3ae.14
inc ecx
cmp ecx, edx
jle 0x59a350
jmp 0x59a5cb
mov ecx, 1
cmp edx, ecx
jl 0x59a5cb
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 9
je 0x59a3b3
cmp eax, 0x20
je 0x59a3b3
cmp eax, 0xa0
jne case.0x59b3ae.14
inc ecx
cmp ecx, edx
jle 0x59a391
jmp 0x59a5cb
mov ecx, 1
cmp edx, ecx
jl 0x59a5cb
lea ebx, [ebx]
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl 0x59a3f6
cmp eax, 0xd
jle case.0x59b3ae.14
cmp eax, 0x85
je case.0x59b3ae.14
inc ecx
cmp ecx, edx
jle 0x59a3d0
jmp 0x59a5cb
mov ecx, 1
cmp edx, ecx
jl 0x59a5cb
lea ecx, [ecx]
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp eax, 0xa
jl case.0x59b3ae.14
cmp eax, 0xd
jle 0x59a436
cmp eax, 0x85
jne case.0x59b3ae.14
inc ecx
cmp ecx, edx
jle 0x59a410
jmp 0x59a5cb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59a5cb
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
jne case.0x59b3ae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x59a453
jmp 0x59a5cb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59a5cb
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
je case.0x59b3ae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x59a496
jmp 0x59a5cb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59a5cb
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
jne case.0x59b3ae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x59a4e0
jmp 0x59a5cb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59a5cb
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
je case.0x59b3ae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x59a523
jmp 0x59a5cb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59a5cb
nop
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
jne case.0x59b3ae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x59a560
jmp 0x59a5cb
mov dword [ebp - 0x8c], 1
cmp edx, 1
jl 0x59a5cb
lea esp, [esp]
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
je case.0x59b3ae.14
mov eax, dword [ebp - 0x8c]
inc esi
inc eax
mov dword [ebp - 0x8c], eax
cmp eax, edx
jle 0x59a5a0
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x84]
cmp edx, ecx
je 0x597e90
cmp dword [ebp - 0x88], 0
jne 0x59b291
add eax, 0xfffffffa
mov dword [ebp - 0x98], esi
cmp eax, 0xf
ja case.0x59b345.15
jmp dword [eax*4 + 0x59bd30]
cmp edx, ecx
jge 0x59a6f0
lea ecx, [ecx]
mov eax, dword [edi + 0x78]
cmp esi, eax
jae 0x59a6ce
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x59a640
push 0
lea edx, [edi + 0x1c]
push edx
push eax
push ecx
push esi
call fcn.0059d020
add esp, 0x14
test eax, eax
jne 0x59a6f0
mov edx, dword [ebp - 0x80]
jmp 0x59a665
mov ecx, dword [edi + 0x1c]
sub eax, ecx
cmp esi, eax
ja 0x59a665
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x59a665
cmp ecx, 1
je 0x59a6f0
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je 0x59a6f0
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x59a69a
lea eax, [esi + 1]
cmp eax, dword [edi + 0x78]
jb 0x59a69a
cmp dword [edi + 0x18], 0
jne 0x59a69a
cmp dword [edi + 0x1c], 2
jne 0x59a69a
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x59a69a
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x599011
mov ecx, dword [ebp - 0x84]
inc edx
inc esi
mov dword [ebp - 0x80], edx
cmp edx, ecx
jl 0x59a610
jmp 0x59a6f0
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 0x59a766
mov esi, ecx
mov eax, dword [edi + 0x88]
test eax, eax
je 0x59a6f0
cmp esi, dword [edi + 0x84]
jbe 0x59a6f0
mov dword [edi + 0x64], 1
cmp eax, 1
jg 0x599011
cmp dword [ebp - 0xa4], 0
jne 0x597e90
cmp esi, dword [ebp - 0x98]
je 0x59ab05
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov ecx, dword [ebp - 0x98]
dec esi
cmp dword [ebp - 0x9c], 0x11
jne 0x59a75d
cmp esi, ecx
jbe 0x59a75f
cmp byte [esi], 0xa
jne 0x59a75d
cmp byte [esi - 1], 0xd
lea eax, [esi - 1]
cmove esi, eax
cmp esi, ecx
jne 0x59a710
jmp 0x59ab05
add esi, edx
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x59a6ce
movzx eax, byte [esi]
cmp eax, 0xd
jne 0x59a791
inc esi
cmp esi, ecx
jae 0x59a6f0
cmp byte [esi], 0xa
jne 0x59a7b6
jmp 0x59a7b5
cmp eax, 0xa
je 0x59a7b5
cmp dword [edi + 0x68], 0
jne 0x59a6f0
cmp eax, 0xb
je 0x59a7b5
cmp eax, 0xc
je 0x59a7b5
cmp eax, 0x85
jne 0x59a6f0
inc esi
inc edx
cmp edx, dword [ebp - 0x84]
jl 0x59a771
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
mov ecx, dword [edi + 0x78]
nop
cmp esi, ecx
jae 0x59a6ce
mov al, byte [esi]
cmp al, 9
je 0x59a6f0
cmp al, 0x20
je 0x59a6f0
cmp al, 0xa0
je 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a7d0
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x59a6ce
mov al, byte [esi]
cmp al, 9
je 0x59a82a
cmp al, 0x20
je 0x59a82a
cmp al, 0xa0
jne 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a810
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
mov ecx, dword [edi + 0x78]
cmp esi, ecx
jae 0x59a6ce
mov al, byte [esi]
cmp al, 0xa
jb 0x59a862
cmp al, 0xd
jbe 0x59a6f0
cmp al, 0x85
je 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a844
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
mov ecx, dword [edi + 0x78]
lea esp, [esp]
cmp esi, ecx
jae 0x59a6ce
mov al, byte [esi]
cmp al, 0xa
jb 0x59a6f0
cmp al, 0xd
jbe 0x59a89e
cmp al, 0x85
jne 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a880
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
cmp esi, dword [edi + 0x78]
jae 0x59a6ce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
jne 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a8b5
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
cmp esi, dword [edi + 0x78]
jae 0x59a6ce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 4
je 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a8e5
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
cmp esi, dword [edi + 0x78]
jae 0x59a6ce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
jne 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a915
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
cmp esi, dword [edi + 0x78]
jae 0x59a6ce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 1
je 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a945
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
cmp esi, dword [edi + 0x78]
jae 0x59a6ce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
jne 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a975
jmp 0x59a6f0
cmp edx, ecx
jge 0x59a6f0
cmp esi, dword [edi + 0x78]
jae 0x59a6ce
movzx ecx, byte [esi]
mov eax, dword [edi + 0x40]
test byte [ecx + eax], 0x10
je 0x59a6f0
inc edx
inc esi
cmp edx, dword [ebp - 0x84]
jl 0x59a9a5
jmp 0x59a6f0
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 0x59aa05
lea eax, [ebx + 3]
push eax
push esi
call fcn.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov ebx, dword [ebp - 0x8c]
jmp 0x59ab05
push dword [ebp - 0x8c]
push esi
call fcn.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
add ebx, 3
jmp 0x59ab05
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 0x59aa6b
lea eax, [ebx + 3]
push eax
push esi
call fcn.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov ebx, dword [ebp - 0x80]
mov al, byte [ebx]
cmp al, 0x81
je 0x59ad04
cmp al, 0x88
jae 0x59837b
jmp 0x59ab05
push edx
push esi
call fcn.00597dc0
add esp, 0x1c
cmp eax, 0xfffffc1b
jne 0x59aa8d
mov ecx, dword [ebp - 0x80]
cmp dword [edi + 0xb4], ecx
jne 0x59ba3b
jmp 0x59aa98
test eax, eax
jne 0x59ba3b
mov ecx, dword [ebp - 0x80]
cmp byte [ecx], 0x81
je 0x59ad4a
add ebx, 3
jmp 0x59ab05
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 0x59b4d6
mov edx, dword [ebp - 0x80]
mov edi, edi
cmp edx, 0x88
jae 0x59ab1b
cmp edx, 0x81
je 0x59ab1b
cmp dword [edi + 0x6c], 0
jne 0x59ab25
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + ebx], 0x77
je 0x59ab25
movzx eax, byte [ebx]
movzx eax, byte [eax + 0x615420]
add ebx, eax
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jae 0x59ba34
mov ecx, dword [ebp - 0xa0]
jmp 0x597e56
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
add esp, 0x1c
mov dword [ebp - 0xb8], eax
cmp eax, 0xfffffc20
jne 0x59aba0
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 0x59ba3b
cmp byte [ebx], 0x77
je 0x59aba8
cmp byte [edx], 0x77
jne 0x59ba3b
jmp 0x59aba8
test eax, eax
jne 0x59b63b
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.0x59b3ae.14
mov eax, dword [ebp - 0xac]
mov dword [edi + 0x90], eax
jmp 0x59aacb
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
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.0059f07a
mov esp, ebp
pop ebp
ret
dec eax
je case.0x59b3ae.14
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.0059f07a
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.0x59b3ae.14
push eax
call dword [0x651d30]
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc8]
lea edx, [ebp - 0x7c]
cmp ecx, edx
je 0x59ba3b
push ecx
call dword [0x651d30]
mov eax, dword [ebp - 0x8c]
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.0059f07a
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.0059f07a
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov dword [edi + 0xb4], ebx
mov eax, 0xfffffc1b
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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 0x59ad6b
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
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.0059f07a
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.0059f07a
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.0059f07a
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59b3ae.14
cmp esi, dword [edi + 0x84]
jbe case.0x59b3ae.14
mov dword [edi + 0x64], 1
cmp eax, 1
jle case.0x59b3ae.14
pop edi
pop esi
mov eax, 0xfffffff4
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffffe
jne 0x59ae49
mov esi, dword [edi + 0x78]
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jb case.0x59b3ae.14
jmp 0x59ae0f
cmp eax, 0xfffffffe
jne 0x59ae6a
mov esi, dword [edi + 0x78]
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jb case.0x59b3ae.14
jmp 0x59ae0f
mov dword [ebp - 0x8c], esi
cmp edx, ecx
jge 0x59af00
lea ecx, [ecx]
push dword [ebp - 0x98]
push edi
push eax
push esi
push dword [ebp - 0x84]
call fcn.0059be40
add esp, 0x14
test eax, eax
js 0x59aec7
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 0x59ae90
jmp 0x59aef1
cmp eax, 0xfffffffe
jne 0x59aef1
mov ecx, dword [edi + 0x88]
test ecx, ecx
je 0x59aef1
mov eax, dword [edi + 0x78]
cmp eax, dword [edi + 0x84]
jbe 0x59aef1
mov dword [edi + 0x64], 1
cmp ecx, 1
jg 0x599011
cmp esi, dword [ebp - 0x8c]
jb case.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
sub esi, dword [ebp - 0x80]
cmp esi, dword [ebp - 0x8c]
jae 0x59af00
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffffe
jne 0x59af4e
mov esi, dword [edi + 0x78]
mov eax, dword [edi + 0x88]
test eax, eax
je case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jb case.0x59b3ae.14
jmp 0x59ae0f
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
jmp 0x59afa0
mov eax, dword [ebp - 0x84]
cmp dword [ebp - 0x80], eax
jge case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jae 0x59ae01
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.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
je 0x59afa0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov edi, edi
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0x84]
jge case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
cmp dword [ebp - 0x98], ecx
je 0x59b072
cmp dword [ebp - 0x8c], ecx
jne case.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
je 0x59b040
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
jmp 0x59b0e0
mov ecx, dword [ebp - 0x9c]
cmp ecx, dword [ebp - 0x84]
jge case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
jne case.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
je 0x59b0e0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebp - 0x84]
jge case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx ecx, byte [esi]
cmp dword [ebp - 0x98], ecx
je case.0x59b3ae.14
cmp dword [ebp - 0x8c], ecx
je case.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
je 0x59b173
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov ecx, dword [ebp - 0x9c]
cmp ecx, dword [ebp - 0x84]
jge case.0x59b3ae.14
cmp esi, dword [edi + 0x78]
jae 0x59ae01
movzx eax, byte [esi]
inc esi
cmp dword [ebp - 0x98], eax
je case.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
je 0x59b212
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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.0059f07a
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.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
jmp 0x59b2c0
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 0x84]
jge case.0x59b3ae.14
mov edx, dword [edi + 0x78]
cmp esi, edx
jae 0x59ae01
mov eax, dword [ebp - 0x9c]
cmp eax, 0xc
jne 0x59b335
cmp dword [edi + 0x18], 0
je 0x59b30b
push 0
lea eax, [edi + 0x1c]
push eax
push edx
push dword [edi + 0x18]
push esi
call fcn.0059d020
add esp, 0x14
test eax, eax
jne case.0x59b3ae.14
mov ecx, dword [ebp - 0x80]
jmp 0x59b32f
sub edx, dword [edi + 0x1c]
cmp esi, edx
ja 0x59b335
mov al, byte [esi]
cmp al, byte [edi + 0x34]
jne 0x59b32f
cmp dword [edi + 0x1c], 1
je case.0x59b3ae.14
mov al, byte [esi + 1]
cmp al, byte [edi + 0x35]
je case.0x59b3ae.14
mov eax, dword [ebp - 0x9c]
movzx edx, byte [esi]
add eax, 0xfffffffa
inc esi
cmp eax, 0xf
ja case.0x59b345.15
jmp dword [eax*4 + 0x59bd70]
cmp dword [edi + 0x88], 0
je case.0x59b345.13
cmp esi, dword [edi + 0x78]
jb case.0x59b345.13
cmp dword [edi + 0x18], 0
jne case.0x59b345.13
cmp dword [edi + 0x1c], 2
jne case.0x59b345.13
movzx eax, byte [edi + 0x34]
cmp edx, eax
jne case.0x59b345.13
cmp dword [edi + 0x88], 1
mov dword [edi + 0x64], 1
jg 0x599011
jmp case.0x59b345.13
add edx, 0xfffffff6
cmp edx, 0x7b
ja case.0x59b3ae.14
movzx eax, byte [edx + 0x59bdc0]
jmp dword [eax*4 + 0x59bdb0]
cmp esi, dword [edi + 0x78]
jae case.0x59b345.13
cmp byte [esi], 0xa
jne case.0x59b345.13
inc esi
jmp case.0x59b345.13
cmp dword [edi + 0x68], 0
jne case.0x59b3ae.14
jmp case.0x59b345.13
cmp edx, 9
je case.0x59b3ae.14
cmp edx, 0x20
je case.0x59b3ae.14
cmp edx, 0xa0
jmp 0x59b491
cmp edx, 9
je case.0x59b345.13
cmp edx, 0x20
je case.0x59b345.13
cmp edx, 0xa0
jne case.0x59b3ae.14
jmp case.0x59b345.13
cmp edx, 0xa
jb case.0x59b345.13
cmp edx, 0xd
jbe case.0x59b3ae.14
cmp edx, 0x85
jmp 0x59b491
cmp edx, 0xa
jb case.0x59b3ae.14
cmp edx, 0xd
jbe case.0x59b345.13
cmp edx, 0x85
jne case.0x59b3ae.14
jmp case.0x59b345.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 4
jne case.0x59b3ae.14
jmp case.0x59b345.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 4
jmp 0x59b491
mov eax, dword [edi + 0x40]
test byte [edx + eax], 1
jne case.0x59b3ae.14
jmp case.0x59b345.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 1
jmp 0x59b491
mov eax, dword [edi + 0x40]
test byte [edx + eax], 0x10
jne case.0x59b3ae.14
jmp case.0x59b345.13
mov eax, dword [edi + 0x40]
test byte [edx + eax], 0x10
je case.0x59b3ae.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.00597dc0
add esp, 0x1c
test eax, eax
je 0x59b2c0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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 0x59b533
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
mov edx, eax
add esp, 0x1c
mov dword [ebp - 0x8c], edx
cmp edx, 0xfffffc1b
je 0x59b5db
cmp edx, 0xfffffc20
jne 0x59b5a3
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 0x59b622
cmp byte [ebx], 0x77
je 0x59b59f
cmp byte [edx], 0x77
jne 0x59b622
xor edx, edx
jmp 0x59b5ab
test edx, edx
jne 0x59b628
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 0x59b520
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.0059f07a
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.0059f07a
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffc1b
jne 0x59ba3b
mov cl, byte [ebx]
cmp cl, 0x81
je 0x59b67b
cmp cl, 0x77
jne 0x59b666
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
add ebx, ecx
cmp byte [ebx], 0x77
je 0x59b652
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.0059f07a
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.00597dc0
mov ecx, eax
add esp, 0x1c
mov dword [ebp - 0xa8], ecx
cmp ecx, 1
je 0x59b6f9
cmp ecx, 0xfffffc19
jne 0x59b71e
cmp dword [edi + 0xac], 0
jne 0x59b71e
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.0059f07a
mov esp, ebp
pop ebp
ret
cmp ecx, 0xfffffc1f
jne 0x59b763
mov ecx, dword [edi + 0x7c]
mov eax, dword [ebp - 0xb4]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x59b750
test dl, dl
je 0x59b74c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x59b750
add eax, 2
add ecx, 2
test dl, dl
jne 0x59b730
xor eax, eax
jmp 0x59b755
sbb eax, eax
or eax, 1
test eax, eax
je 0x59b8c5
mov ecx, dword [ebp - 0xa8]
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
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.0059f07a
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
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.0059f07a
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.00597dc0
mov ecx, eax
add esp, 0x1c
cmp ecx, 1
je 0x59b862
cmp ecx, 0xfffffc19
jne 0x59b874
cmp dword [edi + 0xac], 0
jne 0x59b874
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.0059f07a
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov dword [edi + 0x7c], esi
mov eax, 0xfffffc1e
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
push eax
push esi
call fcn.00597dc0
add esp, 0x1c
test eax, eax
jne 0x59ba3b
mov dword [edi + 0x7c], ebx
mov eax, 0xfffffc20
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0059f07a
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 + 0x615420]
push dword [ebp - 0x94]
add eax, ebx
add ecx, eax
push ecx
push esi
call fcn.00597dc0
add esp, 0x1c
cmp eax, 1
je 0x59b980
cmp eax, 0xfffffc19
jne 0x59b90c
cmp dword [edi + 0xac], 0
jne 0x59b90c
lea ecx, [ebx + 2]
mov dword [edi + 0xac], ecx
jmp 0x59b90c
mov ecx, dword [ebp - 0x94]
cmp esi, ecx
jne 0x59b9d3
cmp edx, 0x9f
je 0x59b9d3
cmp dword [edi + 0xa4], 0
jne 0x59b9d3
cmp dword [edi + 0x5c], 0
jne case.0x59b3ae.14
cmp dword [edi + 0x60], 0
je 0x59b9d3
mov eax, dword [edi + 0x94]
add eax, dword [edi + 0x74]
cmp ecx, eax
je case.0x59b3ae.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.0059f07a
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.0059f07a
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.0059f07a
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.0059f07a
mov esp, ebp
pop ebp
ret