Function at 0x596700
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6d0
push esi
mov dword [ebp - 8], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x14]
mov dl, byte [ecx + 0x59]
mov byte [ebp - 0x1d], dl
mov dword [ebp - 0x14], 0
mov eax, dword [ebp + 8]
add eax, 0x114
push eax
call fcn.005b4990
add esp, 4
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x74], 7
jne 0x59674e
jmp 0x59c242
mov edx, dword [ebp + 8]
mov dword [edx + 0x74], 0
mov eax, dword [ebp + 8]
mov dword [eax + 0xf8], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x144], 0
mov edx, dword [ebp - 4]
cmp dword [edx + 0xd8], 0
je 0x596783
jmp 0x59c2a9
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x10], ecx
jmp 0x596797
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 8], 0
jne 0x59c1eb
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x5967b1
jmp 0x59c242
mov edx, dword [ebp - 0x10]
imul edx, edx, 0x14
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x14]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xe8], 0
je 0x596829
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xf0]
cmp eax, dword [ebp - 0x14]
jne 0x596820
xor ecx, ecx
je 0x5967e3
jmp 0x59c26a
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xec]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xe8]
call edx
add esp, 4
mov dword [ebp - 0x30], eax
xor eax, eax
je 0x596807
jmp 0x59c26a
cmp dword [ebp - 0x30], 0
je 0x596819
mov dword [ebp - 8], 9
jmp 0x59c1eb
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov cl, byte [eax + 0x7070c8]
mov byte [ebp - 0x29], cl
movzx edx, byte [ebp - 0x29]
and edx, 2
je 0x596870
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00593690
add esp, 4
mov ecx, 1
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
jmp 0x596918
movzx eax, byte [ebp - 0x29]
and eax, 4
je 0x5968e0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x28], edx
movzx ecx, byte [ebp - 0x29]
and ecx, 8
je 0x5968c3
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x1c], eax
movzx edx, byte [ebp - 0x29]
and edx, 0x20
je 0x5968c1
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x18], ecx
jmp 0x5968de
movzx eax, byte [ebp - 0x29]
and eax, 0x10
je 0x5968de
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0xc], edx
jmp 0x596918
movzx ecx, byte [ebp - 0x29]
and ecx, 8
je 0x5968fd
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x1c], eax
jmp 0x596918
movzx edx, byte [ebp - 0x29]
and edx, 0x10
je 0x596918
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x5fc], ecx
mov edx, dword [ebp - 0x5fc]
sub edx, 1
mov dword [ebp - 0x5fc], edx
cmp dword [ebp - 0x5fc], 0x8d
ja case.0x596950.11
mov eax, dword [ebp - 0x5fc]
movzx ecx, byte [eax + 0x59c47c]
jmp dword [ecx*4 + 0x59c2e4]
mov edx, dword [ebp - 4]
cmp dword [edx + 0xd8], 0
je 0x596968
jmp 0x59c2a9
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x10]
add edx, 1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe8]
mov eax, dword [ebp + 8]
mov dword [eax + ecx*4 + 0x84], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xe8]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0xe8], edx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe8]
sub ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0xe8], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xe8]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*4 + 0x84]
sub eax, 1
mov dword [ebp - 0x10], eax
jmp case.0x596950.11
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ecx + 0x74], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov dword [ecx + 0x70], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov dword [eax + 0x7c], edx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x10], 0
je 0x596a2f
push 0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp + 8]
add eax, 0xf4
push eax
call fcn.005949f0
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.00591410
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 5
jne 0x596a56
mov dword [ebp - 8], 5
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
mov dword [edx + 0x74], eax
jmp 0x596a69
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x74]
neg edx
sbb edx, edx
and edx, 0xffffff9c
add edx, 0x65
mov dword [ebp - 8], edx
jmp 0x59c207
mov eax, 4
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x596950.11
mov edx, 4
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx]
mov dword [eax], ecx
mov edx, dword [edx + 4]
mov dword [eax + 4], edx
jmp case.0x596950.11
mov eax, 8
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0x18]
fld qword [eax]
fstp qword [ecx + 8]
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov byte [edx], 0x1b
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
push ecx
call fcn.004f6990
add esp, 4
mov edx, dword [ebp - 0x24]
mov dword [edx + 4], eax
movzx eax, byte [ebp - 0x1d]
cmp eax, 1
je 0x596bc1
push 0
push 1
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00593cd0
add esp, 0x14
movzx ecx, byte [ebp - 0x1d]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.00593180
add esp, 8
test eax, eax
je 0x596b2c
jmp 0x59c242
mov eax, dword [ebp - 0x18]
push eax
call fcn.00593330
add esp, 4
test eax, eax
je 0x596b41
jmp 0x59c242
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x24], 0
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
or eax, 0x80
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffbf
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx + 1]
cmp eax, 0xffffffff
jne 0x596b8a
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
call fcn.00594e00
add esp, 4
mov eax, dword [ebp - 0x24]
mov byte [eax + 1], 0xff
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x18]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 0x50]
jle 0x596bbc
jmp 0x59c220
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 0x50]
jle case.0x596950.26
jmp 0x59c220
mov ecx, 0xa2
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x18]
mov cl, byte [ebp - 0x1d]
mov byte [eax + 0x1f], cl
jmp case.0x596950.11
push 0
push 0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00593cd0
add esp, 0x14
mov ecx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x1d]
mov byte [ecx + 0x1f], dl
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
sub ecx, 1
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x38]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x34]
push ecx
call fcn.00593b30
add esp, 4
test eax, eax
je 0x596c67
jmp 0x59c220
push 0x80
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x38]
push edx
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00593b90
add esp, 0xc
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x24], 0
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00593c80
add esp, 8
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x3c]
mov dword [ecx + 0x24], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x18], ecx
push 0x100
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00593b90
add esp, 0xc
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0x100
je 0x596d3b
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00593480
add esp, 4
test eax, eax
je 0x596d3b
jmp 0x59c242
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x18], eax
push 0x100
mov edx, dword [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00593b90
add esp, 0xc
jmp case.0x596950.11
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x54]
add edx, 2
or edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x54], edx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xf8], edx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xf8]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], 0
jmp 0x596dc6
mov ecx, dword [ebp - 0x44]
add ecx, 1
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
cmp eax, dword [edx + 8]
jge 0x596df7
mov ecx, dword [ebp - 0x44]
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x40]
push ecx
call fcn.005934a0
add esp, 4
mov edx, dword [ebp - 0x44]
imul edx, edx, 0x28
add edx, dword [ebp - 0x40]
push edx
call fcn.00596550
add esp, 4
jmp 0x596dbd
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
je 0x596e07
jmp 0x59c242
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x50]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x50], eax
mov edx, dword [ebp - 0x10]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x70], edx
mov dword [ebp - 8], 0x64
jmp 0x59c207
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
mov eax, dword [ebp - 0x1c]
movzx ecx, word [eax + 0x1c]
or edx, ecx
and edx, 1
je 0x596e54
mov edx, dword [ebp - 0x18]
push edx
call fcn.00593a20
add esp, 4
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 0x800
je 0x596e77
mov edx, dword [ebp - 0x28]
push edx
call fcn.005933e0
add esp, 4
mov dword [ebp - 0x600], eax
jmp 0x596e81
mov dword [ebp - 0x600], 0
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 0x12
jne 0x596ea7
movzx edx, byte [ebp - 0x1d]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.00593520
add esp, 8
test eax, eax
je 0x596ea7
jmp 0x59c242
mov ecx, dword [ebp - 0x1c]
movzx edx, word [ecx + 0x1c]
and edx, 0x800
je 0x596eca
mov eax, dword [ebp - 0x1c]
push eax
call fcn.005933e0
add esp, 4
mov dword [ebp - 0x604], eax
jmp 0x596ed4
mov dword [ebp - 0x604], 0
mov ecx, dword [ebp - 0x1c]
movzx edx, word [ecx + 0x1c]
and edx, 0x12
jne 0x596efa
movzx eax, byte [ebp - 0x1d]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00593520
add esp, 8
test eax, eax
je 0x596efa
jmp 0x59c242
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x18]
mov ecx, dword [ebp - 0x1c]
add eax, dword [ecx + 0x18]
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x50]
cdq
mov dword [ebp - 0x60c], eax
mov dword [ebp - 0x608], edx
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x608]
jl 0x596f3d
jg 0x596f38
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [ebp - 0x60c]
jbe 0x596f3d
jmp 0x59c220
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 2
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x18]
xor eax, eax
cmp edx, dword [ebp - 0x1c]
sete al
push eax
mov ecx, dword [ebp - 0x50]
add ecx, 2
mov edx, dword [ebp - 0x4c]
adc edx, 0
push ecx
mov eax, dword [ebp - 0x18]
push eax
call fcn.005931c0
add esp, 0xc
test eax, eax
je 0x596f7f
jmp 0x59c242
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 0x1c]
je 0x596fa4
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x18]
push eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x14]
push ecx
call fcn.004e9c70
add esp, 0xc
mov edx, dword [ebp - 0x28]
mov eax, dword [edx + 0x18]
push eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0x1c]
add ecx, dword [edx + 0x18]
push ecx
call fcn.004e9c70
add esp, 0xc
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x14]
mov byte [eax + edx], 0
mov eax, dword [ebp - 0x50]
add eax, 1
mov ecx, dword [ebp - 0x4c]
adc ecx, 0
mov edx, dword [ebp - 0x18]
mov ecx, dword [edx + 0x14]
mov byte [eax + ecx], 0
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
or eax, 0x20
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x1d]
mov byte [ecx + 0x1f], dl
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx + 0x1c]
or ecx, eax
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x54]
and ecx, 1
je 0x597032
jmp 0x597313
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 0x1c]
mov ecx, dword [ebp - 0x1c]
movzx edx, word [ecx + 0x1c]
and eax, edx
and eax, 4
je 0x5971a4
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov dword [ebp - 0x60], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov dword [ebp - 0x68], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x610], ecx
mov edx, dword [ebp - 0x610]
sub edx, 0x4e
mov dword [ebp - 0x610], edx
cmp dword [ebp - 0x610], 3
ja case.default.0x597095
mov eax, dword [ebp - 0x610]
jmp dword [eax*4 + 0x59c50c]
mov ecx, dword [ebp - 0x68]
add ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
adc edx, dword [ebp - 0x5c]
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x64], edx
jmp 0x59717d
mov eax, dword [ebp - 0x68]
sub eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x64]
sbb ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], ecx
jmp 0x59717d
mov edx, dword [ebp - 0x5c]
push edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e8dd0
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
jmp 0x59717d
mov eax, dword [ebp - 0x60]
or eax, dword [ebp - 0x5c]
jne 0x5970f7
jmp 0x597313
mov ecx, dword [ebp - 0x60]
and ecx, dword [ebp - 0x5c]
cmp ecx, 0xffffffff
jne 0x59711f
cmp dword [ebp - 0x68], 0
jne 0x59711f
cmp dword [ebp - 0x64], 0x80000000
jne 0x59711f
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 0x5c]
push edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.004e8e10
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
jmp 0x59717d
mov eax, dword [ebp - 0x60]
or eax, dword [ebp - 0x5c]
jne 0x597149
jmp 0x597313
mov ecx, dword [ebp - 0x60]
and ecx, dword [ebp - 0x5c]
cmp ecx, 0xffffffff
jne 0x597162
mov dword [ebp - 0x60], 1
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp - 0x5c]
push edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x68]
push edx
call fcn.004f4e20
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x68]
mov dword [eax], ecx
mov edx, dword [ebp - 0x64]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffffe0
or ecx, 4
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
jmp 0x59730e
mov eax, dword [ebp - 0x28]
push eax
call fcn.00593840
add esp, 4
fstp qword [ebp - 0x70]
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00593840
add esp, 4
fstp qword [ebp - 0x78]
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp - 0x614]
sub ecx, 0x4e
mov dword [ebp - 0x614], ecx
cmp dword [ebp - 0x614], 3
ja case.default.0x5971ec
mov edx, dword [ebp - 0x614]
jmp dword [edx*4 + 0x59c51c]
fld qword [ebp - 0x78]
fadd qword [ebp - 0x70]
fstp qword [ebp - 0x78]
jmp 0x5972c6
fld qword [ebp - 0x78]
fsub qword [ebp - 0x70]
fstp qword [ebp - 0x78]
jmp 0x5972c6
fld qword [ebp - 0x78]
fmul qword [ebp - 0x70]
fstp qword [ebp - 0x78]
jmp 0x5972c6
fldz
fcomp qword [ebp - 0x70]
fnstsw ax
test ah, 0x44
jp 0x59722e
jmp 0x597313
fld qword [ebp - 0x78]
fdiv qword [ebp - 0x70]
fstp qword [ebp - 0x78]
jmp 0x5972c6
fld qword [ebp - 0x70]
call fcn.004e8d56
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], edx
fld qword [ebp - 0x78]
call fcn.004e8d56
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edx
mov eax, dword [ebp - 0x88]
or eax, dword [ebp - 0x84]
jne 0x597271
jmp 0x597313
mov ecx, dword [ebp - 0x88]
and ecx, dword [ebp - 0x84]
cmp ecx, 0xffffffff
jne 0x597296
mov dword [ebp - 0x88], 1
mov dword [ebp - 0x84], 0
mov edx, dword [ebp - 0x84]
push edx
mov eax, dword [ebp - 0x88]
push eax
mov ecx, dword [ebp - 0x7c]
push ecx
mov edx, dword [ebp - 0x80]
push edx
call fcn.004f4e20
mov dword [ebp - 0x61c], eax
mov dword [ebp - 0x618], edx
fild qword [ebp - 0x61c]
fstp qword [ebp - 0x78]
sub esp, 8
fld qword [ebp - 0x78]
fstp qword [esp]
call fcn.00595030
add esp, 8
test eax, eax
je 0x5972dd
jmp 0x597313
mov eax, dword [ebp - 0x18]
fld qword [ebp - 0x78]
fstp qword [eax + 8]
mov ecx, dword [ebp - 0x18]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 8
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0x54]
and ecx, 8
jne 0x59730e
mov edx, dword [ebp - 0x18]
push edx
call fcn.005938e0
add esp, 4
jmp case.0x596950.11
mov eax, dword [ebp - 0x18]
push eax
call fcn.00593a20
add esp, 4
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x90], 0
jmp 0x597381
mov edx, dword [ebp - 0x90]
add edx, 1
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0xdc]
add eax, 0x28
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0x90]
cmp ecx, dword [ebp - 0x8c]
jge 0x5973b5
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xdc]
mov dword [eax + edx*4], ecx
mov edx, dword [ebp - 0xdc]
push edx
call fcn.00596550
add esp, 4
jmp 0x597363
mov eax, dword [ebp - 0x24]
movsx ecx, byte [eax + 1]
cmp ecx, 0xfffffffb
jne 0x5973d9
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], 0
jmp 0x5973f3
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0xd4], edx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
mov dword [ebp - 0xd8], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x18], eax
mov edx, 1
mov word [ebp - 0xb4], dx
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov ecx, dword [ebp - 0x18]
push ecx
lea edx, [ebp - 0xd0]
push edx
call fcn.00593c80
add esp, 8
movzx eax, word [ebp - 0xb4]
and eax, 0xffffffe0
or eax, 1
mov word [ebp - 0xb4], ax
mov dword [ebp - 0xa4], 0
mov ecx, dword [ebp - 0xd8]
movzx edx, byte [ecx + 3]
test edx, edx
je 0x597479
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax - 4]
mov dword [ebp - 0xa0], ecx
xor edx, edx
je 0x597482
jmp 0x59c26a
mov eax, dword [ebp - 0x94]
push eax
mov ecx, dword [ebp - 0x8c]
push ecx
lea edx, [ebp - 0xd8]
push edx
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + 0x10]
call ecx
add esp, 0xc
xor edx, edx
je 0x5974bd
lea eax, [ebp - 0xd0]
push eax
call fcn.00593700
add esp, 4
jmp 0x59c26a
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x1e]
test edx, edx
je 0x5974dc
lea eax, [ebp - 0xd0]
push eax
call fcn.00593700
add esp, 4
jmp 0x59c242
cmp dword [ebp - 0xd4], 0
je 0x59750e
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0xd4]
push eax
call fcn.00592120
add esp, 8
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0xd4]
mov dword [ecx + 0x10], edx
mov eax, dword [ebp - 0x24]
mov byte [eax + 1], 0xf9
cmp dword [ebp - 0xa4], 0
je 0x597544
push 0
lea ecx, [ebp - 0xd0]
push ecx
call fcn.0058b2b0
add esp, 4
push eax
mov edx, dword [ebp + 8]
add edx, 0xf4
push edx
call fcn.005949f0
add esp, 0xc
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 8], eax
movzx ecx, byte [ebp - 0x1d]
push ecx
lea edx, [ebp - 0xd0]
push edx
call fcn.00593180
add esp, 8
lea eax, [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00593c80
add esp, 8
mov edx, dword [ebp - 0x18]
push edx
call fcn.00593b30
add esp, 4
test eax, eax
je 0x597580
jmp 0x59c220
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx + 0x1c]
or ecx, eax
and ecx, 1
je 0x5975ab
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00593a20
add esp, 4
jmp case.0x596950.11
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00593740
add esp, 4
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.00593740
add esp, 4
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xec], edx
mov ecx, dword [ebp - 0x24]
mov dl, byte [ecx]
mov byte [ebp - 0x620], dl
cmp byte [ebp - 0x620], 0x4a
je 0x597603
cmp byte [ebp - 0x620], 0x4b
je 0x597629
cmp byte [ebp - 0x620], 0x4c
je 0x59764f
jmp 0x597674
mov eax, dword [ebp - 0xe8]
and eax, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0xe4]
and ecx, dword [ebp - 0xec]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], ecx
jmp 0x597697
mov edx, dword [ebp - 0xe8]
or edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe4]
or eax, dword [ebp - 0xec]
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xe4], eax
jmp 0x597697
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe4]
call fcn.004ef130
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
jmp 0x597697
mov ecx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe4]
call fcn.005850e0
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0xe8]
mov dword [ecx], edx
mov eax, dword [ebp - 0xe4]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x18]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 4
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], dx
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00593930
add esp, 4
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
cdq
mov ecx, dword [ebp - 0x28]
add eax, dword [ecx]
mov ecx, dword [ecx + 4]
adc ecx, edx
mov edx, dword [ebp - 0x28]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x596950.11
movzx eax, byte [ebp - 0x1d]
push eax
push 0x63
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00596680
add esp, 0xc
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 0x1c]
and eax, 0xc
jne 0x59771e
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 4
je 0x597782
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0xc], 0
je 0x597749
mov dword [ebp - 0x628], 1
mov dword [ebp - 0x624], 0
jmp 0x59775d
mov dword [ebp - 0x628], 0
mov dword [ebp - 0x624], 0
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x628]
mov edx, dword [eax + 4]
adc edx, dword [ebp - 0x624]
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0xf4], edx
jmp 0x597804
mov eax, dword [ebp - 0x28]
fld qword [eax + 8]
call fcn.004e8d56
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], edx
fild qword [ebp - 0xf8]
mov ecx, dword [ebp - 0x28]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 5
jp 0x5977ca
mov edx, dword [ebp - 0xf8]
add edx, 1
mov eax, dword [ebp - 0xf4]
adc eax, 0
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0xc], 0
je 0x597804
fild qword [ebp - 0xf8]
mov edx, dword [ebp - 0x28]
fcomp qword [edx + 8]
fnstsw ax
test ah, 0x44
jp 0x597804
mov eax, dword [ebp - 0xf8]
add eax, 1
mov ecx, dword [ebp - 0xf4]
adc ecx, 0
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0xf8]
mov dword [edx], eax
mov ecx, dword [ebp - 0xf4]
mov dword [edx + 4], ecx
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 4
mov ecx, dword [ebp - 0x28]
mov word [ecx + 0x1c], ax
jmp case.0x596950.11
movzx edx, byte [ebp - 0x1d]
push edx
push 0x63
mov eax, dword [ebp - 0x28]
push eax
call fcn.00596680
add esp, 0xc
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 4
jne 0x597875
mov eax, dword [ebp - 0x24]
cmp dword [eax + 8], 0
jne 0x597867
mov dword [ebp - 8], 0x14
jmp 0x59c271
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp 0x597889
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffffe0
or ecx, 4
mov edx, dword [ebp - 0x28]
mov word [edx + 0x1c], cx
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 4
je 0x5978a6
mov edx, dword [ebp - 0x28]
push edx
call fcn.00593980
add esp, 4
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 1
je 0x5978bc
jmp case.0x596950.11
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 0x1c]
and eax, 0x10
sar eax, 3
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
or edx, eax
mov eax, dword [ebp - 0x28]
mov word [eax + 0x1c], dx
movzx ecx, byte [ebp - 0x1d]
push ecx
push 0x61
mov edx, dword [ebp - 0x28]
push edx
call fcn.00596680
add esp, 0xc
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 0x800
je 0x59790f
mov edx, dword [ebp - 0x28]
push edx
call fcn.005933e0
add esp, 4
mov dword [ebp - 0x62c], eax
jmp 0x597919
mov dword [ebp - 0x62c], 0
mov eax, dword [ebp - 0x62c]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe3
mov eax, dword [ebp - 0x28]
mov word [eax + 0x1c], dx
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x597949
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 0x10
jne 0x597968
movzx edx, byte [ebp - 0x1d]
push edx
push 0x61
mov eax, dword [ebp - 0x28]
push eax
call fcn.00596680
add esp, 0xc
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 0x10
mov eax, dword [ebp - 0x28]
mov word [eax + 0x1c], dx
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 0xd
jne 0x597999
mov eax, dword [ebp - 0x28]
push eax
call fcn.005939b0
add esp, 4
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 1
jne 0x5979b6
mov eax, dword [ebp - 0x28]
push eax
call fcn.00593930
add esp, 4
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 1
jne 0x5979d3
mov eax, dword [ebp - 0x28]
push eax
call fcn.00593980
add esp, 4
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
mov eax, dword [ebp - 0xc]
movzx ecx, word [eax + 0x1c]
or edx, ecx
mov dword [ebp - 0x104], edx
mov edx, dword [ebp - 0x104]
and edx, 1
je 0x597ac4
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 3]
and ecx, 0x10
je 0x597a71
mov edx, 4
mov word [ebp - 0x114], dx
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 0x1c]
and eax, 1
neg eax
sbb eax, eax
add eax, 1
cdq
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], edx
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x28], ecx
mov edx, 4
mov word [ebp - 0x13c], dx
mov eax, dword [ebp - 0xc]
movzx eax, word [eax + 0x1c]
and eax, 1
neg eax
sbb eax, eax
add eax, 1
cdq
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], edx
lea ecx, [ebp - 0x158]
mov dword [ebp - 0xc], ecx
jmp 0x597ac4
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 3]
and eax, 0x80
je 0x597aa7
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp - 0x18]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 1
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], dx
jmp 0x597abf
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
and edx, 8
je 0x597abf
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 3]
and eax, 0x67
mov byte [ebp - 0xf9], al
movsx ecx, byte [ebp - 0xf9]
test ecx, ecx
je 0x597b11
movzx edx, byte [ebp - 0x1d]
push edx
movzx eax, byte [ebp - 0xf9]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00596680
add esp, 0xc
movzx edx, byte [ebp - 0x1d]
push edx
movzx eax, byte [ebp - 0xf9]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00596680
add esp, 0xc
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 0x1c]
and eax, 0x800
je 0x597b33
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.005933e0
add esp, 4
mov dword [ebp - 0x630], eax
jmp 0x597b3d
mov dword [ebp - 0x630], 0
mov edx, dword [ebp - 0xc]
movzx eax, word [edx + 0x1c]
and eax, 0x800
je 0x597b5f
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.005933e0
add esp, 4
mov dword [ebp - 0x634], eax
jmp 0x597b69
mov dword [ebp - 0x634], 0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.00593e80
add esp, 0xc
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x638], ecx
mov edx, dword [ebp - 0x638]
sub edx, 0x43
mov dword [ebp - 0x638], edx
cmp dword [ebp - 0x638], 4
ja case.default.0x597bb0
mov eax, dword [ebp - 0x638]
jmp dword [eax*4 + 0x59c52c]
xor ecx, ecx
cmp dword [ebp - 0x100], 0
sete cl
mov dword [ebp - 0x100], ecx
jmp 0x597c2d
xor edx, edx
cmp dword [ebp - 0x100], 0
setne dl
mov dword [ebp - 0x100], edx
jmp 0x597c2d
xor eax, eax
cmp dword [ebp - 0x100], 0
setl al
mov dword [ebp - 0x100], eax
jmp 0x597c2d
xor ecx, ecx
cmp dword [ebp - 0x100], 0
setle cl
mov dword [ebp - 0x100], ecx
jmp 0x597c2d
xor edx, edx
cmp dword [ebp - 0x100], 0
setg dl
mov dword [ebp - 0x100], edx
jmp 0x597c2d
xor eax, eax
cmp dword [ebp - 0x100], 0
setge al
mov dword [ebp - 0x100], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
and edx, 0x80
je 0x597c73
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffffe0
or ecx, 4
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0x100]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x597c88
cmp dword [ebp - 0x100], 0
je 0x597c88
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0x10], eax
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x597ca5
mov dword [ebp - 0x15c], 2
jmp 0x597ced
mov eax, dword [ebp - 0x28]
push eax
call fcn.00593740
add esp, 4
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x63c], edx
mov ecx, dword [ebp - 0x640]
or ecx, dword [ebp - 0x63c]
je 0x597cd7
mov dword [ebp - 0x644], 1
jmp 0x597ce1
mov dword [ebp - 0x644], 0
mov edx, dword [ebp - 0x644]
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 0x1c]
movzx ecx, word [eax + 0x1c]
and ecx, 1
je 0x597d05
mov dword [ebp - 0x160], 2
jmp 0x597d4d
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00593740
add esp, 4
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x648], edx
mov eax, dword [ebp - 0x64c]
or eax, dword [ebp - 0x648]
je 0x597d37
mov dword [ebp - 0x650], 1
jmp 0x597d41
mov dword [ebp - 0x650], 0
mov ecx, dword [ebp - 0x650]
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x3d
jne 0x597d77
mov ecx, dword [ebp - 0x15c]
imul ecx, ecx, 3
mov edx, dword [ebp - 0x160]
movzx eax, byte [ecx + edx + 0x635be0]
mov dword [ebp - 0x15c], eax
jmp 0x597d94
mov ecx, dword [ebp - 0x15c]
imul ecx, ecx, 3
mov edx, dword [ebp - 0x160]
movzx eax, byte [ecx + edx + 0x635bec]
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 2
jne 0x597db3
mov ecx, dword [ebp - 0x18]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 1
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], dx
jmp 0x597dd6
mov eax, dword [ebp - 0x15c]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 4
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
jmp case.0x596950.11
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 0x1c]
and eax, 1
je 0x597dec
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00593930
add esp, 4
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x654], edx
mov eax, dword [ebp - 0x654]
mov ecx, dword [ebp - 0x654]
mov edx, dword [eax]
or edx, dword [ecx + 4]
jne 0x597e20
mov dword [ebp - 0x658], 1
jmp 0x597e2a
mov dword [ebp - 0x658], 0
mov eax, dword [ebp - 0x658]
cdq
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x596950.11
mov edx, dword [ebp - 0x28]
movzx eax, word [edx + 0x1c]
and eax, 1
je 0x597e4f
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00593930
add esp, 4
mov edx, dword [ebp - 0x28]
mov eax, dword [edx]
not eax
mov ecx, dword [edx + 4]
not ecx
mov edx, dword [ebp - 0x28]
mov dword [edx], eax
mov dword [edx + 4], ecx
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x1c]
and ecx, 1
je 0x597e8e
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x164], eax
jmp 0x597ee6
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00593840
add esp, 4
fcomp qword [0x638e60]
fnstsw ax
test ah, 0x44
jnp 0x597eb3
mov dword [ebp - 0x65c], 1
jmp 0x597ebd
mov dword [ebp - 0x65c], 0
mov edx, dword [ebp - 0x65c]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x49
jne 0x597ee6
xor edx, edx
cmp dword [ebp - 0x164], 0
sete dl
mov dword [ebp - 0x164], edx
cmp dword [ebp - 0x164], 0
je 0x597efb
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x168], eax
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 1
je 0x597f26
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x597f47
mov edx, dword [ebp - 0x28]
add edx, 0x28
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x168]
sub eax, 1
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0
jg 0x597f0c
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
movzx edx, word [ecx + 0x1c]
and edx, 1
jne 0x597f64
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x174], edx
mov dword [ebp - 0x188], 0
xor eax, eax
mov word [ebp - 0x19c], ax
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x194], 0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x16c], edx
mov ecx, dword [ebp - 0x16c]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 1
mov eax, dword [ebp - 0x16c]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x188], ecx
mov edx, dword [ebp - 0x188]
cmp dword [edx], 0
je 0x5980d9
mov eax, dword [ebp - 0x188]
push eax
call fcn.00592300
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x59801d
jmp 0x59c271
mov dword [ebp - 0x184], 0
mov ecx, dword [ebp - 0x188]
mov edx, dword [ecx]
mov dword [ebp - 0x1c0], edx
mov eax, dword [ebp - 0x188]
movzx ecx, byte [eax + 0x1c]
test ecx, ecx
je 0x59804f
mov dword [ebp - 0x190], 0
jmp 0x5980c8
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x68]
cmp ecx, dword [eax + 0x54]
jne 0x598080
mov edx, dword [ebp - 0x188]
mov eax, dword [edx + 0x6c]
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x188]
mov edx, dword [ecx + 0x78]
mov dword [ebp - 0x184], edx
jmp 0x5980c8
mov eax, dword [ebp - 0x188]
movzx ecx, byte [eax + 0x22]
test ecx, ecx
je 0x5980b2
lea edx, [ebp - 0x1d0]
push edx
mov eax, dword [ebp - 0x1c0]
push eax
call fcn.005a2510
add esp, 8
mov ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x190], ecx
jmp 0x5980c8
lea edx, [ebp - 0x190]
push edx
mov eax, dword [ebp - 0x1c0]
push eax
call fcn.005a25d0
add esp, 8
mov ecx, dword [ebp - 0x188]
mov edx, dword [ecx + 0x50]
mov dword [ebp - 0x1c4], edx
jmp 0x59811d
mov eax, dword [ebp - 0x188]
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x190], ecx
mov edx, dword [ebp - 0x188]
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x188]
mov dword [ecx + 0x68], 0
mov edx, dword [ebp - 0x188]
mov eax, dword [edx + 0x50]
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c0], 0
cmp dword [ebp - 0x190], 0
jne 0x59812b
jmp 0x5986ab
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x190]
cmp edx, dword [ecx + 0x50]
jbe 0x59813e
jmp 0x59c220
mov eax, dword [ebp - 0x188]
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x68]
cmp ecx, dword [eax + 0x54]
jne 0x598172
mov edx, dword [ebp - 0x188]
mov eax, dword [edx + 0x74]
mov dword [ebp - 0x178], eax
jmp 0x598490
mov ecx, dword [ebp - 0x1c4]
mov edx, dword [ebp - 0x180]
lea eax, [edx + ecx*4]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x188]
mov edx, dword [ebp - 0x178]
mov dword [ecx + 0x74], edx
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x190]
mov dword [eax + 0x6c], ecx
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x54]
mov dword [edx + 0x68], ecx
cmp dword [ebp - 0x184], 0
je 0x5981ce
mov edx, dword [ebp - 0x184]
mov dword [ebp - 0x1bc], edx
jmp 0x59824e
mov eax, dword [ebp - 0x188]
movzx ecx, byte [eax + 0x22]
test ecx, ecx
je 0x5981fa
lea edx, [ebp - 0x1e4]
push edx
mov eax, dword [ebp - 0x1c0]
push eax
call fcn.005a2c20
add esp, 8
mov dword [ebp - 0x1bc], eax
jmp 0x598216
lea ecx, [ebp - 0x1e4]
push ecx
mov edx, dword [ebp - 0x1c0]
push edx
call fcn.005a2cf0
add esp, 8
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x1e4]
cmp eax, dword [ebp - 0x190]
jb 0x598241
mov ecx, dword [ebp - 0x1bc]
mov dword [ebp - 0x184], ecx
mov edx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x1bc]
mov dword [edx + 0x78], eax
jmp 0x59824e
mov ecx, dword [ebp - 0x188]
mov dword [ecx + 0x78], 0
mov edx, dword [ebp - 0x1bc]
movzx eax, byte [edx]
cmp eax, 0x80
jge 0x598279
mov ecx, dword [ebp - 0x1bc]
movzx edx, byte [ecx]
mov dword [ebp - 0x1e0], edx
mov dword [ebp - 0x660], 1
jmp 0x598295
lea eax, [ebp - 0x1e0]
push eax
mov ecx, dword [ebp - 0x1bc]
push ecx
call fcn.00596170
add esp, 8
mov dword [ebp - 0x660], eax
mov edx, dword [ebp - 0x660]
mov dword [ebp - 0x1dc], edx
cmp dword [ebp - 0x184], 0
jne 0x59830f
mov eax, dword [ebp - 0x1e4]
cmp eax, dword [ebp - 0x1e0]
jae 0x59830f
xor ecx, ecx
mov word [ebp - 0x19c], cx
mov dword [ebp - 0x1a8], 0
lea edx, [ebp - 0x1b8]
push edx
mov eax, dword [ebp - 0x188]
movzx ecx, byte [eax + 0x22]
push ecx
mov edx, dword [ebp - 0x1e0]
push edx
push 0
mov eax, dword [ebp - 0x1c0]
push eax
call fcn.00594170
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x598303
jmp 0x5986ab
mov ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x1bc]
add edx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1d8], edx
mov eax, dword [ebp - 0x1bc]
add eax, dword [ebp - 0x1dc]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x170], 0
jmp 0x59834e
mov ecx, dword [ebp - 0x170]
add ecx, 1
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x170]
cmp edx, dword [ebp - 0x1c4]
jae 0x598431
mov eax, dword [ebp - 0x1d4]
cmp eax, dword [ebp - 0x1d8]
jae 0x598419
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x1e0]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x1d4]
movzx edx, byte [ecx]
cmp edx, 0x80
jge 0x5983bc
mov eax, dword [ebp - 0x1d4]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x170]
mov eax, dword [ebp - 0x180]
mov dword [eax + edx*4], ecx
mov dword [ebp - 0x664], 1
jmp 0x5983e1
mov ecx, dword [ebp - 0x170]
mov edx, dword [ebp - 0x180]
lea eax, [edx + ecx*4]
push eax
mov ecx, dword [ebp - 0x1d4]
push ecx
call fcn.00596170
add esp, 8
mov dword [ebp - 0x664], eax
mov edx, dword [ebp - 0x1d4]
add edx, dword [ebp - 0x664]
mov dword [ebp - 0x1d4], edx
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x180]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00592530
add esp, 4
add eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1e0], eax
jmp 0x59842c
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x178]
mov dword [ecx + eax*4], 0
jmp 0x59833f
lea edx, [ebp - 0x1b8]
push edx
call fcn.00593700
add esp, 4
mov eax, 1
mov word [ebp - 0x19c], ax
mov ecx, dword [ebp - 0x1d4]
cmp ecx, dword [ebp - 0x1d8]
ja 0x598484
mov edx, dword [ebp - 0x1e0]
cmp edx, dword [ebp - 0x190]
ja 0x598484
mov eax, dword [ebp - 0x1d4]
cmp eax, dword [ebp - 0x1d8]
jne 0x598490
mov ecx, dword [ebp - 0x1e0]
cmp ecx, dword [ebp - 0x190]
je 0x598490
mov dword [ebp - 8], 0xb
jmp 0x5986ab
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x178]
cmp dword [eax + edx*4], 0
je 0x59861a
cmp dword [ebp - 0x184], 0
je 0x598560
mov ecx, dword [ebp - 0x16c]
movzx edx, word [ecx + 0x1c]
and edx, 0x40
je 0x598526
lea eax, [ebp - 0x1b8]
push eax
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x180]
mov eax, dword [edx + ecx*4]
push eax
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x184]
add eax, dword [edx + ecx*4]
push eax
call fcn.00592690
add esp, 0xc
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x1a8], ecx
lea edx, [ebp - 0x1b8]
push edx
mov eax, dword [ebp - 0x16c]
push eax
call fcn.00593c00
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x598524
jmp 0x5986ab
jmp 0x59855b
mov ecx, dword [ebp - 0x16c]
push ecx
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x180]
mov ecx, dword [eax + edx*4]
push ecx
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x184]
add ecx, dword [eax + edx*4]
push ecx
call fcn.00592690
add esp, 0xc
jmp 0x59860c
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x180]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00592530
add esp, 4
mov dword [ebp - 0x17c], eax
mov edx, dword [ebp - 0x16c]
push edx
lea eax, [ebp - 0x1b8]
push eax
call fcn.00593c80
add esp, 8
lea ecx, [ebp - 0x1b8]
push ecx
mov edx, dword [ebp - 0x188]
movzx eax, byte [edx + 0x22]
push eax
mov ecx, dword [ebp - 0x17c]
push ecx
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x178]
mov ecx, dword [eax + edx*4]
push ecx
mov edx, dword [ebp - 0x1c0]
push edx
call fcn.00594170
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5985da
jmp 0x5986ab
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x16c]
push ecx
mov edx, dword [ebp - 0x174]
mov eax, dword [ebp - 0x180]
mov ecx, dword [eax + edx*4]
push ecx
mov edx, dword [ebp - 0x1bc]
push edx
call fcn.00592690
add esp, 0xc
mov eax, dword [ebp - 0x16c]
mov cl, byte [ebp - 0x1d]
mov byte [eax + 0x1f], cl
jmp 0x598641
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx + 1]
cmp eax, 0xfffffff8
jne 0x598641
push 0x80
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x16c]
push eax
call fcn.00593b90
add esp, 0xc
cmp dword [ebp - 0x194], 0
je 0x598699
mov ecx, dword [ebp - 0x16c]
movzx edx, word [ecx + 0x1c]
and edx, 0xfffffe7f
mov eax, dword [ebp - 0x16c]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0x16c]
movzx edx, word [ecx + 0x1c]
or edx, 0x20
mov eax, dword [ebp - 0x16c]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x1a4]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x194]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 0x16c]
push edx
call fcn.00593480
add esp, 4
mov dword [ebp - 8], eax
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x1ec], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x1f0], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
imul eax, eax, 0x28
add eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x1f4], eax
mov ecx, dword [ebp - 0x1f0]
mov dword [ebp - 0x1e8], ecx
jmp 0x598706
mov edx, dword [ebp - 0x1e8]
add edx, 0x28
mov dword [ebp - 0x1e8], edx
mov eax, dword [ebp - 0x1e8]
cmp eax, dword [ebp - 0x1f4]
ja 0x59877f
mov ecx, dword [ebp - 0x1e8]
movzx edx, word [ecx + 0x1c]
and edx, 0x800
je 0x59873d
mov eax, dword [ebp - 0x1e8]
push eax
call fcn.005933e0
add esp, 4
mov dword [ebp - 0x668], eax
jmp 0x598747
mov dword [ebp - 0x668], 0
movzx ecx, byte [ebp - 0x1d]
push ecx
mov eax, dword [ebp - 0x1e8]
sub eax, dword [ebp - 0x1f0]
cdq
mov ecx, 0x28
idiv ecx
mov edx, dword [ebp - 0x1ec]
movzx eax, byte [edx + eax]
push eax
mov ecx, dword [ebp - 0x1e8]
push ecx
call fcn.00596680
add esp, 0xc
jmp 0x5986f7
jmp case.0x596950.11
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x208], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x1fc], 0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x214], edx
mov eax, dword [ebp - 0x234]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x22c], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
sub ecx, 1
imul ecx, ecx, 0x28
add ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x230], ecx
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0x100]
mov dword [ebp - 0x21c], eax
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x218], ecx
jmp 0x59883e
mov edx, dword [ebp - 0x218]
add edx, 0x28
mov dword [ebp - 0x218], edx
mov eax, dword [ebp - 0x218]
cmp eax, dword [ebp - 0x230]
ja 0x59896c
cmp dword [ebp - 0x214], 0
je 0x59888c
movzx ecx, byte [ebp - 0x1d]
push ecx
mov eax, dword [ebp - 0x218]
sub eax, dword [ebp - 0x22c]
cdq
mov ecx, 0x28
idiv ecx
mov edx, dword [ebp - 0x214]
movzx eax, byte [edx + eax]
push eax
mov ecx, dword [ebp - 0x218]
push ecx
call fcn.00596680
add esp, 0xc
mov edx, dword [ebp - 0x218]
movzx eax, word [edx + 0x1c]
and eax, 0x800
je 0x5988b8
mov ecx, dword [ebp - 0x218]
cmp dword [ecx + 0x18], 0
jle 0x5988b8
mov edx, dword [ebp - 0x218]
push edx
call fcn.005933e0
add esp, 4
mov eax, dword [ebp - 0x21c]
push eax
mov ecx, dword [ebp - 0x218]
push ecx
call fcn.005923b0
add esp, 8
mov dword [ebp - 0x1f8], eax
mov edx, dword [ebp - 0x1f8]
push edx
call fcn.00592530
add esp, 4
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0x238]
cdq
add eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x20c]
adc ecx, edx
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x20c], ecx
mov edx, dword [ebp - 0x1f8]
xor eax, eax
push eax
push edx
call fcn.00596310
add esp, 8
add eax, dword [ebp - 0x208]
mov dword [ebp - 0x208], eax
mov ecx, dword [ebp - 0x218]
movzx edx, word [ecx + 0x1c]
and edx, 0x800
je 0x598954
mov eax, dword [ebp - 0x1fc]
cdq
mov ecx, dword [ebp - 0x218]
add eax, dword [ecx]
adc edx, dword [ecx + 4]
mov dword [ebp - 0x1fc], eax
jmp 0x598967
cmp dword [ebp - 0x238], 0
je 0x598967
mov dword [ebp - 0x1fc], 0
jmp 0x59882f
mov eax, dword [ebp - 0x208]
cdq
push edx
push eax
call fcn.00596310
add esp, 8
mov dword [ebp - 0x204], eax
mov edx, dword [ebp - 0x208]
add edx, dword [ebp - 0x204]
mov dword [ebp - 0x208], edx
mov eax, dword [ebp - 0x208]
cdq
push edx
push eax
call fcn.00596310
add esp, 8
cmp dword [ebp - 0x204], eax
jge 0x5989bd
mov eax, dword [ebp - 0x208]
add eax, 1
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x208]
cdq
mov ecx, eax
mov esi, edx
add ecx, dword [ebp - 0x210]
adc esi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x1fc]
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x228], ecx
mov dword [ebp - 0x224], esi
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x50]
cdq
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x66c], edx
mov eax, dword [ebp - 0x224]
cmp eax, dword [ebp - 0x66c]
jb 0x598a21
ja 0x598a1c
mov ecx, dword [ebp - 0x228]
cmp ecx, dword [ebp - 0x670]
jbe 0x598a21
jmp 0x59c220
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x18], eax
push 0
mov edx, dword [ebp - 0x228]
push edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.005931c0
add esp, 0xc
test eax, eax
je 0x598a51
jmp 0x59c242
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x220], edx
cmp dword [ebp - 0x208], 0x80
jae 0x598a83
mov eax, dword [ebp - 0x220]
mov cl, byte [ebp - 0x208]
mov byte [eax], cl
mov dword [ebp - 0x674], 1
jmp 0x598a9f
mov edx, dword [ebp - 0x208]
push edx
mov eax, dword [ebp - 0x220]
push eax
call fcn.00595d30
add esp, 8
mov dword [ebp - 0x674], eax
mov ecx, dword [ebp - 0x674]
mov dword [ebp - 0x200], ecx
mov edx, dword [ebp - 0x22c]
mov dword [ebp - 0x218], edx
jmp 0x598ac8
mov eax, dword [ebp - 0x218]
add eax, 0x28
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0x218]
cmp ecx, dword [ebp - 0x230]
ja 0x598b5b
mov edx, dword [ebp - 0x21c]
push edx
mov eax, dword [ebp - 0x218]
push eax
call fcn.005923b0
add esp, 8
mov dword [ebp - 0x1f8], eax
cmp dword [ebp - 0x1f8], 0x80
jae 0x598b22
mov ecx, dword [ebp - 0x220]
add ecx, dword [ebp - 0x200]
mov dl, byte [ebp - 0x1f8]
mov byte [ecx], dl
mov dword [ebp - 0x678], 1
jmp 0x598b44
mov eax, dword [ebp - 0x1f8]
push eax
mov ecx, dword [ebp - 0x220]
add ecx, dword [ebp - 0x200]
push ecx
call fcn.00595d30
add esp, 8
mov dword [ebp - 0x678], eax
mov edx, dword [ebp - 0x200]
add edx, dword [ebp - 0x678]
mov dword [ebp - 0x200], edx
jmp 0x598ab9
mov eax, dword [ebp - 0x22c]
mov dword [ebp - 0x218], eax
jmp 0x598b78
mov ecx, dword [ebp - 0x218]
add ecx, 0x28
mov dword [ebp - 0x218], ecx
mov edx, dword [ebp - 0x218]
cmp edx, dword [ebp - 0x230]
ja 0x598bcf
mov eax, dword [ebp - 0x21c]
push eax
mov ecx, dword [ebp - 0x218]
push ecx
mov eax, dword [ebp - 0x200]
cdq
mov ecx, dword [ebp - 0x228]
sub ecx, eax
mov eax, dword [ebp - 0x224]
sbb eax, edx
push ecx
mov ecx, dword [ebp - 0x220]
add ecx, dword [ebp - 0x200]
push ecx
call fcn.00592560
add esp, 0x10
add eax, dword [ebp - 0x200]
mov dword [ebp - 0x200], eax
jmp 0x598b69
mov edx, dword [ebp - 0x228]
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x18], edx
mov ecx, 0x50
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x20], 0
cmp dword [ebp - 0x1fc], 0
je 0x598c1c
mov eax, dword [ebp - 0x1fc]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
or eax, 0x800
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x18]
mov byte [edx + 0x1f], 1
jmp case.0x596950.11
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1c]
test ecx, ecx
je 0x598c3f
mov edx, dword [ebp - 4]
cmp dword [edx + 0x90], 1
jle 0x598c96
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x240], ecx
mov edx, dword [ebp - 0x240]
imul edx, edx, 0x18
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp - 0x23c]
push eax
call fcn.005a9a40
add esp, 4
test eax, eax
jne 0x598c96
mov ecx, dword [ebp - 0x23c]
push ecx
call fcn.005a1fb0
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x14c], 1
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov cl, byte [eax + 4]
mov byte [ebp - 0x241], cl
mov edx, dword [ebp - 0x24]
mov al, byte [edx + 8]
mov byte [ebp - 0x242], al
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0x90], 1
jle 0x598d27
movzx edx, byte [ebp - 0x241]
test edx, edx
je 0x598d27
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1c]
test ecx, ecx
jne 0x598d27
movzx edx, byte [ebp - 0x242]
test edx, edx
je 0x598cec
mov dword [ebp - 0x67c], str.rollback
jmp 0x598cf6
mov dword [ebp - 0x67c], str.commit
push 0
push str._transaction___SQL_statements_in_progress
mov eax, dword [ebp - 0x67c]
push eax
push str.cannot
mov ecx, dword [ebp + 8]
add ecx, 0xf4
push ecx
call fcn.005949f0
add esp, 0x14
mov dword [ebp - 8], 1
jmp 0x598e30
movzx edx, byte [ebp - 0x241]
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x1c]
cmp edx, ecx
je 0x598dca
mov edx, dword [ebp - 0x24]
cmp dword [edx + 8], 0
je 0x598d5b
mov eax, dword [ebp - 4]
push eax
call fcn.0058cf20
add esp, 4
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x1c], 1
jmp 0x598daa
mov edx, dword [ebp - 4]
mov al, byte [ebp - 0x241]
mov byte [edx + 0x1c], al
mov ecx, dword [ebp + 8]
push ecx
call fcn.00591410
add esp, 4
cmp eax, 5
jne 0x598daa
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dword [edx + 0x70], eax
movzx ecx, byte [ebp - 0x241]
mov edx, 1
sub edx, ecx
mov eax, dword [ebp - 4]
mov byte [eax + 0x1c], dl
mov dword [ebp - 8], 5
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov dword [ecx + 0x74], edx
jmp 0x59c207
mov eax, dword [ebp + 8]
cmp dword [eax + 0x74], 0
jne 0x598dbc
mov dword [ebp - 8], 0x65
jmp 0x598dc3
mov dword [ebp - 8], 1
jmp 0x59c207
movzx ecx, byte [ebp - 0x241]
test ecx, ecx
jne 0x598de1
mov dword [ebp - 0x680], str.cannot_start_a_transaction_within_a_transaction
jmp 0x598e0e
movzx edx, byte [ebp - 0x242]
test edx, edx
je 0x598df8
mov dword [ebp - 0x684], str.cannot_rollback___no_transaction_is_active
jmp 0x598e02
mov dword [ebp - 0x684], str.cannot_commit___no_transaction_is_active
mov eax, dword [ebp - 0x684]
mov dword [ebp - 0x680], eax
push 0
mov ecx, dword [ebp - 0x680]
push ecx
mov edx, dword [ebp + 8]
add edx, 0xf4
push edx
call fcn.005949f0
add esp, 0xc
mov dword [ebp - 8], 1
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x24c], ecx
mov edx, dword [ebp - 0x24c]
imul edx, edx, 0x18
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
mov dword [ebp - 0x248], edx
cmp dword [ebp - 0x248], 0
je 0x598eb1
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp - 0x248]
push edx
call fcn.005a06d0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 5
jne 0x598ea0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 0x70], ecx
mov dword [ebp - 8], 5
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
mov dword [edx + 0x74], eax
jmp 0x59c207
cmp dword [ebp - 8], 0
je 0x598eb1
cmp dword [ebp - 8], 8
je 0x598eb1
jmp 0x59c271
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x254], ecx
cmp dword [ebp - 0x258], 0
jge 0x598ef8
mov edx, dword [ebp - 0x258]
add edx, 1
imul edx, edx, 0xffffffff
mov dword [ebp - 0x258], edx
mov eax, dword [ebp - 0x254]
imul eax, eax, 0xffffffff
mov dword [ebp - 0x254], eax
lea ecx, [ebp - 0x250]
push ecx
mov edx, dword [ebp - 0x254]
add edx, 1
push edx
mov eax, dword [ebp - 0x258]
imul eax, eax, 0x18
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax + 4]
push eax
call fcn.005a8080
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x250]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 4
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x18
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 8]
mov dword [ebp - 0x25c], eax
mov edx, dword [ebp - 0xc]
push edx
call fcn.00593930
add esp, 4
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
add eax, 1
push eax
mov ecx, dword [ebp - 0x25c]
mov edx, dword [ecx + 4]
push edx
call fcn.005a8320
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x24]
cmp dword [eax + 8], 0
jne 0x598fc0
mov ecx, dword [ebp - 0x25c]
mov edx, dword [ecx + 0x14]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
mov dword [edx], ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xc]
or eax, 0x10
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xc], eax
jmp 0x598fda
mov edx, dword [ebp - 0x24]
cmp dword [edx + 8], 1
jne 0x598fda
mov eax, dword [ebp - 0x25c]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp - 0xc]
mov al, byte [edx]
mov byte [ecx + 0x58], al
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 4], 1
jne 0x598fef
mov edx, dword [ebp - 4]
push edx
call fcn.00593130
add esp, 4
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx + 4]
mov dword [ebp - 0x260], ecx
cmp dword [ebp - 0x260], 0
je 0x599033
lea edx, [ebp - 0x264]
push edx
push 1
mov eax, dword [ebp - 0x260]
push eax
call fcn.005a8080
add esp, 0xc
mov dword [ebp - 8], eax
jmp 0x599044
mov dword [ebp - 8], 0
mov dword [ebp - 0x264], 0
cmp dword [ebp - 8], 0
jne 0x5990c7
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x264]
cmp edx, dword [ecx + 8]
je 0x5990c7
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xf4]
push ecx
call fcn.00594e00
add esp, 4
push str.database_schema_has_changed
mov edx, dword [ebp - 4]
push edx
call fcn.00594980
add esp, 8
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xf4], eax
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x18
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 8]
mov eax, dword [edx + eax + 0x14]
mov ecx, dword [eax]
cmp ecx, dword [ebp - 0x264]
je 0x5990b4
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.005abac0
add esp, 8
mov edx, dword [ebp - 4]
push edx
call fcn.00593130
add esp, 4
mov dword [ebp - 8], 0x11
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x268], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov dword [ebp - 0x270], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x280], edx
mov eax, dword [ebp - 0x280]
imul eax, eax, 0x18
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 8]
mov dword [ebp - 0x27c], eax
mov edx, dword [ebp - 0x27c]
mov eax, dword [edx + 4]
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 9
jne 0x59915b
mov dword [ebp - 0x278], 1
mov eax, dword [ebp - 0x27c]
mov ecx, dword [eax + 0x14]
movzx edx, byte [ecx + 0x58]
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x100]
cmp edx, ecx
jge 0x599159
mov edx, dword [ebp - 0x27c]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp + 8]
mov dl, byte [eax + 0x58]
mov byte [ecx + 0x100], dl
jmp 0x599165
mov dword [ebp - 0x278], 0
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 3]
test ecx, ecx
je 0x599199
mov edx, dword [ebp - 0x270]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00593930
add esp, 4
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
mov dword [ebp - 0x270], eax
push 1
mov ecx, dword [ebp - 0x280]
push ecx
mov edx, dword [ebp - 0x24]
sub edx, 0x14
push edx
mov eax, dword [ebp - 0x268]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059c540
add esp, 0x14
mov dword [ebp - 0x274], eax
cmp dword [ebp - 0x274], 0
jne 0x5991d0
jmp 0x59c242
mov edx, dword [ebp - 0x274]
mov byte [edx + 0x1c], 1
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x278]
push ecx
mov edx, dword [ebp - 0x270]
push edx
mov eax, dword [ebp - 0x26c]
push eax
call fcn.005a2130
add esp, 0x14
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x24]
movsx edx, byte [ecx + 1]
cmp edx, 0xfffffffa
jne 0x599256
mov eax, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x4c], edx
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax + 0x4c]
add ecx, 5
mov edx, dword [ebp - 0x274]
mov dword [edx + 0x48], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0x14]
mov ecx, dword [ebp - 0x274]
mov edx, dword [ecx + 0x4c]
mov al, byte [eax + 0x59]
mov byte [edx + 4], al
jmp 0x599275
mov ecx, dword [ebp - 0x274]
mov dword [ecx + 0x4c], 0
mov edx, dword [ebp - 0x274]
add edx, 0x23
mov eax, dword [ebp - 0x274]
mov dword [eax + 0x48], edx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x688], ecx
cmp dword [ebp - 0x688], 0
je 0x5992c0
cmp dword [ebp - 0x688], 5
je 0x5992a2
cmp dword [ebp - 0x688], 0x10
je 0x59937f
jmp 0x5993c6
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov dword [edx + 0x70], eax
mov dword [ebp - 8], 5
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 8]
mov dword [ecx + 0x74], edx
jmp 0x59c207
mov eax, dword [ebp - 0x274]
mov ecx, dword [eax]
push ecx
call fcn.005a83d0
add esp, 4
mov dword [ebp - 0x284], eax
mov edx, dword [ebp - 0x284]
and edx, 0xf0
jne 0x599301
mov eax, dword [ebp - 0x284]
and eax, 7
cmp eax, 5
je 0x59930d
mov ecx, dword [ebp - 0x284]
and ecx, 7
cmp ecx, 2
je 0x59930d
mov dword [ebp - 8], 0xb
jmp 0x59c271
mov edx, dword [ebp - 0x284]
and edx, 1
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x274]
mov byte [eax + 0x21], dl
mov ecx, dword [ebp - 0x284]
and ecx, 2
neg ecx
sbb ecx, ecx
neg ecx
mov edx, dword [ebp - 0x274]
mov byte [edx + 0x22], cl
mov eax, dword [ebp - 0x274]
movzx ecx, byte [eax + 0x21]
test ecx, ecx
je 0x599357
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx + 1]
cmp eax, 0xfffffffa
je 0x599371
mov ecx, dword [ebp - 0x274]
movzx edx, byte [ecx + 0x22]
test edx, edx
je 0x59937d
mov eax, dword [ebp - 0x24]
movsx ecx, byte [eax + 1]
cmp ecx, 0xfffffffa
je 0x59937d
mov dword [ebp - 8], 0xb
jmp 0x59c271
jmp 0x5993cb
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx + 1]
xor ecx, ecx
cmp eax, 0xfffffffa
setne cl
mov edx, dword [ebp - 0x274]
mov byte [edx + 0x21], cl
mov eax, dword [ebp - 0x274]
movzx ecx, byte [eax + 0x21]
neg ecx
sbb ecx, ecx
add ecx, 1
mov edx, dword [ebp - 0x274]
mov byte [edx + 0x22], cl
mov eax, dword [ebp - 0x274]
mov dword [eax], 0
mov dword [ebp - 8], 0
jmp 0x5993cb
jmp 0x59c271
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x288], edx
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x288]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0059c540
add esp, 0x14
mov dword [ebp - 0x28c], eax
cmp dword [ebp - 0x28c], 0
jne 0x59940b
jmp 0x59c242
mov eax, dword [ebp - 0x28c]
mov byte [eax + 0x1c], 1
mov ecx, dword [ebp - 0x28c]
add ecx, 0x30
push ecx
mov edx, dword [0x635bf8]
push edx
push 0x1f4
push 1
push 0
mov eax, dword [ebp - 4]
push eax
call fcn.0058d9a0
add esp, 0x18
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x59945b
push 1
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ecx + 0x30]
push edx
call fcn.005a06d0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x59954e
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x10], 0
je 0x59950e
push 2
lea ecx, [ebp - 0x290]
push ecx
mov edx, dword [ebp - 0x28c]
mov eax, dword [edx + 0x30]
push eax
call fcn.005a7810
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x599502
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
push ecx
push 1
mov edx, dword [ebp - 0x290]
push edx
mov eax, dword [ebp - 0x28c]
mov ecx, dword [eax + 0x30]
push ecx
call fcn.005a2130
add esp, 0x14
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x28c]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x4c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x14]
mov eax, dword [ebp - 0x28c]
mov ecx, dword [eax + 0x4c]
mov dl, byte [edx + 0x59]
mov byte [ecx + 4], dl
mov eax, dword [ebp - 0x28c]
mov ecx, dword [eax + 0x4c]
add ecx, 5
mov edx, dword [ebp - 0x28c]
mov dword [edx + 0x48], ecx
mov eax, dword [ebp - 0x28c]
mov byte [eax + 0x21], 0
jmp 0x59954e
mov ecx, dword [ebp - 0x28c]
mov edx, dword [ecx]
push edx
push 0
push 1
push 1
mov eax, dword [ebp - 0x28c]
mov ecx, dword [eax + 0x30]
push ecx
call fcn.005a2130
add esp, 0x14
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x28c]
mov byte [edx + 0x21], 1
mov eax, dword [ebp - 0x28c]
add eax, 0x23
mov ecx, dword [ebp - 0x28c]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x28c]
movzx eax, byte [edx + 0x21]
neg eax
sbb eax, eax
add eax, 1
mov ecx, dword [ebp - 0x28c]
mov byte [ecx + 0x22], al
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ebp - 0x294], eax
push 0
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x24]
sub ecx, 0x14
push ecx
mov edx, dword [ebp - 0x294]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0059c540
add esp, 0x14
mov dword [ebp - 0x298], eax
cmp dword [ebp - 0x298], 0
jne 0x5995ab
jmp 0x59c242
mov ecx, dword [ebp - 0x298]
mov byte [ecx + 0x1c], 1
mov edx, dword [ebp - 0x298]
mov byte [edx + 0x1e], 1
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x24]
mov dl, byte [ecx + 8]
mov byte [eax + 0x1f], dl
mov eax, dword [ebp - 0x298]
add eax, 0x23
mov ecx, dword [ebp - 0x298]
mov dword [ecx + 0x48], eax
mov edx, dword [ebp - 0x298]
mov byte [edx + 0x21], 1
mov eax, dword [ebp - 0x298]
mov byte [eax + 0x22], 0
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x29c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0x29c]
mov eax, dword [ecx + edx*4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00591210
add esp, 8
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x29c]
mov dword [eax + ecx*4], 0
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ebp - 0x2a0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [ebp - 0x2a0]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [ebp - 0x2a4]
cmp dword [edx], 0
je 0x5998f6
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
mov dword [ebp - 0x2ac], ecx
mov edx, dword [ebp - 0x2a4]
mov byte [edx + 0x1c], 0
cmp dword [ebp - 0x2ac], 6
je 0x59969d
cmp dword [ebp - 0x2ac], 0x40
je 0x59969d
mov dword [ebp - 0x68c], 0
jmp 0x5996a7
mov dword [ebp - 0x68c], 1
mov eax, dword [ebp - 0x2a4]
mov ecx, dword [eax + 0x48]
mov dl, byte [ebp - 0x68c]
mov byte [ecx], dl
mov eax, dword [ebp - 0x2a4]
movzx ecx, byte [eax + 0x21]
test ecx, ecx
je 0x599788
mov edx, dword [ebp - 0xc]
push edx
call fcn.00593740
add esp, 4
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 8], 0
jne 0x59971c
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [ebp - 0x2b8]
mov dword [ecx + 0x28], edx
mov eax, dword [ebp - 0x2b4]
mov dword [ecx + 0x2c], eax
mov ecx, dword [ebp - 0x2a4]
mov byte [ecx + 0x19], 0
mov edx, dword [ebp - 0x2a4]
mov byte [edx + 0x20], 1
jmp case.0x596950.11
lea eax, [ebp - 0x2a8]
push eax
push 0
mov ecx, dword [ebp - 0x2b4]
push ecx
mov edx, dword [ebp - 0x2b8]
push edx
push 0
push 0
mov eax, dword [ebp - 0x2a4]
mov ecx, dword [eax]
push ecx
call fcn.005a31e0
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x599756
jmp 0x59c271
mov edx, dword [ebp - 0x2a4]
mov eax, dword [ebp - 0x2b8]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x2b4]
mov dword [edx + 0xc], ecx
xor edx, edx
cmp dword [ebp - 0x2a8], 0
sete dl
mov eax, dword [ebp - 0x2a4]
mov byte [eax + 0x19], dl
jmp 0x599813
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x2c8], edx
mov eax, dword [ebp - 0x2a4]
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x2c4], ecx
mov dx, word [ebp - 0x2c8]
mov word [ebp - 0x2c0], dx
mov byte [ebp - 0x2be], 0
mov byte [ebp - 0x2bd], 0
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x2bc], ecx
lea eax, [ebp - 0x2a8]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 0x2c4]
push ecx
push 0
mov edx, dword [ebp - 0x2a4]
mov eax, dword [edx]
push eax
call fcn.005a31e0
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x599809
jmp 0x59c271
mov ecx, dword [ebp - 0x2a4]
mov byte [ecx + 0x19], 0
mov edx, dword [ebp - 0x2a4]
mov byte [edx + 0x20], 0
mov eax, dword [ebp - 0x2a4]
mov dword [eax + 0x68], 0
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [ecx + 0x48]
mov byte [edx], 0
cmp dword [ebp - 0x2ac], 0x75
je 0x599848
cmp dword [ebp - 0x2ac], 6
jne 0x59988f
cmp dword [ebp - 0x2a8], 0
jge 0x599883
lea eax, [ebp - 0x2a8]
push eax
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [ecx]
push edx
call fcn.005a3860
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x599877
jmp 0x59c271
mov eax, dword [ebp - 0x2a4]
mov byte [eax + 0x19], 0
jmp 0x59988d
mov dword [ebp - 0x2a8], 0
jmp 0x5998e1
cmp dword [ebp - 0x2a8], 0
jl 0x5998ca
lea ecx, [ebp - 0x2a8]
push ecx
mov edx, dword [ebp - 0x2a4]
mov eax, dword [edx]
push eax
call fcn.005a3a40
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x5998be
jmp 0x59c271
mov ecx, dword [ebp - 0x2a4]
mov byte [ecx + 0x19], 0
jmp 0x5998e1
mov edx, dword [ebp - 0x2a4]
mov eax, dword [edx]
push eax
call fcn.005a3830
add esp, 4
mov dword [ebp - 0x2a8], eax
cmp dword [ebp - 0x2a8], 0
je 0x5998f6
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2cc], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x2d0]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x2d4], edx
mov eax, dword [ebp - 0x2d4]
cmp dword [eax], 0
je 0x5999bd
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x7a
jne 0x59994d
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [eax + 0x4c]
mov byte [ecx + 6], 1
lea edx, [ebp - 0x2d8]
push edx
push 0
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x18]
cdq
push edx
push eax
push 0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [eax]
push ecx
call fcn.005a31e0
add esp, 0x1c
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x2d4]
mov eax, dword [edx + 0x4c]
mov byte [eax + 6], 0
cmp dword [ebp - 8], 0
je 0x599994
jmp case.0x596950.11
xor ecx, ecx
cmp dword [ebp - 0x2d8], 0
sete cl
mov dword [ebp - 0x2cc], ecx
mov edx, dword [ebp - 0x2d4]
mov byte [edx + 0x20], 0
mov eax, dword [ebp - 0x2d4]
mov dword [eax + 0x68], 0
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx]
cmp edx, 0x7a
jne 0x5999df
cmp dword [ebp - 0x2cc], 0
je 0x5999dd
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x5999f4
cmp dword [ebp - 0x2cc], 0
jne 0x5999f4
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0x10], eax
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x2e0], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x2dc], ecx
mov eax, dword [ebp - 0xc]
push eax
call fcn.00593930
add esp, 4
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx]
mov dword [ebp - 0x2f0], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x2ec], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x2e4], ecx
mov edx, dword [ebp - 0x2e4]
mov eax, dword [edx]
mov dword [ebp - 0x2f4], eax
cmp dword [ebp - 0x2f4], 0
je 0x599be3
mov ecx, dword [ebp - 0x2dc]
mov edx, dword [ecx + 0x14]
mov dword [ebp - 0x30c], edx
mov eax, dword [ebp - 0x2dc]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x314], ecx
mov edx, dword [ebp - 0x30c]
push edx
call fcn.00592de0
add esp, 4
mov dword [ebp - 0x308], eax
mov eax, dword [ebp - 0x314]
sub eax, dword [ebp - 0x308]
mov dword [ebp - 0x310], eax
mov ecx, dword [ebp - 0x2e4]
mov dword [ecx + 0x68], 0
lea edx, [ebp - 0x304]
push edx
push 0
mov eax, dword [ebp - 0x310]
cdq
push edx
push eax
push 0
mov eax, dword [ebp - 0x30c]
push eax
mov ecx, dword [ebp - 0x2f4]
push ecx
call fcn.005a31e0
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x599af4
jmp 0x59c271
cmp dword [ebp - 0x304], 0
jge 0x599b30
lea edx, [ebp - 0x304]
push edx
mov eax, dword [ebp - 0x2f4]
push eax
call fcn.005a3860
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 0x304], 0
je 0x599b30
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
lea eax, [ebp - 0x304]
push eax
mov ecx, dword [ebp - 0x30c]
push ecx
mov edx, dword [ebp - 0x310]
push edx
push 0
mov eax, dword [ebp - 0x2e4]
push eax
call fcn.00592fb0
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x599b64
jmp 0x59c271
cmp dword [ebp - 0x304], 0
jle 0x599b7e
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
lea eax, [ebp - 0x300]
push eax
mov ecx, dword [ebp - 0x2f4]
push ecx
call fcn.00592e70
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x599ba2
jmp 0x59c271
mov edx, dword [ebp - 0x300]
cmp edx, dword [ebp - 0x2f0]
jne 0x599bcf
mov eax, dword [ebp - 0x2fc]
cmp eax, dword [ebp - 0x2ec]
jne 0x599bcf
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x300]
mov dword [eax], ecx
mov edx, dword [ebp - 0x2fc]
mov dword [eax + 4], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x318], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x318]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x31c], edx
mov eax, dword [ebp - 0x31c]
mov ecx, dword [eax]
mov dword [ebp - 0x320], ecx
cmp dword [ebp - 0x320], 0
je 0x599cba
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
mov dword [ebp - 0x330], eax
mov ecx, dword [edx + 4]
mov dword [ebp - 0x32c], ecx
lea edx, [ebp - 0x324]
push edx
push 0
mov eax, dword [ebp - 0x32c]
push eax
mov ecx, dword [ebp - 0x330]
push ecx
push 0
push 0
mov edx, dword [ebp - 0x320]
push edx
call fcn.005a31e0
add esp, 0x1c
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0xc], ecx
xor edx, edx
cmp dword [ebp - 0x324], 0
sete dl
mov eax, dword [ebp - 0x31c]
mov byte [eax + 0x19], dl
mov ecx, dword [ebp - 0x31c]
mov byte [ecx + 0x1c], 0
mov edx, dword [ebp - 0x31c]
mov dword [edx + 0x68], 0
cmp dword [ebp - 0x324], 0
je 0x599cba
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ebp - 0x334], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [ebp - 0x334]
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x58]
mov dword [edx], eax
mov ecx, dword [ecx + 0x5c]
mov dword [edx + 4], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x334]
mov edx, dword [eax + ecx*4]
mov eax, dword [edx + 0x58]
add eax, 1
mov ecx, dword [edx + 0x5c]
adc ecx, 0
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x30]
mov esi, dword [ebp - 0x334]
mov edx, dword [edx + esi*4]
mov dword [edx + 0x58], eax
mov dword [edx + 0x5c], ecx
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffffe0
or ecx, 4
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x344], ecx
mov dword [ebp - 0x340], 0
mov dword [ebp - 0x33c], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x344]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x348], edx
mov eax, dword [ebp - 0x348]
cmp dword [eax], 0
jne 0x599d76
jmp 0x59a179
mov dword [ebp - 0x35c], 0
mov dword [ebp - 0x360], 0
mov ecx, dword [ebp - 0x348]
mov edx, dword [ecx]
push edx
call fcn.005a83d0
add esp, 4
and eax, 3
cmp eax, 1
je 0x599daf
mov dword [ebp - 8], 0xb
jmp 0x59c271
mov eax, dword [ebp - 0x348]
movzx ecx, byte [eax + 0x1b]
test ecx, ecx
jne 0x599fcb
mov edx, dword [ebp - 0x348]
movzx eax, byte [edx + 0x1d]
test eax, eax
je 0x599dec
mov ecx, dword [ebp - 0x348]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x340], edx
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x33c], eax
jmp 0x599ea0
lea ecx, [ebp - 0x34c]
push ecx
mov edx, dword [ebp - 0x348]
mov eax, dword [edx]
push eax
call fcn.005a30d0
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x599e12
jmp 0x59c271
cmp dword [ebp - 0x34c], 0
je 0x599e31
mov dword [ebp - 0x340], 1
mov dword [ebp - 0x33c], 0
jmp 0x599ea0
lea ecx, [ebp - 0x340]
push ecx
mov edx, dword [ebp - 0x348]
mov eax, dword [edx]
push eax
call fcn.005a2510
add esp, 8
mov ecx, dword [ebp - 0x340]
mov dword [ebp - 0x340], ecx
mov edx, dword [ebp - 0x33c]
mov dword [ebp - 0x33c], edx
cmp dword [ebp - 0x340], 0xffffffff
jne 0x599e82
cmp dword [ebp - 0x33c], 0x7fffffff
jne 0x599e82
mov eax, dword [ebp - 0x348]
mov byte [eax + 0x1b], 1
jmp 0x599ea0
mov ecx, dword [ebp - 0x340]
add ecx, 1
mov edx, dword [ebp - 0x33c]
adc edx, 0
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x33c], edx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xc], 0
je 0x599f80
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x364], edx
mov ecx, dword [ebp - 0x364]
push ecx
call fcn.00593930
add esp, 4
mov edx, dword [ebp - 0x364]
mov dword [ebp - 0x690], edx
mov eax, dword [ebp - 0x690]
cmp dword [eax], 0xffffffff
jne 0x599ef7
mov ecx, dword [ebp - 0x690]
cmp dword [ecx + 4], 0x7fffffff
je 0x599f05
mov edx, dword [ebp - 0x348]
movzx eax, byte [edx + 0x1b]
test eax, eax
je 0x599f11
mov dword [ebp - 8], 0xd
jmp 0x59c271
mov ecx, dword [ebp - 0x364]
mov edx, dword [ecx]
add edx, 1
mov eax, dword [ecx + 4]
adc eax, 0
mov dword [ebp - 0x698], edx
mov dword [ebp - 0x694], eax
mov ecx, dword [ebp - 0x33c]
cmp ecx, dword [ebp - 0x694]
jg 0x599f69
jl 0x599f4c
mov edx, dword [ebp - 0x340]
cmp edx, dword [ebp - 0x698]
jae 0x599f69
mov eax, dword [ebp - 0x364]
mov ecx, dword [eax]
add ecx, 1
mov edx, dword [eax + 4]
adc edx, 0
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x33c], edx
mov eax, dword [ebp - 0x364]
mov ecx, dword [ebp - 0x340]
mov dword [eax], ecx
mov edx, dword [ebp - 0x33c]
mov dword [eax + 4], edx
cmp dword [ebp - 0x33c], 0x7fffffff
ja 0x599fc1
jb 0x599f97
cmp dword [ebp - 0x340], 0xffffffff
jae 0x599fc1
mov eax, dword [ebp - 0x348]
mov byte [eax + 0x1d], 1
mov ecx, dword [ebp - 0x340]
add ecx, 1
mov edx, dword [ebp - 0x33c]
adc edx, 0
mov eax, dword [ebp - 0x348]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
jmp 0x599fcb
mov ecx, dword [ebp - 0x348]
mov byte [ecx + 0x1d], 0
mov edx, dword [ebp - 0x348]
movzx eax, byte [edx + 0x1b]
test eax, eax
je 0x59a158
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x38]
mov dword [ebp - 0x340], edx
mov eax, dword [ecx + 0x3c]
mov dword [ebp - 0x33c], eax
mov dword [ebp - 0x360], 0
cmp dword [ebp - 0x360], 0
jne 0x59a062
mov ecx, dword [ebp - 0x340]
and ecx, 0xffffff
mov edx, dword [ebp - 0x33c]
and edx, 0
mov dword [ebp - 0x6a0], ecx
mov dword [ebp - 0x69c], edx
mov eax, dword [ebp - 0x6a0]
cmp eax, dword [ebp - 0x340]
jne 0x59a062
mov ecx, dword [ebp - 0x69c]
cmp ecx, dword [ebp - 0x33c]
jne 0x59a062
mov edx, dword [ebp - 0x340]
add edx, 1
mov eax, dword [ebp - 0x33c]
adc eax, 0
mov dword [ebp - 0x340], edx
mov dword [ebp - 0x33c], eax
jmp 0x59a09d
lea ecx, [ebp - 0x340]
push ecx
push 8
call fcn.005ba7d0
add esp, 8
cmp dword [ebp - 0x360], 5
jge 0x59a09d
mov edx, dword [ebp - 0x340]
and edx, 0xffffff
mov eax, dword [ebp - 0x33c]
and eax, 0
mov dword [ebp - 0x340], edx
mov dword [ebp - 0x33c], eax
mov ecx, dword [ebp - 0x340]
or ecx, dword [ebp - 0x33c]
jne 0x59a0ad
jmp 0x59a106
mov edx, dword [ebp - 0x340]
mov dword [ebp - 0x358], edx
mov eax, dword [ebp - 0x33c]
mov dword [ebp - 0x354], eax
lea ecx, [ebp - 0x34c]
push ecx
push 0
mov edx, dword [ebp - 0x354]
push edx
mov eax, dword [ebp - 0x358]
push eax
push 0
push 0
mov ecx, dword [ebp - 0x348]
mov edx, dword [ecx]
push edx
call fcn.005a31e0
add esp, 0x1c
mov dword [ebp - 0x35c], eax
mov eax, dword [ebp - 0x360]
add eax, 1
mov dword [ebp - 0x360], eax
cmp dword [ebp - 0x360], 0x64
jge 0x59a125
cmp dword [ebp - 0x35c], 0
jne 0x59a125
cmp dword [ebp - 0x34c], 0
je 0x599ffc
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x340]
mov dword [ecx + 0x38], edx
mov eax, dword [ebp - 0x33c]
mov dword [ecx + 0x3c], eax
cmp dword [ebp - 0x35c], 0
jne 0x59a158
cmp dword [ebp - 0x34c], 0
jne 0x59a158
mov dword [ebp - 8], 0xd
jmp 0x59c271
mov ecx, dword [ebp - 0x348]
mov byte [ecx + 0x19], 0
mov edx, dword [ebp - 0x348]
mov byte [edx + 0x20], 0
mov eax, dword [ebp - 0x348]
mov dword [eax + 0x68], 0
mov ecx, dword [ebp - 0x18]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 4
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], dx
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x340]
mov dword [ecx], edx
mov eax, dword [ebp - 0x33c]
mov dword [ecx + 4], eax
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x368], edx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x380], edx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x36c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0x36c]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x380]
mov edx, dword [ecx]
mov dword [ebp - 0x378], edx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
and edx, 1
je 0x59a229
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x104]
add ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x104], ecx
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax + 3]
and ecx, 2
je 0x59a249
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x380]
mov ecx, dword [eax]
mov dword [edx + 0x30], ecx
mov eax, dword [eax + 4]
mov dword [edx + 0x34], eax
mov ecx, dword [ebp - 0x37c]
movzx edx, byte [ecx + 0x1d]
test edx, edx
je 0x59a2a2
mov eax, dword [ebp - 0x380]
mov ecx, dword [ebp - 0x37c]
mov dword [ebp - 0x6a4], eax
mov dword [ebp - 0x6a8], ecx
mov edx, dword [ebp - 0x6a4]
mov eax, dword [ebp - 0x6a8]
mov ecx, dword [edx + 4]
cmp ecx, dword [eax + 0x14]
jl 0x59a2a2
jg 0x59a298
mov edx, dword [ebp - 0x6a4]
mov eax, dword [ebp - 0x6a8]
mov ecx, dword [edx]
cmp ecx, dword [eax + 0x10]
jb 0x59a2a2
mov edx, dword [ebp - 0x37c]
mov byte [edx + 0x1d], 0
mov eax, dword [ebp - 0x368]
movzx ecx, word [eax + 0x1c]
and ecx, 1
je 0x59a2cb
mov edx, dword [ebp - 0x368]
mov dword [edx + 0x14], 0
mov eax, dword [ebp - 0x368]
mov dword [eax + 0x18], 0
mov ecx, dword [ebp - 0x37c]
movzx edx, byte [ecx + 0x1e]
test edx, edx
je 0x59a439
mov eax, dword [ebp - 0x37c]
movzx ecx, byte [eax + 0x1f]
test ecx, ecx
jne 0x59a2fd
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx + 0x38]
push eax
call fcn.00594e00
add esp, 4
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ebp - 0x378]
mov dword [ecx + 0x40], edx
mov eax, dword [ebp - 0x374]
mov dword [ecx + 0x44], eax
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ebp - 0x368]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp - 0x368]
mov edx, dword [ebp - 0x368]
mov eax, dword [ecx + 0x14]
cmp eax, dword [edx + 0x24]
je 0x59a349
mov ecx, dword [ebp - 0x37c]
movzx edx, byte [ecx + 0x1f]
test edx, edx
je 0x59a3ab
mov eax, dword [ebp - 0x37c]
mov ecx, dword [ebp - 0x368]
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x38], edx
mov eax, dword [ebp - 0x37c]
movzx ecx, byte [eax + 0x1f]
test ecx, ecx
jne 0x59a3a6
mov edx, dword [ebp - 0x368]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffbf
mov ecx, dword [ebp - 0x368]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x368]
movzx eax, word [edx + 0x1c]
or eax, 0x100
mov ecx, dword [ebp - 0x368]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x368]
mov dword [edx + 0x24], 0
jmp 0x59a42d
mov eax, dword [ebp - 0x37c]
mov ecx, dword [eax + 0x34]
add ecx, 2
push ecx
call fcn.00594c40
add esp, 4
mov edx, dword [ebp - 0x37c]
mov dword [edx + 0x38], eax
mov eax, dword [ebp - 0x37c]
cmp dword [eax + 0x38], 0
jne 0x59a3da
jmp 0x59c242
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx + 0x34]
push edx
mov eax, dword [ebp - 0x368]
mov ecx, dword [eax + 0x14]
push ecx
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx + 0x38]
push eax
call fcn.004e9c70
add esp, 0xc
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebp - 0x37c]
mov ecx, dword [eax + 0x34]
mov byte [edx + ecx], 0
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx + 0x34]
mov ecx, dword [ebp - 0x37c]
mov edx, dword [ecx + 0x38]
mov byte [eax + edx + 1], 0
mov eax, dword [ebp - 0x37c]
mov byte [eax + 0x1c], 0
jmp 0x59a4af
mov ecx, dword [ebp - 0x368]
movzx edx, word [ecx + 0x1c]
and edx, 0x800
je 0x59a45b
mov eax, dword [ebp - 0x368]
mov ecx, dword [eax]
mov dword [ebp - 0x384], ecx
jmp 0x59a465
mov dword [ebp - 0x384], 0
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 3]
and eax, 8
push eax
mov ecx, dword [ebp - 0x384]
push ecx
mov edx, dword [ebp - 0x368]
mov eax, dword [edx + 0x18]
push eax
mov ecx, dword [ebp - 0x368]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x374]
push eax
mov ecx, dword [ebp - 0x378]
push ecx
push 0
mov edx, dword [ebp - 0x37c]
mov eax, dword [edx]
push eax
call fcn.005a4340
add esp, 0x20
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x37c]
mov byte [ecx + 0x19], 0
mov edx, dword [ebp - 0x37c]
mov byte [edx + 0x20], 0
mov eax, dword [ebp - 0x37c]
mov dword [eax + 0x68], 0
cmp dword [ebp - 8], 0
jne 0x59a56f
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xb8], 0
je 0x59a56f
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x10], 0
je 0x59a56f
mov eax, dword [ebp - 0x37c]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [ecx + eax]
mov dword [ebp - 0x388], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x38c], eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
and edx, 4
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
mov dword [ebp - 0x390], edx
mov eax, dword [ebp - 0x374]
push eax
mov ecx, dword [ebp - 0x378]
push ecx
mov edx, dword [ebp - 0x38c]
push edx
mov eax, dword [ebp - 0x388]
push eax
mov ecx, dword [ebp - 0x390]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xb4]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xb8]
call edx
add esp, 0x18
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x39c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x39c]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x3a0], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb8], 0
je 0x59a5c2
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x10], 0
je 0x59a5c2
mov edx, dword [ebp - 0x3a0]
mov eax, dword [edx + 8]
mov dword [ebp - 0x398], eax
mov ecx, dword [edx + 0xc]
mov dword [ebp - 0x394], ecx
mov edx, dword [ebp - 0x3a0]
push edx
call fcn.00592300
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x59a5df
jmp 0x59c271
mov eax, dword [ebp - 0x3a0]
mov ecx, dword [eax]
push ecx
call fcn.005a7460
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x3a0]
mov byte [edx + 0x1d], 0
mov eax, dword [ebp - 0x3a0]
mov dword [eax + 0x68], 0
cmp dword [ebp - 8], 0
jne 0x59a682
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xb8], 0
je 0x59a682
mov edx, dword [ebp - 0x24]
cmp dword [edx + 0x10], 0
je 0x59a682
mov eax, dword [ebp - 0x3a0]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [ecx + eax]
mov dword [ebp - 0x3a4], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x3a8], eax
mov ecx, dword [ebp - 0x394]
push ecx
mov edx, dword [ebp - 0x398]
push edx
mov eax, dword [ebp - 0x3a8]
push eax
mov ecx, dword [ebp - 0x3a4]
push ecx
push 9
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0xb4]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0xb8]
call edx
add esp, 0x18
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
and ecx, 1
je 0x59a6a2
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x104]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x104], eax
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
cmp dword [edx + 4], 0
je 0x59a6c6
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x104]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.00593100
add esp, 8
mov eax, dword [ebp + 8]
mov dword [eax + 0x104], 0
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x3b0], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0x3b0]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x3b4], eax
mov ecx, dword [ebp - 0x3b4]
mov edx, dword [ecx]
mov dword [ebp - 0x3b8], edx
mov eax, dword [ebp - 0x3b4]
push eax
call fcn.00592300
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x59a736
jmp 0x59c271
mov ecx, dword [ebp - 0x3b4]
movzx edx, byte [ecx + 0x22]
test edx, edx
je 0x59a79e
lea eax, [ebp - 0x3c0]
push eax
mov ecx, dword [ebp - 0x3b8]
push ecx
call fcn.005a2510
add esp, 8
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x50]
cdq
mov dword [ebp - 0x6b0], eax
mov dword [ebp - 0x6ac], edx
mov eax, dword [ebp - 0x3bc]
cmp eax, dword [ebp - 0x6ac]
jl 0x59a790
jg 0x59a78b
mov ecx, dword [ebp - 0x3c0]
cmp ecx, dword [ebp - 0x6b0]
jbe 0x59a790
jmp 0x59c220
mov edx, dword [ebp - 0x3c0]
mov dword [ebp - 0x3ac], edx
jmp 0x59a7c7
lea eax, [ebp - 0x3ac]
push eax
mov ecx, dword [ebp - 0x3b8]
push ecx
call fcn.005a25d0
add esp, 8
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x3ac]
cmp eax, dword [edx + 0x50]
jbe 0x59a7c7
jmp 0x59c220
push 0
mov ecx, dword [ebp - 0x3ac]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call fcn.005931c0
add esp, 0xc
test eax, eax
je 0x59a7e5
jmp 0x59c242
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x3ac]
mov dword [eax + 0x18], ecx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 0x10
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x3b4]
movzx eax, byte [edx + 0x22]
test eax, eax
je 0x59a837
mov ecx, dword [ebp - 0x18]
mov edx, dword [ecx + 0x14]
push edx
mov eax, dword [ebp - 0x3ac]
push eax
push 0
mov ecx, dword [ebp - 0x3b8]
push ecx
call fcn.005a2640
add esp, 0x10
mov dword [ebp - 8], eax
jmp 0x59a859
mov edx, dword [ebp - 0x18]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0x3ac]
push ecx
push 0
mov edx, dword [ebp - 0x3b8]
push edx
call fcn.005a2bc0
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x1f], 1
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x3cc], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x3d0], eax
mov ecx, dword [ebp - 0x3d0]
push ecx
call fcn.00592300
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x59a8a3
jmp 0x59c271
mov edx, dword [ebp - 0x3d0]
movzx eax, byte [edx + 0x19]
test eax, eax
je 0x59a8cb
mov ecx, dword [ebp - 0x3d0]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x3c8], edx
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x3c4], eax
jmp 0x59a938
mov ecx, dword [ebp - 0x3d0]
movzx edx, byte [ecx + 0x1e]
test edx, edx
je 0x59a8f3
mov eax, dword [ebp - 0x3d0]
mov ecx, dword [eax + 0x40]
mov dword [ebp - 0x3c8], ecx
mov edx, dword [eax + 0x44]
mov dword [ebp - 0x3c4], edx
jmp 0x59a938
mov eax, dword [ebp - 0x3d0]
movzx ecx, byte [eax + 0x1c]
test ecx, ecx
je 0x59a908
jmp case.0x596950.11
lea edx, [ebp - 0x3c8]
push edx
mov eax, dword [ebp - 0x3d0]
mov ecx, dword [eax]
push ecx
call fcn.005a2510
add esp, 8
mov edx, dword [ebp - 0x3c8]
mov dword [ebp - 0x3c8], edx
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x3c4], eax
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x3c8]
mov dword [ecx], edx
mov eax, dword [ebp - 0x3c4]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x18]
movzx edx, word [ecx + 0x1c]
and edx, 0xffffffe0
or edx, 4
mov eax, dword [ebp - 0x18]
mov word [eax + 0x1c], dx
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x3d4], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0x3d4]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x3d8], eax
mov ecx, dword [ebp - 0x3d8]
mov byte [ecx + 0x1c], 1
mov edx, dword [ebp - 0x3d8]
mov byte [edx + 0x19], 0
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x3e0], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x3e0]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x3e4], edx
mov eax, dword [ebp - 0x3e4]
mov ecx, dword [eax]
mov dword [ebp - 0x3e8], ecx
lea edx, [ebp - 0x3dc]
push edx
mov eax, dword [ebp - 0x3e8]
push eax
call fcn.005a30d0
add esp, 8
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x3e4]
mov dl, byte [ebp - 0x3dc]
mov byte [ecx + 0x1c], dl
mov eax, dword [ebp - 0x3e4]
mov byte [eax + 0x20], 0
mov ecx, dword [ebp - 0x3e4]
mov dword [ecx + 0x68], 0
cmp dword [ebp - 0x3dc], 0
je 0x59aa2b
mov edx, dword [ebp - 0x24]
cmp dword [edx + 8], 0
jle 0x59aa2b
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ebp - 0x3f0], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [edx + eax*4]
mov dword [ebp - 0x3f4], ecx
mov edx, dword [ebp - 0x3f4]
mov eax, dword [edx]
mov dword [ebp - 0x3f8], eax
cmp dword [ebp - 0x3f8], 0
je 0x59aaaf
lea ecx, [ebp - 0x3ec]
push ecx
mov edx, dword [ebp - 0x3f8]
push edx
call fcn.005a2df0
add esp, 8
mov dword [ebp - 8], eax
xor eax, eax
cmp dword [ebp - 0x3ec], 0
sete al
mov ecx, dword [ebp - 0x3f4]
mov byte [ecx + 0x1a], al
mov edx, dword [ebp - 0x3f4]
mov byte [edx + 0x20], 0
mov eax, dword [ebp - 0x3f4]
mov dword [eax + 0x68], 0
jmp 0x59aab9
mov dword [ebp - 0x3ec], 1
mov ecx, dword [ebp - 0x3f4]
mov dl, byte [ebp - 0x3ec]
mov byte [ecx + 0x1c], dl
cmp dword [ebp - 0x3ec], 0
je 0x59aadd
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 4]
cmp dword [edx + 0xd8], 0
je 0x59aaf3
jmp 0x59c2a9
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [eax + ecx*4]
mov dword [ebp - 0x3fc], ecx
cmp dword [ebp - 0x3fc], 0
jne 0x59ab16
jmp case.0x596950.11
mov edx, dword [ebp - 0x3fc]
mov eax, dword [edx]
mov dword [ebp - 0x400], eax
mov ecx, dword [ebp - 0x3fc]
movzx edx, byte [ecx + 0x1c]
test edx, edx
jne 0x59abbf
mov dword [ebp - 0x404], 1
mov eax, dword [ebp - 0x24]
movzx ecx, byte [eax]
cmp ecx, 0x67
jne 0x59ab69
lea edx, [ebp - 0x404]
push edx
mov eax, dword [ebp - 0x400]
push eax
call fcn.005a3860
add esp, 8
mov dword [ebp - 0x6b4], eax
jmp 0x59ab85
lea ecx, [ebp - 0x404]
push ecx
mov edx, dword [ebp - 0x400]
push edx
call fcn.005a3a40
add esp, 8
mov dword [ebp - 0x6b4], eax
mov eax, dword [ebp - 0x6b4]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x3fc]
mov dl, byte [ebp - 0x404]
mov byte [ecx + 0x1c], dl
mov eax, dword [ebp - 0x3fc]
mov dword [eax + 0x68], 0
cmp dword [ebp - 0x404], 0
jne 0x59abbf
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x3fc]
mov byte [eax + 0x19], 0
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x408], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0x408]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x40c], eax
mov ecx, dword [ebp - 0x40c]
mov edx, dword [ecx]
mov dword [ebp - 0x410], edx
cmp dword [ebp - 0x410], 0
je 0x59ac9d
mov eax, dword [ebp - 0x1c]
movzx ecx, word [eax + 0x1c]
and ecx, 0x800
je 0x59ac2d
mov edx, dword [ebp - 0x1c]
push edx
call fcn.005933e0
add esp, 4
mov dword [ebp - 0x6b8], eax
jmp 0x59ac37
mov dword [ebp - 0x6b8], 0
mov eax, dword [ebp - 0x6b8]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x59ac9d
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x418], edx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x414], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
push eax
push 0
push 0
push 0x7127f8
mov eax, dword [ebp - 0x418]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x414]
push ecx
mov edx, dword [ebp - 0x410]
push edx
call fcn.005a4340
add esp, 0x20
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x40c]
mov dword [eax + 0x68], 0
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x41c], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ebp - 0x41c]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x420]
mov edx, dword [ecx]
mov dword [ebp - 0x424], edx
cmp dword [ebp - 0x424], 0
je 0x59ad74
mov eax, dword [ebp - 0x420]
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x434], ecx
mov edx, dword [ebp - 0x24]
mov ax, word [edx + 0xc]
mov word [ebp - 0x430], ax
mov byte [ebp - 0x42e], 0
mov byte [ebp - 0x42d], 0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x42c], edx
lea ecx, [ebp - 0x428]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x434]
push edx
push 0
mov eax, dword [ebp - 0x424]
push eax
call fcn.005a31e0
add esp, 0x1c
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x59ad67
cmp dword [ebp - 0x428], 0
jne 0x59ad67
mov ecx, dword [ebp - 0x424]
push ecx
call fcn.005a7460
add esp, 4
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x420]
mov dword [edx + 0x68], 0
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x438], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x438]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x43c], edx
mov eax, dword [ebp - 0x43c]
mov ecx, dword [eax]
mov dword [ebp - 0x440], ecx
cmp dword [ebp - 0x440], 0
je 0x59ae0b
mov edx, dword [ebp - 0x43c]
movzx eax, byte [edx + 0x1c]
test eax, eax
jne 0x59ae0b
lea ecx, [ebp - 0x448]
push ecx
mov edx, dword [ebp - 0x440]
push edx
call fcn.00592e70
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x59ade3
jmp 0x59c271
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffffe0
or ecx, 4
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x448]
mov dword [eax], ecx
mov edx, dword [ebp - 0x444]
mov dword [eax + 4], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x44c], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x44c]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x450], edx
mov eax, dword [ebp - 0x450]
cmp dword [eax], 0
je 0x59af00
mov ecx, dword [ebp - 0x450]
mov edx, dword [ecx + 0x4c]
mov dword [ebp - 0x460], edx
mov eax, dword [ebp - 0x24]
mov cx, word [eax + 0x10]
mov word [ebp - 0x45c], cx
mov byte [ebp - 0x45a], 0
mov byte [ebp - 0x459], 0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0xc]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x458], eax
mov edx, dword [ebp - 0x450]
mov eax, dword [edx + 0x48]
mov ecx, dword [ebp - 0x24]
mov dl, byte [ecx + 3]
mov byte [eax], dl
lea eax, [ebp - 0x454]
push eax
push 0
push 0
lea ecx, [ebp - 0x460]
push ecx
mov edx, dword [ebp - 0x450]
push edx
call fcn.00592fb0
add esp, 0x14
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x450]
mov ecx, dword [eax + 0x48]
mov byte [ecx], 0
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x28
jne 0x59aedc
mov ecx, dword [ebp - 0x454]
neg ecx
mov dword [ebp - 0x454], ecx
jmp 0x59aeeb
mov edx, dword [ebp - 0x454]
add edx, 1
mov dword [ebp - 0x454], edx
cmp dword [ebp - 0x454], 0
jle 0x59af00
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov dword [ebp - 0x46c], 0
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x8c]
mov dword [ebp - 0x468], eax
jmp 0x59af2f
mov ecx, dword [ebp - 0x468]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x468], edx
cmp dword [ebp - 0x468], 0
je 0x59af76
mov eax, dword [ebp - 0x468]
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x59af74
mov ecx, dword [ebp - 0x468]
movzx edx, byte [ecx + 0x101]
cmp edx, 2
jge 0x59af74
mov eax, dword [ebp - 0x468]
cmp dword [eax + 0x70], 0
jl 0x59af74
mov ecx, dword [ebp - 0x46c]
add ecx, 1
mov dword [ebp - 0x46c], ecx
jmp 0x59af20
cmp dword [ebp - 0x46c], 1
jle 0x59af95
mov dword [ebp - 8], 6
mov edx, dword [ebp + 8]
mov dword [edx + 0x7c], 2
jmp 0x59b026
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x470], ecx
lea edx, [ebp - 0x464]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 0x470]
imul edx, edx, 0x18
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.005a7da0
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
movzx ecx, word [eax + 0x1c]
and ecx, 0xffffffe0
or ecx, 4
mov edx, dword [ebp - 0x18]
mov word [edx + 0x1c], cx
mov eax, dword [ebp - 0x464]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
cmp dword [ebp - 8], 0
jne 0x59b026
cmp dword [ebp - 0x464], 0
je 0x59b026
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 0x464]
push ecx
mov edx, dword [ebp - 0x470]
imul edx, edx, 0x18
mov eax, dword [ebp - 4]
add edx, dword [eax + 8]
push edx
call fcn.005adda0
add esp, 0xc
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx + 4]
push ecx
call fcn.005a7b40
add esp, 8
mov dword [ebp - 8], eax
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x18
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 8]
mov dword [ebp - 0x47c], eax
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx]
cmp eax, 0x32
jne 0x59b082
mov dword [ebp - 0x474], 5
jmp 0x59b08c
mov dword [ebp - 0x474], 2
mov ecx, dword [ebp - 0x474]
push ecx
lea edx, [ebp - 0x478]
push edx
mov eax, dword [ebp - 0x47c]
mov ecx, dword [eax + 4]
push ecx
call fcn.005a7810
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x59b0d8
mov eax, dword [ebp - 0x478]
cdq
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 4
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov dword [ebp - 0x498], eax
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 8], 0
jne 0x59b113
mov edx, dword [ebp - 0x498]
imul edx, edx, 0x18
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 0x14]
movzx eax, word [edx + 0x5a]
and eax, 1
jne 0x59b113
jmp case.0x596950.11
mov ecx, 1
test ecx, ecx
je 0x59b131
cmp dword [ebp - 0x498], 1
jne 0x59b131
mov dword [ebp - 0x6bc], 0x707244
jmp 0x59b13b
mov dword [ebp - 0x6bc], 0x707258
mov edx, dword [ebp - 0x6bc]
mov dword [ebp - 0x480], edx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x490], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x48c], edx
mov eax, dword [ebp + 8]
add eax, 0xf4
mov dword [ebp - 0x488], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x480]
push eax
mov ecx, dword [ebp - 0x498]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx]
push ecx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
mov edx, dword [ebp - 4]
push edx
call fcn.0059e550
add esp, 0x14
mov dword [ebp - 0x494], eax
cmp dword [ebp - 0x494], 0
jne 0x59b1b0
jmp 0x59c242
mov eax, dword [ebp - 4]
mov byte [eax + 0x80], 1
push 0
lea ecx, [ebp - 0x490]
push ecx
push fcn.0058e920
mov edx, dword [ebp - 0x494]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.0058c860
add esp, 0x14
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 4
jne 0x59b1ed
mov ecx, dword [ebp - 0x484]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x494]
push edx
call fcn.00594e00
add esp, 4
mov eax, dword [ebp - 4]
mov byte [eax + 0x80], 0
cmp dword [ebp - 8], 7
jne 0x59b211
jmp 0x59c242
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x49c], edx
mov eax, dword [ebp - 0x49c]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.005bb370
add esp, 8
mov dword [ebp - 8], eax
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.005abee0
add esp, 0xc
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.005ab9c0
add esp, 0xc
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.005bd970
add esp, 0xc
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
mov dword [ebp - 0x4ac], eax
mov ecx, dword [ebp - 0x4ac]
lea edx, [ecx*4 + 4]
push edx
call fcn.00594c40
add esp, 4
mov dword [ebp - 0x4a4], eax
cmp dword [ebp - 0x4a4], 0
jne 0x59b2d0
jmp 0x59c242
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x4a8], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x4b4], 0
jmp 0x59b312
mov eax, dword [ebp - 0x4b4]
add eax, 1
mov dword [ebp - 0x4b4], eax
mov ecx, dword [ebp - 0x4b4]
cmp ecx, dword [ebp - 0x4ac]
jge 0x59b346
mov edx, dword [ebp - 0x4b4]
imul edx, edx, 0x28
add edx, dword [ebp - 0x28]
push edx
call fcn.00593740
add esp, 4
mov ecx, dword [ebp - 0x4b4]
mov edx, dword [ebp - 0x4a4]
mov dword [edx + ecx*4], eax
jmp 0x59b303
mov eax, dword [ebp - 0x4b4]
mov ecx, dword [ebp - 0x4a4]
mov dword [ecx + eax*4], 0
lea edx, [ebp - 0x4a0]
push edx
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x4ac]
push edx
mov eax, dword [ebp - 0x4a4]
push eax
mov ecx, dword [ebp - 0x24]
movzx edx, byte [ecx + 3]
imul edx, edx, 0x18
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
push edx
call fcn.005a8440
add esp, 0x14
mov dword [ebp - 0x4b0], eax
mov eax, dword [ebp - 0x4a0]
cdq
mov ecx, dword [ebp - 0x4a8]
mov esi, dword [ecx]
sub esi, eax
mov eax, dword [ecx + 4]
sbb eax, edx
mov ecx, dword [ebp - 0x4a8]
mov dword [ecx], esi
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x28]
push edx
call fcn.00593a20
add esp, 4
cmp dword [ebp - 0x4a0], 0
jne 0x59b3d2
jmp 0x59b3ee
push fcn.00594e00
push 1
push 0xffffffffffffffff
mov eax, dword [ebp - 0x4b0]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00593cd0
add esp, 0x14
movzx edx, byte [ebp - 0x1d]
push edx
mov eax, dword [ebp - 0x28]
push eax
call fcn.00593180
add esp, 8
mov ecx, dword [ebp - 0x4a4]
push ecx
call fcn.00594e00
add esp, 4
jmp case.0x596950.11
mov edx, dword [ebp - 0x28]
push edx
call fcn.00593740
add esp, 4
push edx
push eax
mov eax, dword [ebp + 8]
add eax, 0x58
push eax
call fcn.005bc430
add esp, 0xc
cmp eax, 7
jne 0x59b43a
jmp 0x59c242
jmp case.0x596950.11
mov ecx, dword [ebp - 4]
cmp dword [ecx + 0xd8], 0
je 0x59b450
jmp 0x59c2a9
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 4
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp + 8]
add eax, 0x58
push eax
call fcn.005bc560
add esp, 8
cmp eax, 0x65
jne 0x59b49a
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
mov dword [ebp - 0x4b8], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x64]
add eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x64], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x4b8]
cmp eax, dword [edx + 0x68]
jl 0x59b50b
mov ecx, dword [ebp - 0x4b8]
add ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x68], ecx
mov eax, dword [ebp - 0x4b8]
add eax, 1
imul eax, eax, 0x18
push eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x6c]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.00594890
add esp, 0xc
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x6c], eax
mov edx, dword [ebp + 8]
cmp dword [edx + 0x6c], 0
jne 0x59b50b
jmp 0x59c242
mov eax, dword [ebp - 0x4b8]
imul eax, eax, 0x18
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x6c]
mov dword [ebp - 0x4bc], eax
mov edx, dword [ebp - 0x4bc]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x30]
mov dword [edx], ecx
mov eax, dword [eax + 0x34]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x4bc]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x104]
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 8]
add ecx, 0x58
mov edx, dword [ebp - 0x4bc]
add edx, 0xc
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [ebp + 8]
add edx, 0x58
push edx
call fcn.005bc410
add esp, 4
jmp case.0x596950.11
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
sub ecx, 1
mov edx, dword [ebp + 8]
mov dword [edx + 0x64], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
imul ecx, ecx, 0x18
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x6c]
mov dword [ebp - 0x4c0], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x4c0]
mov edx, dword [ecx]
mov dword [eax + 0x30], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0x34], ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x4c0]
mov ecx, dword [eax + 8]
mov dword [edx + 0x104], ecx
mov edx, dword [ebp + 8]
add edx, 0x58
push edx
call fcn.005bc600
add esp, 4
mov eax, dword [ebp - 0x4c0]
add eax, 0xc
mov ecx, dword [ebp + 8]
add ecx, 0x58
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00593930
add esp, 4
mov edx, dword [ebp - 0x1c]
push edx
call fcn.00593930
add esp, 4
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x6c0], eax
mov dword [ebp - 0x6c4], ecx
mov edx, dword [ebp - 0x6c0]
mov eax, dword [ebp - 0x6c4]
mov ecx, dword [edx + 4]
cmp ecx, dword [eax + 4]
jg 0x59b658
jl 0x59b648
mov edx, dword [ebp - 0x6c0]
mov eax, dword [ebp - 0x6c4]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jae 0x59b658
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
jmp case.0x596950.11
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x6c8], ecx
mov edx, dword [ebp - 0x6c8]
cmp dword [edx + 4], 0
jl 0x59b68b
jg 0x59b67f
mov eax, dword [ebp - 0x6c8]
cmp dword [eax], 0
jbe 0x59b68b
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x6cc], eax
mov ecx, dword [ebp - 0x6cc]
cmp dword [ecx + 4], 0
jg 0x59b6be
jl 0x59b6b2
mov edx, dword [ebp - 0x6cc]
cmp dword [edx], 0
jae 0x59b6be
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x6d0], edx
mov eax, dword [ebp - 0x6d0]
mov ecx, dword [ebp - 0x6d0]
mov edx, dword [eax]
or edx, dword [ecx + 4]
jne 0x59b6eb
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x10], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
movzx eax, byte [edx + 3]
mov dword [ebp - 0x4cc], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x4d4], edx
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x4d0], edx
mov dword [ebp - 0x4c8], 0
jmp 0x59b748
mov eax, dword [ebp - 0x4c8]
add eax, 1
mov dword [ebp - 0x4c8], eax
mov ecx, dword [ebp - 0x4d4]
add ecx, 0x28
mov dword [ebp - 0x4d4], ecx
mov edx, dword [ebp - 0x4c8]
cmp edx, dword [ebp - 0x4cc]
jge 0x59b77c
mov eax, dword [ebp - 0x4c8]
mov ecx, dword [ebp - 0x4d0]
mov edx, dword [ebp - 0x4d4]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0x4d4]
push eax
call fcn.00596550
add esp, 4
jmp 0x59b72a
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x518], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x4c4], ecx
mov eax, dword [ebp - 0x4c4]
mov dword [ebp - 0x4e8], eax
mov ecx, dword [ebp - 0x4c4]
mov edx, dword [ecx + 0x18]
add edx, 1
mov eax, dword [ebp - 0x4c4]
mov dword [eax + 0x18], edx
mov ecx, 1
mov word [ebp - 0x4f4], cx
mov dword [ebp - 0x4fc], 0
mov dword [ebp - 0x4ec], 0
mov dword [ebp - 0x4f0], 0
mov edx, dword [ebp - 4]
mov dword [ebp - 0x500], edx
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4e0], 0
mov eax, dword [ebp - 0x518]
movzx ecx, byte [eax + 3]
test ecx, ecx
je 0x59b81f
mov edx, dword [ebp - 0x24]
mov eax, dword [edx - 4]
mov dword [ebp - 0x4e0], eax
mov ecx, dword [ebp - 0x4d0]
push ecx
mov edx, dword [ebp - 0x4cc]
push edx
lea eax, [ebp - 0x518]
push eax
mov ecx, dword [ebp - 0x518]
mov edx, dword [ecx + 0x14]
call edx
add esp, 0xc
cmp dword [ebp - 0x4e4], 0
je 0x59b878
push 0
lea eax, [ebp - 0x510]
push eax
call fcn.0058b2b0
add esp, 4
push eax
mov ecx, dword [ebp + 8]
add ecx, 0xf4
push ecx
call fcn.005949f0
add esp, 0xc
mov edx, dword [ebp - 0x4e4]
mov dword [ebp - 8], edx
lea eax, [ebp - 0x510]
push eax
call fcn.00593700
add esp, 4
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x51c], edx
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x51c]
push eax
call fcn.00593600
add esp, 8
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 1
jne 0x59b8e4
push 0
mov ecx, dword [ebp - 0x51c]
push ecx
call fcn.0058b2b0
add esp, 4
push eax
mov edx, dword [ebp + 8]
add edx, 0xf4
push edx
call fcn.005949f0
add esp, 0xc
movzx eax, byte [ebp - 0x1d]
push eax
mov ecx, dword [ebp - 0x51c]
push ecx
call fcn.00593180
add esp, 8
mov edx, dword [ebp - 0x51c]
push edx
call fcn.00593b30
add esp, 4
test eax, eax
je 0x59b910
jmp 0x59c220
jmp case.0x596950.11
xor eax, eax
je 0x59b91e
jmp 0x59c26a
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp + 8]
add edx, 0xf4
push edx
call fcn.005bc680
add esp, 8
mov dword [ebp - 8], eax
xor eax, eax
je 0x59b940
jmp 0x59c26a
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
imul edx, edx, 0x18
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 8]
mov edx, dword [ecx + edx + 4]
mov dword [ebp - 0x520], edx
mov eax, dword [ebp - 0x520]
push eax
call fcn.005a0e10
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0x65
jne 0x59b989
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], 0
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0
jne 0x59b9a5
mov ecx, dword [ebp - 4]
push ecx
call fcn.00593130
add esp, 4
jmp 0x59b9af
mov edx, dword [ebp + 8]
mov byte [edx + 0xff], 1
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x528], ecx
mov edx, dword [ebp - 0x24]
mov al, byte [edx + 0xc]
mov byte [ebp - 0x521], al
movzx ecx, byte [ebp - 0x521]
push ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0x528]
imul ecx, ecx, 0x18
mov edx, dword [ebp - 4]
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx + 4]
push ecx
call fcn.005a9b50
add esp, 0xc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 6
jne 0x59ba2c
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x52c], eax
push 0
mov ecx, dword [ebp - 0x52c]
push ecx
push str.database_table_is_locked:
mov edx, dword [ebp + 8]
add edx, 0xf4
push edx
call fcn.005949f0
add esp, 0x10
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.005aae80
add esp, 8
mov dword [ebp - 8], eax
jmp case.0x596950.11
mov eax, dword [ebp + 8]
add eax, 0xf4
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.005aa8b0
add esp, 0x10
mov dword [ebp - 8], eax
jmp case.0x596950.11
mov eax, dword [ebp + 8]
mov byte [eax + 0x101], 2
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
push ecx
mov edx, dword [ebp - 4]
push edx
call fcn.005aabc0
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov byte [eax + 0x101], 0
jmp case.0x596950.11
mov dword [ebp - 0x53c], 0
mov dword [ebp - 0x534], 0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
mov dword [ebp - 0x538], edx
mov eax, dword [ebp - 0x538]
mov ecx, dword [eax]
mov dword [ebp - 0x530], ecx
xor edx, edx
je 0x59bae4
jmp 0x59c26a
lea eax, [ebp - 0x534]
push eax
mov ecx, dword [ebp - 0x538]
push ecx
mov edx, dword [ebp - 0x530]
mov eax, dword [edx + 0x18]
call eax
add esp, 8
mov dword [ebp - 8], eax
xor ecx, ecx
je 0x59bb0c
jmp 0x59c26a
cmp dword [ebp - 8], 0
jne 0x59bb8d
mov edx, dword [ebp - 0x534]
mov eax, dword [ebp - 0x538]
mov dword [edx], eax
push 0
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x24]
sub ecx, 0x14
push ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.0059c540
add esp, 0x14
mov dword [ebp - 0x53c], eax
cmp dword [ebp - 0x53c], 0
je 0x59bb71
mov edx, dword [ebp - 0x53c]
mov eax, dword [ebp - 0x534]
mov dword [edx + 0x60], eax
mov ecx, dword [ebp - 0x534]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x53c]
mov ecx, dword [edx]
mov dword [eax + 0x64], ecx
jmp 0x59bb8d
mov edx, dword [ebp - 4]
mov byte [edx + 0x1e], 1
mov eax, dword [ebp - 0x534]
push eax
mov ecx, dword [ebp - 0x530]
mov edx, dword [ecx + 0x1c]
call edx
add esp, 4
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x540], ecx
mov eax, dword [ebp - 0x540]
add eax, 0x28
mov dword [ebp - 0x548], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov edx, dword [ecx + edx*4]
mov dword [ebp - 0x54c], edx
mov eax, dword [ebp - 0x54c]
mov ecx, dword [eax + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [ebp - 0x544], eax
mov ecx, dword [ebp - 0x548]
mov edx, dword [ecx]
mov dword [ebp - 0x554], edx
mov eax, dword [ebp - 0x540]
mov ecx, dword [eax]
mov dword [ebp - 0x550], ecx
mov dword [ebp - 0x558], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x560], eax
mov dword [ebp - 0x55c], 0
jmp 0x59bc2b
mov ecx, dword [ebp - 0x55c]
add ecx, 1
mov dword [ebp - 0x55c], ecx
mov edx, dword [ebp - 0x55c]
cmp edx, dword [ebp - 0x554]
jge 0x59bc74
mov eax, dword [ebp - 0x55c]
add eax, 1
imul eax, eax, 0x28
add eax, dword [ebp - 0x548]
mov ecx, dword [ebp - 0x55c]
mov edx, dword [ebp - 0x560]
mov dword [edx + ecx*4], eax
mov eax, dword [ebp - 0x55c]
mov ecx, dword [ebp - 0x560]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00596550
add esp, 4
jmp 0x59bc1c
xor eax, eax
je 0x59bc7d
jmp 0x59c26a
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x101], 1
mov edx, dword [ebp - 0x560]
push edx
mov eax, dword [ebp - 0x554]
push eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x10]
push edx
mov eax, dword [ebp - 0x550]
push eax
mov ecx, dword [ebp - 0x54c]
mov edx, dword [ecx + 0x60]
push edx
mov eax, dword [ebp - 0x544]
mov ecx, dword [eax + 0x20]
call ecx
add esp, 0x14
mov dword [ebp - 8], eax
mov edx, dword [ebp + 8]
mov byte [edx + 0x101], 0
cmp dword [ebp - 8], 0
jne 0x59bcec
mov eax, dword [ebp - 0x54c]
mov ecx, dword [eax + 0x60]
push ecx
mov edx, dword [ebp - 0x544]
mov eax, dword [edx + 0x28]
call eax
add esp, 4
mov dword [ebp - 0x558], eax
xor ecx, ecx
je 0x59bcf5
jmp 0x59c26a
cmp dword [ebp - 0x558], 0
je 0x59bd0a
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 8]
sub eax, 1
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x54c]
mov byte [ecx + 0x1c], 0
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x568], eax
mov ecx, dword [ebp - 0x568]
movzx edx, byte [ecx + 0x1c]
test edx, edx
je 0x59bd41
jmp case.0x596950.11
mov eax, dword [ebp - 0x568]
mov ecx, dword [eax + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [ebp - 0x564], eax
xor ecx, ecx
je 0x59bd5d
jmp 0x59c26a
lea edx, [ebp - 0x570]
push edx
mov eax, dword [ebp - 0x568]
mov ecx, dword [eax + 0x60]
push ecx
mov edx, dword [ebp - 0x564]
mov eax, dword [edx + 0x30]
call eax
add esp, 8
mov dword [ebp - 8], eax
xor ecx, ecx
je 0x59bd88
jmp 0x59c26a
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + 0x1c]
and eax, 0xffffffe0
or eax, 4
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x1c], ax
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x570]
mov dword [edx], eax
mov ecx, dword [ebp - 0x56c]
mov dword [edx + 4], ecx
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x5c0], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0xc]
imul edx, edx, 0x28
mov eax, dword [ebp + 8]
add edx, dword [eax + 0x4c]
mov dword [ebp - 0x574], edx
mov ecx, dword [ebp - 0x5c0]
movzx edx, byte [ecx + 0x1c]
test edx, edx
je 0x59be01
mov eax, dword [ebp - 0x574]
push eax
call fcn.00593a20
add esp, 4
jmp case.0x596950.11
mov ecx, dword [ebp - 0x5c0]
mov edx, dword [ecx + 0x60]
mov eax, dword [edx]
mov ecx, dword [eax]
mov dword [ebp - 0x5bc], ecx
push 0x40
push 0
lea edx, [ebp - 0x5b8]
push edx
call fcn.004e9ba0
add esp, 0xc
mov eax, dword [ebp - 0x574]
push eax
lea ecx, [ebp - 0x5b0]
push ecx
call fcn.00593c80
add esp, 8
movzx edx, word [ebp - 0x594]
and edx, 0xffffffe0
or edx, 1
mov word [ebp - 0x594], dx
xor eax, eax
je 0x59be5a
jmp 0x59c26a
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
push edx
lea eax, [ebp - 0x5b8]
push eax
mov ecx, dword [ebp - 0x5c0]
mov edx, dword [ecx + 0x60]
push edx
mov eax, dword [ebp - 0x5bc]
mov ecx, dword [eax + 0x2c]
call ecx
add esp, 0xc
mov dword [ebp - 8], eax
movzx edx, byte [ebp - 0x1d]
push edx
lea eax, [ebp - 0x5b0]
push eax
call fcn.00593180
add esp, 8
lea ecx, [ebp - 0x5b0]
push ecx
mov edx, dword [ebp - 0x574]
push edx
call fcn.00593c80
add esp, 8
xor eax, eax
je 0x59beb6
jmp 0x59c26a
mov ecx, dword [ebp - 0x574]
push ecx
call fcn.00593b30
add esp, 4
test eax, eax
je 0x59bece
jmp 0x59c220
jmp case.0x596950.11
mov dword [ebp - 0x5c4], 0
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x5cc], eax
mov ecx, dword [ebp - 0x5cc]
movzx edx, byte [ecx + 0x1c]
test edx, edx
je 0x59bf05
jmp case.0x596950.11
mov eax, dword [ebp - 0x5cc]
mov ecx, dword [eax + 0x60]
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [ebp - 0x5c8], eax
xor ecx, ecx
je 0x59bf21
jmp 0x59c26a
mov edx, dword [ebp + 8]
mov byte [edx + 0x101], 1
mov eax, dword [ebp - 0x5cc]
mov ecx, dword [eax + 0x60]
push ecx
mov edx, dword [ebp - 0x5c8]
mov eax, dword [edx + 0x24]
call eax
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 8]
mov byte [ecx + 0x101], 0
cmp dword [ebp - 8], 0
jne 0x59bf74
mov edx, dword [ebp - 0x5cc]
mov eax, dword [edx + 0x60]
push eax
mov ecx, dword [ebp - 0x5c8]
mov edx, dword [ecx + 0x28]
call edx
add esp, 4
mov dword [ebp - 0x5c4], eax
xor eax, eax
je 0x59bf7d
jmp 0x59c26a
cmp dword [ebp - 0x5c4], 0
jne 0x59bf92
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 8]
sub edx, 1
mov dword [ebp - 0x10], edx
jmp case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x5d4], ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
imul eax, eax, 0x28
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x4c]
mov dword [ebp - 0x5d0], eax
mov edx, dword [ebp - 0x5d0]
movzx eax, word [edx + 0x1c]
and eax, 0x12
jne 0x59bfe4
movzx ecx, byte [ebp - 0x1d]
push ecx
mov edx, dword [ebp - 0x5d0]
push edx
call fcn.00593520
add esp, 8
test eax, eax
je 0x59bfe4
jmp 0x59c242
xor eax, eax
je 0x59bfed
jmp 0x59c26a
mov ecx, dword [ebp - 0x5d4]
push ecx
call fcn.005a9de0
add esp, 4
mov edx, dword [ebp - 0x5d0]
mov eax, dword [edx + 0x14]
push eax
mov ecx, dword [ebp - 0x5d4]
push ecx
mov edx, dword [ebp - 0x5d4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x4c]
call ecx
add esp, 8
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x5d4]
push edx
mov eax, dword [ebp - 4]
push eax
call fcn.005a9e00
add esp, 8
xor ecx, ecx
je 0x59c03c
jmp 0x59c26a
jmp case.0x596950.11
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x5dc], eax
mov ecx, dword [ebp - 0x5dc]
mov edx, dword [ecx]
mov dword [ebp - 0x5d8], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x5e0], ecx
mov edx, dword [ebp - 0x5d8]
cmp dword [edx + 0x34], 0
jne 0x59c097
push 0
push str.read_only_table
mov eax, dword [ebp + 8]
add eax, 0xf4
push eax
call fcn.005949f0
add esp, 0xc
mov dword [ebp - 8], 1
jmp 0x59c1b0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
mov dword [ebp - 0x5ec], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0xc]
imul ecx, ecx, 0x28
mov edx, dword [ebp + 8]
add ecx, dword [edx + 0x4c]
mov dword [ebp - 0x5e8], ecx
mov dword [ebp - 0x5e4], 0
jmp 0x59c0d3
mov eax, dword [ebp - 0x5e4]
add eax, 1
mov dword [ebp - 0x5e4], eax
mov ecx, dword [ebp - 0x5e4]
cmp ecx, dword [ebp - 0x5e0]
jge 0x59c116
mov edx, dword [ebp - 0x5e8]
push edx
call fcn.00596550
add esp, 4
mov eax, dword [ebp - 0x5e4]
mov ecx, dword [ebp - 0x5ec]
mov edx, dword [ebp - 0x5e8]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0x5e8]
add eax, 0x28
mov dword [ebp - 0x5e8], eax
jmp 0x59c0c4
xor ecx, ecx
je 0x59c11f
jmp 0x59c26a
mov edx, dword [ebp - 0x5dc]
push edx
call fcn.005a9de0
add esp, 4
lea eax, [ebp - 0x5f8]
push eax
mov ecx, dword [ebp - 0x5ec]
push ecx
mov edx, dword [ebp - 0x5e0]
push edx
mov eax, dword [ebp - 0x5dc]
push eax
mov ecx, dword [ebp - 0x5d8]
mov edx, dword [ecx + 0x34]
call edx
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x5dc]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.005a9e00
add esp, 8
xor edx, edx
je 0x59c177
jmp 0x59c26a
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0
je 0x59c19b
cmp dword [ebp - 8], 0
jne 0x59c19b
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x5f8]
mov dword [ecx + 0x30], edx
mov eax, dword [ebp - 0x5f4]
mov dword [ecx + 0x34], eax
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x104]
add edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x104], edx
jmp case.0x596950.11
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x10], 0
je case.0x596950.11
mov edx, dword [ebp - 4]
cmp dword [edx + 0x94], 0
je case.0x596950.11
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 0x10]
push ecx
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x98]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x94]
call edx
add esp, 8
jmp 0x59678e
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 8]
mov dword [eax + 0x74], ecx
mov dword [ebp - 8], 1
mov edx, dword [ebp + 8]
push edx
call fcn.00591410
add esp, 4
mov eax, dword [ebp + 8]
add eax, 0x114
push eax
call fcn.005b4a10
add esp, 4
mov eax, dword [ebp - 8]
jmp 0x59c2df
push 0
push str.string_or_blob_too_big
mov ecx, dword [ebp + 8]
add ecx, 0xf4
push ecx
call fcn.005949f0
add esp, 0xc
mov dword [ebp - 8], 0x12
jmp 0x59c1eb
mov edx, dword [ebp - 4]
mov byte [edx + 0x1e], 1
push 0
push 0x7072e0
mov eax, dword [ebp + 8]
add eax, 0xf4
push eax
call fcn.005949f0
add esp, 0xc
mov dword [ebp - 8], 7
jmp 0x59c1eb
mov dword [ebp - 8], 0x15
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x1e]
test edx, edx
je 0x59c283
mov dword [ebp - 8], 7
push 0
mov eax, dword [ebp - 8]
push eax
call fcn.0058d030
add esp, 4
push eax
mov ecx, dword [ebp + 8]
add ecx, 0xf4
push ecx
call fcn.005949f0
add esp, 0xc
jmp 0x59c1eb
mov dword [ebp - 8], 9
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
mov dword [edx + 0x74], eax
push 0
mov ecx, dword [ebp - 8]
push ecx
call fcn.0058d030
add esp, 4
push eax
mov edx, dword [ebp + 8]
add edx, 0xf4
push edx
call fcn.005949f0
add esp, 0xc
jmp 0x59c1eb
pop esi
mov esp, ebp
pop ebp
ret