Function at 0x5815d4
Capabilities:
Enumerate pe sections
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffeb0
mov edi, eax
xor eax, eax
xor ecx, ecx
mov dword [esp], eax
mov edx, dword [edi + 4]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov ebx, dword [edi]
mov byte [esp + 0xc], 0
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 0x4d]
xor edx, edx
mov byte [esp + 0xd], cl
xor ecx, ecx
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov eax, dword [edi + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, edi
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x30], edx
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x34], edx
call fcn.0057f23c
cmp dword [edi + 0x58], 7
jne 0x581645
jmp 0x58724a
xor edx, edx
mov dword [edi + 0x58], edx
xor ecx, ecx
mov dword [edi + 0x14], ecx
xor ecx, ecx
mov dword [ebx + 0x1b4], ecx
cmp dword [ebx + 0xe0], 0
jne 0x5872aa
cmp dword [ebx + 0x114], 0
setne al
and eax, 1
mov dword [esp + 0x10], eax
mov edx, dword [edi + 0x54]
mov dword [esp], edx
cmp dword [esp + 8], 0
jne 0x5871af
cmp byte [ebx + 0x38], 0
jne 0x58724a
mov esi, dword [esp]
shl esi, 2
lea esi, [esi + esi*4]
add esi, dword [esp + 4]
cmp dword [esp + 0x10], 0
je 0x5816d7
mov eax, dword [ebx + 0x11c]
cmp eax, dword [esp + 0x14]
jne 0x5816d3
mov eax, dword [ebx + 0x118]
call dword [ebx + 0x114]
test eax, eax
je 0x5816cd
mov dword [esp + 8], 9
jmp 0x5871af
xor edx, edx
mov dword [esp + 0x14], edx
inc dword [esp + 0x14]
test byte [esi + 2], 2
je 0x58170d
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
test word [ecx + 0x1c], 0x2460
je 0x581703
mov eax, dword [esp + 0x24]
call fcn.00591e30
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 4
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x94
ja case.0x58171d.0
jmp dword [ecx*4 + 0x581724]
cmp dword [ebx + 0xe0], 0
jne 0x5872aa
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov word [ebp + 0x1c], 4
mov eax, dword [esp]
cdq
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov word [ebp + 0x1c], 4
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x68], eax
mov eax, dword [esp]
cdq
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], edx
mov ecx, dword [esp + 0x68]
mov dword [esp], ecx
jmp case.0x58171d.0
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
je case.0x58171d.0
cmp dword [esi + 4], 0
jne 0x581a9e
cmp dword [edi + 0xa0], 0
je 0x581a9e
mov edx, dword [edi + 0xa0]
mov dword [esp + 0x38], edx
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 4]
mov dword [edi + 0xa0], eax
mov eax, ebx
dec dword [edi + 0xa8]
mov edx, dword [edi + 0x60]
call fcn.00581028
mov eax, dword [esp + 0x38]
call fcn.0057fa5c
mov dword [esp], eax
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x30], edx
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x34], edx
cmp dword [esi + 8], 4
jne 0x581a8b
mov ecx, dword [esp]
lea ecx, [ecx + ecx*4]
mov esi, dword [edi + 4]
mov eax, dword [esi + ecx*4 + 8]
dec eax
mov dword [esp], eax
mov edx, dword [edi + 4]
mov dword [esp + 4], edx
mov ecx, dword [edi + 8]
mov dword [esp + 0x18], ecx
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
mov dword [edi + 0x58], ecx
mov al, byte [esi + 8]
mov byte [edi + 0x5c], al
mov edx, dword [esp]
mov dword [edi + 0x54], edx
cmp dword [esi + 0x10], 0
je 0x581aef
mov ecx, dword [esi + 0x10]
push ecx
push 0x5c8c0c
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00596f9c
add esp, 0x10
mov edx, dword [esi + 0x10]
push edx
mov ecx, dword [edi + 0x98]
push ecx
mov eax, dword [esp + 8]
push eax
push str.abort_at__d_in___s_:__s
mov edx, dword [esi + 4]
push edx
call fcn.0059653c
add esp, 0x14
jmp 0x581b12
cmp dword [edi + 0x58], 0
je 0x581b12
mov ecx, dword [edi + 0x98]
push ecx
mov eax, dword [esp + 4]
push eax
push str.constraint_failed_at__d_in___s_
mov edx, dword [esi + 4]
push edx
call fcn.0059653c
add esp, 0x10
mov eax, edi
call fcn.00580158
mov dword [esp + 8], eax
cmp dword [esp + 8], 5
jne 0x581b35
mov edx, 5
mov dword [esp + 8], edx
mov dword [edi + 0x58], edx
jmp 0x58720d
cmp dword [edi + 0x58], 0
je 0x581b42
mov eax, 1
jmp 0x581b47
mov eax, 0x65
mov dword [esp + 8], eax
jmp 0x58720d
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x10]
mov edx, dword [eax]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 4]
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 8
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x10]
mov ecx, dword [edx]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0xc], ecx
jmp case.0x58171d.0
mov byte [esi], 9
mov eax, dword [esi + 0x10]
call fcn.00590a48
mov dword [esi + 4], eax
xor edx, edx
mov dl, byte [esp + 0xd]
dec edx
je 0x581c30
push 1
push 0
or ecx, 0xffffffff
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x2c]
call fcn.0059231c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0x12
je 0x58722b
xor edx, edx
mov eax, dword [esp + 0x24]
mov dl, byte [esp + 0xd]
call fcn.00591b6c
test eax, eax
jne 0x58724a
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ecx + 0x24], eax
mov edx, dword [esp + 0x24]
or word [edx + 0x1c], 0x800
mov ecx, dword [esp + 0x24]
and word [ecx + 0x1c], 0xfbff
cmp byte [esi + 1], 0xff
jne 0x581c18
mov edx, dword [esi + 0x10]
mov eax, ebx
call fcn.00596c18
mov byte [esi + 1], 0xff
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 4]
mov dword [esi + 0x10], ecx
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x18]
mov dword [esi + 4], edx
mov ecx, dword [esi + 4]
cmp ecx, dword [ebx + 0x50]
jle case.0x58171d.9
jmp 0x58722b
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], 0xa02
mov edx, dword [esp + 0x24]
mov eax, dword [esi + 0x10]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 4]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp case.0x58171d.0
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
mov dword [esp + 0x68], edx
cmp dword [esi + 4], 0
je 0x581c81
mov cx, 0x101
jmp 0x581c85
mov cx, 1
mov word [esp + 0x6c], cx
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], cx
jmp 0x581cbf
add dword [esp + 0x24], 0x28
mov edx, dword [esp + 0x24]
test word [edx + 0x1c], 0x2460
je 0x581cae
mov eax, dword [esp + 0x24]
call fcn.00591e30
mov edx, dword [esp + 0x24]
mov cx, word [esp + 0x6c]
mov word [edx + 0x1c], cx
dec dword [esp + 0x68]
cmp dword [esp + 0x68], 0
jg 0x581c94
jmp case.0x58171d.0
push 0
push 0
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x2c]
call fcn.0059231c
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp case.0x58171d.0
mov edx, dword [esi + 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [edi + 0x44]
add edx, 0xffffffd8
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x68]
call fcn.00592238
test eax, eax
je 0x581d13
jmp 0x58722b
mov ecx, 0x800
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
call fcn.0059225c
jmp case.0x58171d.0
mov edx, dword [esi + 0xc]
inc edx
mov dword [esp + 0x6c], edx
mov ecx, dword [esi + 4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x74], ecx
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
jmp 0x581d91
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x24]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ecx + 0x24], eax
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.005922ec
mov edx, dword [esp + 0x68]
mov dword [ebp + 0x24], edx
add ebp, 0x28
add dword [esp + 0x24], 0x28
mov ecx, dword [esp + 0x6c]
add dword [esp + 0x6c], 0xffffffff
test ecx, ecx
jne 0x581d63
jmp case.0x58171d.0
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x68], ecx
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov ecx, 0x1000
mov edx, ebp
mov eax, dword [esp + 0x24]
call fcn.0059225c
mov edx, dword [esp + 0x24]
test byte [edx + 0x1d], 0x10
je 0x581df5
mov eax, dword [esp + 0x24]
call fcn.00591c44
test eax, eax
je 0x581df5
jmp 0x58724a
mov edx, dword [esp + 0x68]
add dword [esp + 0x68], 0xffffffff
test edx, edx
je case.0x58171d.0
add dword [esp + 0x24], 0x28
add ebp, 0x28
jmp 0x581dc9
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
mov ecx, 0x1000
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov edx, ebp
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
call fcn.0059225c
jmp case.0x58171d.0
xor edx, edx
mov eax, edi
call fcn.005800f0
mov dword [esp + 8], eax
test eax, eax
je 0x581e5a
jmp case.0x58171d.0
mov edx, 1
mov eax, edi
call fcn.0057fffc
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x581e76
jmp case.0x58171d.0
mov edx, dword [edi + 0x50]
add edx, 2
or edx, 1
mov dword [edi + 0x50], edx
mov ecx, dword [esi + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
xor eax, eax
mov dword [edi + 0x14], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
jmp 0x581ef0
mov eax, dword [esp + 0x6c]
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x68]
test byte [edx + ecx*8 + 0x1d], 0x10
je 0x581ec6
shl eax, 3
lea eax, [eax + eax*4]
add eax, edx
call fcn.00591c44
test eax, eax
je 0x581ec6
jmp 0x58724a
mov eax, dword [esp + 0x6c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x68]
call fcn.00591cf4
mov eax, dword [esp + 0x6c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x68]
call fcn.005813b4
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, dword [esi + 8]
jl 0x581e9e
cmp byte [ebx + 0x38], 0
jne 0x58724a
mov ecx, dword [esp]
inc ecx
mov dword [edi + 0x54], ecx
mov dword [esp + 8], 0x64
jmp 0x58720d
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl eax, 3
shl ebp, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov cx, word [ebp + 0x1c]
mov esi, dword [esp + 0x1c]
or cx, word [esi + 0x1c]
test cl, 1
je 0x581f66
mov eax, dword [esp + 0x24]
call fcn.00592110
jmp case.0x58171d.0
test byte [ebp + 0x1d], 0x40
je 0x581f75
mov eax, ebp
call fcn.00591ca0
jmp 0x581f77
xor eax, eax
test eax, eax
jne 0x58724a
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1d], 0x40
je 0x581f94
mov eax, dword [esp + 0x1c]
call fcn.00591ca0
jmp 0x581f96
xor eax, eax
test eax, eax
jne 0x58724a
test byte [ebp + 0x1c], 0x12
jne 0x581fba
xor edx, edx
mov eax, ebp
mov dl, byte [esp + 0xd]
call fcn.00591d44
test eax, eax
je 0x581fba
jmp 0x58724a
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1c], 0x12
jne 0x581fdc
xor edx, edx
mov eax, dword [esp + 0x1c]
mov dl, byte [esp + 0xd]
call fcn.00591d44
test eax, eax
je 0x581fdc
jmp 0x58724a
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + 0x18]
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov eax, dword [ebx + 0x50]
cdq
cmp edx, dword [esp + 0x6c]
jne 0x582004
cmp eax, dword [esp + 0x68]
jae 0x58200b
jmp 0x58722b
jge 0x58200b
jmp 0x58722b
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [ecx + 0x1c]
and cx, 0xbe00
or cx, 2
mov word [eax + 0x1c], cx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
mov edx, eax
mov eax, dword [esp + 0x24]
add edx, 2
cmp ecx, dword [esp + 0x1c]
sete cl
and ecx, 1
call fcn.00591b84
test eax, eax
je 0x58204d
jmp 0x58724a
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x1c]
je 0x582071
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov ecx, dword [ecx + 0x18]
mov eax, dword [eax + 4]
call fcn.0054b35c
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x1c]
add eax, dword [edx + 0x18]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 4]
call fcn.0054b35c
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov byte [ecx + eax], 0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov byte [ecx + eax + 1], 0
mov ecx, dword [esp + 0x24]
or word [ecx + 0x1c], 0x200
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.005814c0
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
call fcn.005814c0
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov cx, word [ebp + 0x1c]
mov eax, dword [esp + 0x1c]
or cx, word [eax + 0x1c]
movzx edx, cx
mov dword [esp + 0x6c], edx
test byte [esp + 0x6c], 1
jne 0x582486
mov cx, word [ebp + 0x1c]
mov eax, dword [esp + 0x1c]
and cx, word [eax + 0x1c]
movzx edx, cx
and edx, 4
cmp edx, 4
jne 0x5822c4
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x7c], eax
mov byte [esp + 0x68], 1
mov dl, byte [esi]
sub dl, 0x56
je 0x582184
dec dl
je 0x5821a5
dec dl
je 0x5821c6
dec dl
je 0x5821e7
jmp 0x582241
push dword [esp + 0x74]
push dword [esp + 0x74]
lea eax, [esp + 0x80]
call fcn.005918f8
test eax, eax
jne 0x5822c9
jmp 0x582294
push dword [esp + 0x74]
push dword [esp + 0x74]
lea eax, [esp + 0x80]
call fcn.005919c0
test eax, eax
jne 0x5822c9
jmp 0x582294
push dword [esp + 0x74]
push dword [esp + 0x74]
lea eax, [esp + 0x80]
call fcn.00591a18
test eax, eax
jne 0x5822c9
jmp 0x582294
cmp dword [esp + 0x74], 0
jne 0x5821f9
cmp dword [esp + 0x70], 0
je 0x582486
cmp dword [esp + 0x74], 0xffffffff
jne 0x58221c
cmp dword [esp + 0x70], 0xffffffff
jne 0x58221c
cmp dword [esp + 0x7c], 0x80000000
jne 0x58221c
cmp dword [esp + 0x78], 0
je 0x5822c9
push dword [esp + 0x74]
push dword [esp + 0x74]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
call fcn.0054afa0
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
jmp 0x582294
cmp dword [esp + 0x74], 0
jne 0x582253
cmp dword [esp + 0x70], 0
je 0x582486
cmp dword [esp + 0x74], 0xffffffff
jne 0x582271
cmp dword [esp + 0x70], 0xffffffff
jne 0x582271
mov dword [esp + 0x70], 1
mov dword [esp + 0x74], 0
push dword [esp + 0x74]
push dword [esp + 0x74]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
call fcn.0054b034
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x78]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0x14], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x58171d.0
mov byte [esp + 0x68], 0
mov eax, ebp
call fcn.00591f98
fstp qword [esp + 0x80]
wait
mov eax, dword [esp + 0x1c]
call fcn.00591f98
fstp qword [esp + 0x88]
wait
mov dl, byte [esi]
sub dl, 0x56
je 0x582301
dec dl
je 0x58231c
dec dl
je 0x582337
dec dl
je 0x582352
jmp 0x582389
fld qword [esp + 0x80]
fadd qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582419
fld qword [esp + 0x80]
fsubr qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582419
fld qword [esp + 0x80]
fmul qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582419
fld qword [esp + 0x80]
fld dword [0x5872e8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x582486
fld qword [esp + 0x80]
fdivr qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582419
fld qword [esp + 0x80]
call fcn.0054af70
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
fld qword [esp + 0x88]
call fcn.0054af70
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x74], 0
jne 0x5823c3
cmp dword [esp + 0x70], 0
je 0x582486
cmp dword [esp + 0x74], 0xffffffff
jne 0x5823e1
cmp dword [esp + 0x70], 0xffffffff
jne 0x5823e1
mov dword [esp + 0x70], 1
mov dword [esp + 0x74], 0
push dword [esp + 0x74]
push dword [esp + 0x74]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
call fcn.0054b034
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], edx
fild qword [esp + 0x130]
fstp qword [esp + 0x88]
wait
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.00590a34
test eax, eax
je 0x582432
jmp 0x582486
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x88]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x8c]
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 8
mov word [edx + 0x1c], ax
test byte [esp + 0x6c], 8
jne case.0x58171d.0
cmp byte [esp + 0x68], 0
jne case.0x58171d.0
mov eax, dword [esp + 0x24]
call fcn.00592004
jmp case.0x58171d.0
mov eax, dword [esp + 0x24]
call fcn.00592110
jmp case.0x58171d.0
cmp dword [esi + 4], 0
je case.0x58171d.0
push 0
push 0
mov eax, dword [esi + 4]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x20]
call fcn.00592180
jmp case.0x58171d.0
xor edx, edx
mov dl, byte [esi + 3]
mov dword [esp + 0xb4], edx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x6c], eax
xor edx, edx
mov dword [esp + 0x68], edx
jmp 0x582531
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x6c]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x6c]
test byte [eax + 0x1d], 0x10
je 0x58251f
call fcn.00591c44
test eax, eax
je 0x58251f
jmp 0x58724a
mov eax, dword [esp + 0x6c]
call fcn.005813b4
inc dword [esp + 0x68]
add dword [esp + 0x6c], 0x28
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0xb4]
jl 0x5824f9
cmp byte [esi + 1], 0xfb
jne 0x582553
mov edx, dword [esi + 0x10]
xor ecx, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
jmp 0x582564
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x74]
mov edx, dword [eax]
mov dword [esp + 0x70], edx
mov word [esp + 0x94], 1
mov dword [esp + 0x78], ebx
xor ecx, ecx
mov dword [esp + 0x98], ecx
xor eax, eax
mov dword [esp + 0x9c], eax
lea eax, [esp + 0x78]
mov edx, dword [esp + 0x24]
call fcn.005922ec
mov cx, word [esp + 0x94]
and cx, 0xbe00
or cx, 1
mov word [esp + 0x94], cx
xor ecx, ecx
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0x70]
test byte [eax + 3], 8
je 0x5825c7
mov edx, dword [esi - 4]
mov dword [esp + 0xa4], edx
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0x20], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x24], ecx
lea eax, [esp + 0x70]
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
call dword [ebp + 0xc]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x74], 0
je 0x58261a
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x74]
call fcn.00580510
mov ecx, dword [esp + 0x74]
mov dword [esi + 0x10], ecx
mov byte [esi + 1], 0xf9
cmp byte [ebx + 0x38], 0
je 0x58262e
lea eax, [esp + 0x78]
call fcn.00591e84
jmp 0x58724a
cmp dword [esp + 0xa8], 0
je 0x58265f
lea eax, [esp + 0x78]
call fcn.0057d8d0
push eax
push 0x5c8c0c
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00596f9c
add esp, 0x10
mov ecx, dword [esp + 0xa8]
mov dword [esp + 8], ecx
xor edx, edx
lea eax, [esp + 0x78]
mov dl, byte [esp + 0xd]
call fcn.00591b6c
lea edx, [esp + 0x78]
mov eax, dword [esp + 0x24]
call fcn.005922ec
mov eax, dword [esp + 0x24]
call fcn.00592238
test eax, eax
je case.0x58171d.0
jmp 0x58722b
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl eax, 3
shl ebp, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov cx, word [ebp + 0x1c]
mov eax, dword [esp + 0x1c]
or cx, word [eax + 0x1c]
test cl, 1
je 0x5826e5
mov eax, dword [esp + 0x24]
call fcn.00592110
jmp case.0x58171d.0
mov edx, dword [esp + 0x1c]
push edx
call fcn.00591f30
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
push ebp
call fcn.00591f30
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov cl, byte [esi]
mov byte [esp + 0x80], cl
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x52
jne 0x582731
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
and dword [esp + 0x68], eax
and dword [esp + 0x6c], edx
jmp 0x58289c
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x53
jne 0x582754
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
or dword [esp + 0x68], eax
or dword [esp + 0x6c], edx
jmp 0x58289c
cmp dword [esp + 0x7c], 0
jne 0x582766
cmp dword [esp + 0x78], 0
je 0x58289c
cmp dword [esp + 0x7c], 0
jne 0x582776
cmp dword [esp + 0x78], 0
jae 0x5827ba
jmp 0x582778
jge 0x5827ba
mov cl, 0xa9
sub cl, byte [esp + 0x80]
mov byte [esp + 0x80], cl
cmp dword [esp + 0x7c], 0xffffffff
jne 0x582798
cmp dword [esp + 0x78], 0xffffffc0
jbe 0x5827ab
jmp 0x58279a
jle 0x5827ab
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
neg eax
adc edx, 0
neg edx
jmp 0x5827b2
mov eax, 0x40
xor edx, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
jne 0x5827ca
cmp dword [esp + 0x78], 0x40
jb 0x582801
jmp 0x5827cc
jl 0x582801
cmp dword [esp + 0x6c], 0
jne 0x5827dc
cmp dword [esp + 0x68], 0
jae 0x5827ec
jmp 0x5827de
jge 0x5827ec
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x54
jne 0x5827f0
xor eax, eax
jmp 0x5827f3
or eax, 0xffffffff
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jmp 0x58289c
lea edx, [esp + 0x68]
lea eax, [esp + 0x70]
mov ecx, 8
call fcn.0054b35c
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x54
jne 0x58283e
mov eax, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.0054b0d4
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
jmp 0x58288a
mov eax, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.0054b190
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
cmp dword [esp + 0x6c], 0
jne 0x582869
cmp dword [esp + 0x68], 0
jae 0x58288a
jmp 0x58286b
jge 0x58288a
mov eax, dword [esp + 0x78]
mov ecx, 0x40
sub ecx, eax
mov eax, 0xffffffff
mov edx, eax
call fcn.0054b0d4
or dword [esp + 0x70], eax
or dword [esp + 0x74], edx
lea edx, [esp + 0x70]
lea eax, [esp + 0x68]
mov ecx, 8
call fcn.0054b35c
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x14], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 4
mov word [eax + 0x1c], cx
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.00592068
mov eax, dword [esi + 8]
cdq
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
mov cl, byte [esp + 0xd]
shl ebp, 3
mov dl, 0x63
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.00581530
test byte [ebp + 0x1c], 4
jne 0x582935
cmp dword [esi + 8], 0
jne 0x582929
mov dword [esp + 8], 0x14
jmp 0x58726d
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
mov ax, word [ebp + 0x1c]
and ax, 0xbe00
or ax, 4
mov word [ebp + 0x1c], ax
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 4
je case.0x58171d.0
mov eax, ebp
call fcn.0059208c
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x58171d.0
movzx eax, word [ebp + 0x1c]
and eax, 0x10
mov dl, 0x61
sar eax, 3
or word [ebp + 0x1c], ax
mov eax, ebp
mov cl, byte [esp + 0xd]
call fcn.00581530
test byte [ebp + 0x1d], 0x40
je 0x5829b0
mov eax, ebp
call fcn.00591ca0
jmp 0x5829b2
xor eax, eax
mov dword [esp + 8], eax
and word [ebp + 0x1c], 0xbfe3
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x58171d.0
test byte [ebp + 0x1c], 0x10
jne 0x582a02
mov cl, byte [esp + 0xd]
mov dl, 0x61
mov eax, ebp
call fcn.00581530
mov cx, word [ebp + 0x1c]
and cx, 0xbe00
or cx, 0x10
mov word [ebp + 0x1c], cx
jmp case.0x58171d.0
and word [ebp + 0x1c], 0xfe10
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.005920b0
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x58171d.0
mov eax, ebp
call fcn.00592068
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x58171d.0
mov eax, ebp
call fcn.0059208c
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 0xc]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov dx, word [ebp + 0x1c]
mov word [esp + 0x6e], dx
mov ecx, dword [esp + 0x20]
mov cx, word [ecx + 0x1c]
mov word [esp + 0x70], cx
mov ax, word [esp + 0x6e]
or ax, word [esp + 0x70]
test al, 1
je 0x582b36
test byte [esi + 3], 0x80
je 0x582ae9
test byte [esp + 0x6e], 1
je 0x582adc
test byte [esp + 0x70], 1
je 0x582adc
test byte [esp + 0x71], 1
jne 0x582adc
xor edx, edx
mov dword [esp + 0x68], edx
jmp 0x582ba3
mov dword [esp + 0x68], 1
jmp 0x582ba3
test byte [esi + 3], 0x10
je 0x582b1e
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x24]
mov dx, word [eax + 0x1c]
mov eax, dword [esp + 0x24]
and dx, 0xbe00
or dx, 1
mov word [eax + 0x1c], dx
jmp case.0x58171d.0
test byte [esi + 3], 8
je case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
mov cl, byte [esi + 3]
and cl, 0x67
mov byte [esp + 0x6c], cl
cmp byte [esp + 0x6c], 0
je 0x582b71
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, ebp
call fcn.00581530
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, dword [esp + 0x20]
call fcn.00581530
cmp byte [ebx + 0x38], 0
jne 0x58724a
test byte [ebp + 0x1d], 0x40
je 0x582b7e
mov eax, ebp
call fcn.00591ca0
mov edx, dword [esp + 0x20]
test byte [edx + 0x1d], 0x40
je 0x582b91
mov eax, dword [esp + 0x20]
call fcn.00591ca0
mov ecx, dword [esi + 0x10]
mov edx, ebp
mov eax, dword [esp + 0x20]
call fcn.005924a8
mov dword [esp + 0x68], eax
xor edx, edx
mov dl, byte [esi]
add edx, 0xffffffb5
cmp edx, 4
ja case.default.0x582baf
jmp dword [edx*4 + 0x582bb6]
cmp dword [esp + 0x68], 0
sete cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x582c2e
cmp dword [esp + 0x68], 0
setne cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x582c2e
cmp dword [esp + 0x68], 0
setl al
and eax, 1
mov dword [esp + 0x68], eax
jmp 0x582c2e
cmp dword [esp + 0x68], 0
setle dl
and edx, 1
mov dword [esp + 0x68], edx
jmp 0x582c2e
cmp dword [esp + 0x68], 0
setg cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x582c2e
cmp dword [esp + 0x68], 0
setge al
and eax, 1
mov dword [esp + 0x68], eax
test byte [esi + 3], 0x10
je 0x582c6e
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 4
mov word [edx + 0x1c], ax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp 0x582c7c
cmp dword [esp + 0x68], 0
je 0x582c7c
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
mov ax, word [ebp + 0x1c]
mov dx, word [esp + 0x6e]
and dx, 0x1ff
and ax, 0xfe00
or ax, dx
mov word [ebp + 0x1c], ax
mov dx, word [esp + 0x70]
mov ecx, dword [esp + 0x20]
and dx, 0x1ff
mov ax, word [ecx + 0x1c]
and ax, 0xfe00
or ax, dx
mov edx, dword [esp + 0x20]
mov word [edx + 0x1c], ax
jmp case.0x58171d.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
jmp case.0x58171d.0
test byte [esi + 3], 1
jne 0x582cd3
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x68], ecx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x78], eax
mov edx, dword [esi + 4]
mov dword [esp + 0x70], edx
mov ecx, dword [esi + 8]
mov dword [esp + 0x74], ecx
xor eax, eax
mov dword [esp + 0x6c], eax
jmp 0x582d92
cmp dword [esp + 0x2c], 0
je 0x582d0e
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x6c]
mov edx, dword [edx + eax*4]
jmp 0x582d12
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
mov ecx, dword [eax + ecx*4 + 0xc]
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x6c]
movzx edx, byte [edx + eax]
mov dword [esp + 0x84], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x74]
add ecx, eax
mov edx, ecx
mov ecx, dword [esp + 0x70]
add ecx, eax
shl edx, 3
mov eax, ecx
shl eax, 3
mov ecx, dword [esp + 0x80]
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
call fcn.005924a8
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
je 0x582d8e
cmp dword [esp + 0x84], 0
je 0x582da0
neg dword [esp + 0x28]
jmp 0x582da0
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
jl 0x582cfa
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp case.0x58171d.0
cmp dword [esp + 0x28], 0
jge 0x582dbe
mov eax, dword [esi + 4]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
cmp dword [esp + 0x28], 0
jne 0x582dd1
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 0xc]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
je 0x582dfb
mov dword [esp + 0x68], 2
jmp 0x582e13
push ebp
call fcn.00591f30
cmp edx, 0
jne 0x582e09
cmp eax, 0
setne al
and eax, 1
mov dword [esp + 0x68], eax
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x1c], 1
je 0x582e38
mov dword [esp + 0x6c], 2
jmp 0x582e54
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00591f30
cmp edx, 0
jne 0x582e4a
cmp eax, 0
setne al
and eax, 1
mov dword [esp + 0x6c], eax
xor edx, edx
mov dl, byte [esi]
cmp edx, 0x45
jne 0x582e79
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + ecx*2]
lea eax, [ecx + 0x5c8bf4]
mov edx, dword [esp + 0x6c]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x68], ecx
jmp 0x582e92
mov eax, dword [esp + 0x68]
lea eax, [eax + eax*2]
lea edx, [eax + 0x5c8bfd]
mov eax, dword [esp + 0x6c]
movzx edx, byte [edx + eax]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x68], 2
jne 0x582ec7
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 1
mov word [edx + 0x1c], ax
jmp case.0x58171d.0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x24]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 4
mov word [edx + 0x1c], ax
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
test byte [ebp + 0x1c], 1
je 0x582f26
mov eax, dword [esp + 0x24]
call fcn.00592110
jmp case.0x58171d.0
push ebp
call fcn.00591f30
cmp edx, 0
jne 0x582f34
cmp eax, 0
setne al
and eax, 1
cmp eax, 1
sbb eax, eax
neg eax
cdq
push edx
push eax
mov eax, dword [esp + 0x2c]
call fcn.00592180
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
test byte [ebp + 0x1c], 1
je 0x582f85
mov eax, dword [esp + 0x24]
call fcn.00592110
jmp case.0x58171d.0
push ebp
call fcn.00591f30
not eax
not edx
push edx
push eax
mov eax, dword [esp + 0x2c]
call fcn.00592180
jmp case.0x58171d.0
mov edx, dword [edi + 0xb8]
mov ecx, dword [esi + 4]
cmp byte [edx + ecx], 0
je 0x582fba
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
mov eax, dword [edi + 0xb8]
mov edx, dword [esi + 4]
mov byte [eax + edx], 1
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
je 0x582fe9
mov eax, dword [esi + 0xc]
mov dword [esp + 0x68], eax
jmp 0x583021
mov eax, ebp
call fcn.00591f98
fld dword [0x5872e8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
setp dl
and edx, 1
mov dword [esp + 0x68], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x1c
jne 0x583021
mov ecx, dword [esp + 0x68]
cmp ecx, 1
sbb eax, eax
neg eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
je case.0x58171d.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 1
jne case.0x58171d.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
mov edx, dword [esi + 4]
lea eax, [esp + 0xa8]
mov dword [esp + 0x78], edx
mov ecx, dword [esi + 8]
mov dword [esp + 0x7c], ecx
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov ecx, 0x28
xor edx, edx
call fcn.0054b37c
mov eax, dword [esi + 0xc]
xor ecx, ecx
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x84], ecx
mov eax, dword [edi + 0x40]
mov edx, dword [esp + 0x78]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x80]
mov edx, dword [eax]
mov dword [esp + 0x88], edx
cmp dword [esp + 0x88], 0
je 0x58319b
mov eax, dword [esp + 0x80]
call fcn.00580648
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
mov edx, dword [esp + 0x80]
cmp byte [edx + 0x1c], 0
je 0x583129
xor ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x583263
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x50]
jne 0x58315c
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 0x54]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x60]
mov dword [esp + 0x84], edx
jmp 0x583263
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0x1f], 0
je 0x583186
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x88]
call fcn.0057893c
mov eax, dword [esp + 0x70]
mov dword [esp + 0x68], eax
jmp 0x583263
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x88]
call fcn.0057898c
jmp 0x583263
mov edx, dword [esp + 0x80]
cmp dword [edx + 0x10], 0
jle 0x58325d
mov ecx, dword [esp + 0x80]
mov ecx, dword [ecx + 0x10]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0xec], ecx
mov eax, dword [esp + 0x80]
cmp byte [eax + 0x22], 0
je 0x583225
mov edx, dword [esp + 0x7c]
mov ecx, 0x1000
shl edx, 3
mov eax, dword [esp + 0xa4]
lea edx, [edx + edx*4]
add edx, dword [esp + 0xec]
call fcn.0059225c
mov edx, dword [esp + 0xa4]
test byte [edx + 0x1d], 0x10
je case.0x58171d.0
mov eax, dword [esp + 0xa4]
call fcn.00591c44
test eax, eax
je case.0x58171d.0
jmp 0x58724a
mov edx, dword [esp + 0xec]
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xec]
mov eax, dword [ecx + 4]
mov dword [esp + 0x84], eax
test byte [esi + 3], 0x20
je 0x58324e
xor edx, edx
jmp 0x583251
mov edx, dword [edi + 0x50]
mov eax, dword [esp + 0x80]
mov dword [eax + 0x50], edx
jmp 0x583263
xor ecx, ecx
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 0
jne 0x58328d
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa4]
mov ax, word [ecx + 0x1c]
and ax, 0xbe00
or ax, 1
mov word [edx + 0x1c], ax
jmp case.0x58171d.0
mov ecx, dword [esp + 0x68]
cmp ecx, dword [ebx + 0x50]
jbe 0x58329b
jmp 0x58722b
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x14]
mov dword [esp + 0x94], edx
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x58]
mov dword [esp + 0x8c], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 0x50]
cmp ecx, dword [edi + 0x50]
jne 0x5832e2
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x90], edx
jmp 0x583656
xor ecx, ecx
mov dword [esp + 0xe4], ecx
mov eax, dword [esp + 0x94]
shl eax, 2
add eax, dword [esp + 0x8c]
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x80]
mov dword [edx + 0x5c], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x54], eax
mov edx, dword [edi + 0x50]
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0x50], edx
cmp dword [esp + 0x84], 0
je 0x583342
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xa0], ecx
jmp 0x5833bf
mov eax, dword [esp + 0x80]
cmp byte [eax + 0x1f], 0
je 0x58336b
lea edx, [esp + 0xe4]
mov eax, dword [esp + 0x88]
call fcn.00578e40
mov dword [esp + 0xa0], eax
jmp 0x583385
lea edx, [esp + 0xe4]
mov eax, dword [esp + 0x88]
call fcn.00578e58
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0x68]
cmp edx, dword [esp + 0xe4]
ja 0x5833b3
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0xa0]
mov dword [ecx + 0x60], eax
jmp 0x5833bf
mov edx, dword [esp + 0x80]
xor eax, eax
mov dword [edx + 0x60], eax
mov edx, dword [esp + 0xa0]
cmp byte [edx], 0x80
jae 0x5833e0
mov ecx, dword [esp + 0xa0]
mov al, 1
movzx ecx, byte [ecx]
mov dword [esp + 0xd8], ecx
jmp 0x5833f3
lea edx, [esp + 0xd8]
mov eax, dword [esp + 0xa0]
call fcn.00591718
xor edx, edx
mov dl, al
mov dword [esp + 0xe0], edx
cmp dword [esp + 0xd8], 0x18003
jbe 0x58341e
mov eax, 0xae5
call fcn.00565d74
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov edx, dword [esp + 0x94]
lea edx, [edx + edx*4]
add edx, 3
mov dword [esp + 0x98], edx
mov ecx, dword [esp + 0xd8]
cmp ecx, dword [esp + 0x98]
jge 0x583450
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x98], ecx
cmp dword [esp + 0x84], 0
jne 0x5834c5
mov eax, dword [esp + 0xe4]
cmp eax, dword [esp + 0x98]
jge 0x5834c5
mov word [esp + 0xc4], 0
xor edx, edx
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0x80]
xor eax, eax
mov al, byte [ecx + 0x1f]
push eax
lea edx, [esp + 0xac]
push edx
mov ecx, dword [esp + 0xa0]
xor edx, edx
mov eax, dword [esp + 0x90]
call fcn.005926f4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x5834b7
jmp case.0x58171d.0
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa0]
add eax, dword [esp + 0x98]
mov dword [esp + 0xd4], eax
mov edx, dword [esp + 0xa0]
add edx, dword [esp + 0xe0]
mov dword [esp + 0xd0], edx
xor ecx, ecx
mov dword [esp + 0x9c], ecx
jmp 0x5835df
mov edx, dword [esp + 0xd0]
cmp edx, dword [esp + 0xd4]
jae 0x5835c5
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0xd8]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0xd0]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0x80
jge 0x583550
mov eax, dword [esp + 0xd0]
xor edx, edx
mov dl, byte [eax]
mov dword [esp + 0xe8], edx
inc dword [esp + 0xd0]
jmp 0x58356e
lea edx, [esp + 0xe8]
mov eax, dword [esp + 0xd0]
call fcn.00591718
xor ecx, ecx
mov cl, al
add dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xe8]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0xe8]
call fcn.0058081c
mov ebp, eax
mov dword [esp + 0xdc], ebp
add dword [esp + 0xd8], ebp
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0xdc]
jae 0x5835d8
mov edx, dword [esp + 0xd4]
inc edx
mov dword [esp + 0xd0], edx
jmp 0x5835f3
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x9c]
xor edx, edx
mov dword [ecx + eax*4], edx
inc dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
cmp eax, dword [esp + 0x94]
jl 0x5834fd
lea eax, [esp + 0xa8]
call fcn.00591e84
mov word [esp + 0xc4], 1
mov edx, dword [esp + 0xd0]
cmp edx, dword [esp + 0xd4]
ja 0x583643
mov ecx, dword [esp + 0xd8]
cmp ecx, dword [esp + 0x68]
ja 0x583643
mov ecx, dword [esp + 0xd0]
cmp ecx, dword [esp + 0xd4]
jne 0x583656
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0x68]
je 0x583656
mov eax, 0xb35
call fcn.00565d74
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x7c]
cmp dword [edx + ecx*4], 0
je 0x5837ba
cmp dword [esp + 0x84], 0
je 0x5836c4
mov ecx, dword [esp + 0xa4]
test word [ecx + 0x1c], 0x2460
je 0x583690
mov eax, dword [esp + 0xa4]
call fcn.00591e30
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x90]
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0x7c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xa4]
add eax, dword [esp + 0x84]
call fcn.005808f8
jmp 0x5837aa
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x7c]
mov edx, dword [edx + eax*4]
mov dword [esp + 0xe8], edx
test byte [esi + 3], 0xc0
je 0x583714
cmp dword [esp + 0xe8], 0xc
jb 0x5836f3
test byte [esp + 0xe8], 1
je 0x5836f9
test byte [esi + 3], 0x80
je 0x583714
cmp dword [esp + 0xe8], 0xc
jae 0x583709
lea ecx, [esp + 0x70]
jmp 0x58370b
xor ecx, ecx
mov dword [esp + 0xa0], ecx
jmp 0x583790
mov eax, dword [esp + 0xe8]
call fcn.0058081c
mov dword [esp + 0x98], eax
lea eax, [esp + 0xa8]
mov edx, dword [esp + 0xa4]
call fcn.005922ec
mov ecx, dword [esp + 0x80]
movzx ecx, byte [ecx + 0x1f]
push ecx
lea eax, [esp + 0xac]
push eax
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x84]
mov edx, dword [edx + eax*4]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x90]
call fcn.005926f4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x583782
jmp case.0x58171d.0
mov edx, dword [esp + 0xac]
mov dword [esp + 0xa0], edx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xa0]
call fcn.005808f8
mov ecx, dword [esp + 0xa4]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp 0x5837f5
cmp byte [esi + 1], 0xf8
jne 0x5837d6
mov ecx, 0x800
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0xa4]
call fcn.0059225c
jmp 0x5837f5
mov edx, dword [esp + 0xa4]
mov esi, dword [esp + 0xa4]
mov cx, word [edx + 0x1c]
and cx, 0xbe00
or cx, 1
mov word [esi + 0x1c], cx
cmp dword [esp + 0xcc], 0
je 0x58383b
mov eax, dword [esp + 0xa4]
and word [eax + 0x1c], 0xe7ff
mov edx, dword [esp + 0xa4]
or word [edx + 0x1c], 0x200
mov ecx, dword [esp + 0xa4]
mov esi, dword [esp + 0xac]
mov dword [ecx + 4], esi
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0xcc]
mov dword [eax + 0x24], edx
mov eax, dword [esp + 0xa4]
call fcn.00591c44
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov edx, dword [esi + 0x10]
mov dword [esp + 0x68], edx
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
jmp 0x583886
test byte [ebp + 0x1d], 0x40
je 0x583874
mov eax, ebp
call fcn.00591ca0
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, ebp
call fcn.00581530
add ebp, 0x28
mov edx, dword [esp + 0x68]
inc dword [esp + 0x68]
mov cl, byte [edx]
mov byte [esp + 0x6c], cl
test cl, cl
jne 0x583867
jmp case.0x58171d.0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
xor eax, eax
xor edx, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], edx
mov ecx, dword [esi + 4]
mov dword [esp + 0x9c], ecx
mov eax, dword [esi + 0x10]
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0x9c]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x94], edx
xor edx, edx
mov ecx, dword [esi + 8]
mov dword [esp + 0x9c], ecx
mov eax, dword [esp + 0x9c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x94]
add eax, 0xffffffd8
mov dword [esp + 0x98], eax
mov dl, byte [edi + 0x5d]
mov dword [esp + 0xa4], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x6c], eax
jmp 0x583a00
cmp dword [esp + 0xa0], 0
je 0x583971
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x94]
mov ecx, 0x28
cdq
idiv ecx
mov edx, dword [esp + 0xa0]
mov dl, byte [edx + eax]
mov cl, byte [esp + 0xd]
mov eax, dword [esp + 0x6c]
call fcn.00581530
mov eax, dword [esp + 0x6c]
test byte [eax + 0x1d], 0x40
je 0x583986
cmp dword [eax + 0x18], 0
jle 0x583986
call fcn.00591ca0
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x6c]
call fcn.005806c4
mov esi, eax
mov dword [esp + 0x90], esi
mov eax, esi
call fcn.0058081c
mov ebp, eax
mov eax, ebp
mov dword [esp + 0xac], ebp
cdq
add dword [esp + 0x70], eax
adc dword [esp + 0x74], edx
xor edx, edx
mov eax, dword [esp + 0x90]
push edx
push eax
call fcn.00591794
add dword [esp + 0x78], eax
mov ecx, dword [esp + 0x6c]
test byte [ecx + 0x1d], 0x40
je 0x5839e8
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x10]
add dword [esp + 0x88], eax
jmp 0x5839fb
cmp dword [esp + 0xac], 0
je 0x5839fb
xor edx, edx
mov dword [esp + 0x88], edx
add dword [esp + 0x6c], 0x28
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esp + 0x98]
jbe 0x58393d
mov eax, dword [esp + 0x78]
cdq
push edx
push eax
call fcn.00591794
mov dword [esp + 0x8c], eax
add dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
cdq
push edx
push eax
call fcn.00591794
cmp eax, dword [esp + 0x8c]
jle 0x583a41
inc dword [esp + 0x78]
mov eax, dword [esp + 0x78]
cdq
add eax, dword [esp + 0x70]
adc edx, dword [esp + 0x74]
push edx
push eax
mov eax, dword [esp + 0x90]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov eax, dword [ebx + 0x50]
cdq
cmp edx, dword [esp + 0x84]
jne 0x583a8a
cmp eax, dword [esp + 0x80]
jae 0x583a91
jmp 0x58722b
jge 0x583a91
jmp 0x58722b
mov eax, dword [esp + 0x80]
mov edx, eax
xor ecx, ecx
mov eax, dword [esp + 0x24]
call fcn.00591b84
test eax, eax
je 0x583aae
jmp 0x58724a
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x78], 0x80
jae 0x583ad1
mov ecx, dword [esp + 0x68]
mov al, byte [esp + 0x78]
mov byte [ecx], al
mov dl, 1
jmp 0x583ae0
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x68]
call fcn.005914d4
mov edx, eax
xor eax, eax
mov al, dl
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x6c], ecx
jmp 0x583b5c
mov edx, dword [esp + 0xa4]
mov eax, esi
call fcn.005806c4
mov dword [esp + 0x90], eax
cmp dword [esp + 0x90], 0x80
jae 0x583b33
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xa8]
mov al, byte [esp + 0x90]
mov dl, 1
mov byte [ecx + esi], al
jmp 0x583b4c
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x90]
add eax, dword [esp + 0xa8]
call fcn.005914d4
mov edx, eax
xor eax, eax
mov al, dl
add dword [esp + 0xa8], eax
add dword [esp + 0x6c], 0x28
mov esi, dword [esp + 0x6c]
cmp esi, dword [esp + 0x98]
jbe 0x583af8
mov eax, dword [esp + 0x94]
mov dword [esp + 0x6c], eax
jmp 0x583bb5
mov edx, dword [esp + 0xa4]
push edx
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x70]
mov edx, eax
mov eax, dword [esp + 0x6c]
sub edx, dword [esp + 0xac]
add eax, dword [esp + 0xac]
call fcn.00580830
add eax, dword [esp + 0xa8]
mov dword [esp + 0xa8], eax
add dword [esp + 0x6c], 0x28
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x98]
jbe 0x583b76
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 0x410
mov ecx, dword [esp + 0x24]
xor eax, eax
mov dword [ecx + 0x20], eax
cmp dword [esp + 0x88], 0
je 0x583c05
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x88]
mov dword [edx + 0x10], eax
mov edx, dword [esp + 0x24]
or word [edx + 0x1c], 0x4000
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x1f], 1
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov ecx, dword [edx]
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
je 0x583c3b
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
call fcn.0057c460
mov dword [esp + 8], eax
jmp 0x583c4b
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x14], eax
jmp case.0x58171d.0
mov edx, dword [esi + 4]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x6c], ecx
cmp dword [esp + 0x68], 0
jne 0x583d5a
cmp dword [ebx + 0x88], 0
jle 0x583ca3
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00596f9c
add esp, 0xc
mov dword [esp + 8], 5
jmp case.0x58171d.0
mov eax, dword [esp + 0x6c]
call fcn.00590a48
mov dword [esp + 0x70], eax
mov ecx, dword [ebx + 0x1e4]
add ecx, dword [ebx + 0x1e0]
xor edx, edx
mov eax, ebx
call fcn.005673c8
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
mov edx, dword [esp + 0x70]
mov eax, ebx
add edx, 0x19
call fcn.00596e00
mov dword [esp + 0x74], eax
cmp dword [esp + 0x74], 0
je case.0x58171d.0
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x74]
add edx, 0x18
mov dword [ecx], edx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
inc ecx
mov edx, dword [esp + 0x6c]
mov eax, dword [eax]
call fcn.0054b35c
cmp byte [ebx + 0x36], 0
je 0x583d22
mov byte [ebx + 0x36], 0
mov byte [ebx + 0x3d], 1
jmp 0x583d28
inc dword [ebx + 0x1e0]
mov ecx, dword [esp + 0x74]
mov esi, dword [ebx + 0x1d8]
mov dword [ecx + 0x10], esi
mov eax, dword [esp + 0x74]
mov dword [ebx + 0x1d8], eax
mov edx, dword [esp + 0x74]
mov ecx, dword [ebx + 0x1e8]
mov dword [edx + 8], ecx
mov ecx, dword [ebx + 0x1ec]
mov dword [edx + 0xc], ecx
jmp case.0x58171d.0
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov eax, dword [ebx + 0x1d8]
mov dword [esp + 0x78], eax
jmp 0x583d81
inc dword [esp + 0x80]
mov edx, dword [esp + 0x78]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x78], ecx
cmp dword [esp + 0x78], 0
je 0x583d9b
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
mov eax, dword [eax]
call fcn.00590b8c
test eax, eax
jne 0x583d6f
cmp dword [esp + 0x78], 0
jne 0x583dc6
mov ecx, dword [esp + 0x6c]
push ecx
push str.no_such_savepoint:__s
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00596f9c
add esp, 0x10
mov dword [esp + 8], 1
jmp case.0x58171d.0
cmp dword [ebx + 0x88], 0
jle 0x583df5
cmp dword [esp + 0x68], 1
jne 0x583df5
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00596f9c
add esp, 0xc
mov dword [esp + 8], 5
jmp case.0x58171d.0
mov edx, dword [esp + 0x78]
cmp dword [edx + 0x10], 0
jne 0x583e05
cmp byte [ebx + 0x3d], 0
jne 0x583e09
xor ecx, ecx
jmp 0x583e0e
mov ecx, 1
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x3c], 0
je 0x583e74
cmp dword [esp + 0x68], 1
jne 0x583e74
mov edx, 1
mov eax, edi
call fcn.005800f0
mov dword [esp + 8], eax
test eax, eax
je 0x583e39
jmp 0x58720d
mov byte [ebx + 0x36], 1
mov eax, edi
call fcn.00580158
cmp eax, 5
jne 0x583e64
mov edx, dword [esp]
mov ecx, 5
mov dword [edi + 0x54], edx
mov byte [ebx + 0x36], 0
mov dword [esp + 8], ecx
mov dword [edi + 0x58], ecx
jmp 0x58720d
mov byte [ebx + 0x3d], 0
mov eax, dword [edi + 0x58]
mov dword [esp + 8], eax
jmp 0x583f61
mov edx, dword [ebx + 0x1e0]
sub edx, dword [esp + 0x80]
dec edx
mov dword [esp + 0x80], edx
cmp dword [esp + 0x68], 2
jne 0x583ec9
xor ecx, ecx
mov dword [esp + 0x84], ecx
jmp 0x583ebd
mov eax, dword [esp + 0x84]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + eax + 4]
mov edx, 4
call fcn.005785ec
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
cmp ecx, dword [ebx + 0x14]
jl 0x583e9b
xor ecx, ecx
mov dword [esp + 0x84], ecx
jmp 0x583f0c
mov eax, dword [esp + 0x84]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + eax + 4]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
call fcn.00578734
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x583f05
jmp 0x58726d
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
cmp ecx, dword [ebx + 0x14]
jl 0x583ed4
cmp dword [esp + 0x68], 2
jne 0x583f61
test byte [ebx + 0x18], 2
je 0x583f61
mov eax, ebx
call fcn.00581038
mov eax, ebx
call fcn.0054f2e8
or dword [ebx + 0x18], 2
jmp 0x583f61
mov edx, dword [ebx + 0x1d8]
mov eax, ebx
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx + 0x10]
mov dword [ebx + 0x1d8], ecx
mov edx, dword [esp + 0x7c]
call fcn.00596c18
dec dword [ebx + 0x1e0]
mov ecx, dword [ebx + 0x1d8]
cmp ecx, dword [esp + 0x78]
jne 0x583f39
cmp dword [esp + 0x68], 1
jne 0x583f9b
mov eax, dword [esp + 0x78]
mov edx, dword [eax + 0x10]
mov eax, ebx
mov dword [ebx + 0x1d8], edx
mov edx, dword [esp + 0x78]
call fcn.00596c18
cmp dword [esp + 0x3c], 0
jne 0x583fb1
dec dword [ebx + 0x1e0]
jmp 0x583fb1
mov ecx, dword [esp + 0x78]
mov esi, dword [ecx + 8]
mov dword [ebx + 0x1e8], esi
mov esi, dword [ecx + 0xc]
mov dword [ebx + 0x1ec], esi
cmp dword [esp + 0x3c], 0
jne case.0x58171d.0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.005673c8
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x68], 0
je 0x583ffd
cmp byte [ebx + 0x36], 0
je 0x584001
xor edx, edx
jmp 0x584006
mov edx, 1
mov dword [esp + 0x70], edx
cmp dword [esp + 0x70], 0
je 0x584040
cmp dword [esp + 0x6c], 0
jne 0x584040
cmp dword [ebx + 0x88], 0
jle 0x584040
push str.cannot_commit_transaction___SQL_statements_in_progress
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00596f9c
add esp, 0xc
mov dword [esp + 8], 5
jmp case.0x58171d.0
xor eax, eax
mov al, byte [ebx + 0x36]
cmp eax, dword [esp + 0x68]
je 0x5840e2
cmp dword [esp + 0x6c], 0
je 0x584068
mov edx, 0x204
mov eax, ebx
call fcn.005647c0
mov byte [ebx + 0x36], 1
jmp 0x5840b6
mov edx, 1
mov eax, edi
call fcn.005800f0
mov dword [esp + 8], eax
test eax, eax
je 0x584083
jmp 0x58720d
mov dl, byte [esp + 0x68]
mov eax, edi
mov byte [ebx + 0x36], dl
call fcn.00580158
cmp eax, 5
jne 0x5840b6
mov edx, dword [esp]
mov dword [edi + 0x54], edx
mov cl, 1
sub cl, byte [esp + 0x68]
mov byte [ebx + 0x36], cl
mov ecx, 5
mov dword [esp + 8], ecx
mov dword [edi + 0x58], ecx
jmp 0x58720d
mov eax, ebx
call fcn.00564474
cmp dword [edi + 0x58], 0
jne 0x5840d0
mov dword [esp + 8], 0x65
jmp 0x58720d
mov dword [esp + 8], 1
jmp 0x58720d
cmp dword [esp + 0x68], 0
jne 0x5840f0
mov edx, str.cannot_start_a_transaction_within_a_transaction
jmp 0x584103
cmp dword [esp + 0x6c], 0
je 0x5840fe
mov edx, str.cannot_rollback___no_transaction_is_active
jmp 0x584103
mov edx, str.cannot_commit___no_transaction_is_active
push edx
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00596f9c
add esp, 0xc
mov dword [esp + 8], 1
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x68], edx
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x68]
call fcn.00577bdc
mov dword [esp + 8], eax
cmp dword [esp + 8], 5
jne 0x584168
mov ecx, dword [esp]
mov dword [edi + 0x54], ecx
mov ecx, 5
mov dword [esp + 8], ecx
mov dword [edi + 0x58], ecx
jmp 0x58720d
cmp dword [esp + 8], 0
je 0x584174
jmp 0x58726d
cmp dword [esi + 8], 0
je case.0x58171d.0
test byte [edi + 0x5e], 0x80
je case.0x58171d.0
cmp byte [ebx + 0x36], 0
je 0x58419b
cmp dword [ebx + 0x84], 1
jle case.0x58171d.0
cmp dword [edi + 0x6c], 0
jne 0x5841b6
inc dword [ebx + 0x1e4]
mov eax, dword [ebx + 0x1e0]
add eax, dword [ebx + 0x1e4]
mov dword [edi + 0x6c], eax
mov ecx, dword [edi + 0x6c]
dec ecx
xor edx, edx
mov eax, ebx
call fcn.005673c8
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5841de
mov edx, dword [edi + 0x6c]
mov eax, dword [esp + 0x68]
call fcn.00578708
mov dword [esp + 8], eax
mov ecx, dword [ebx + 0x1e8]
mov dword [edi + 0x90], ecx
mov ecx, dword [ebx + 0x1ec]
mov dword [edi + 0x94], ecx
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
shl edx, 4
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + edx + 4]
lea ecx, [esp + 0x68]
mov edx, dword [esp + 0x70]
call fcn.0057c3c8
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [esp + 0x68], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
call fcn.00592068
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x68]
mov ecx, eax
mov eax, dword [edx + 4]
mov edx, dword [esi + 8]
call fcn.0057c400
mov dword [esp + 8], eax
cmp dword [esi + 8], 1
jne 0x584297
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
mov eax, dword [ecx + 0x10]
mov ecx, dword [edx + 0xc]
mov dword [ecx], eax
or dword [ebx + 0x18], 2
jmp 0x5842ae
cmp dword [esi + 8], 2
jne 0x5842ae
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x68]
mov eax, dword [ecx + 0x10]
mov ecx, dword [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [esi + 4], 1
jne case.0x58171d.0
mov eax, ebx
call fcn.00581038
and byte [edi + 0x5e], 0xdf
jmp case.0x58171d.0
mov edx, dword [esi + 4]
shl edx, 4
mov ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + edx + 4]
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
je 0x584308
lea ecx, [esp + 0x68]
mov edx, 1
mov eax, dword [esp + 0x70]
call fcn.0057c3c8
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [edx + 4]
mov dword [esp + 0x6c], ecx
jmp 0x584312
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x68]
cmp edx, dword [esi + 8]
jne 0x584328
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esi + 0xc]
je case.0x58171d.0
mov edx, dword [edi + 0x34]
mov eax, ebx
call fcn.00596c18
mov edx, str.database_schema_has_changed
mov eax, ebx
call fcn.00596f2c
mov dword [edi + 0x34], eax
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 0xc]
mov ecx, dword [edx]
cmp ecx, dword [esp + 0x68]
je 0x584360
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0054f2bc
or byte [edi + 0x5e], 0x20
mov dword [esp + 8], 0x11
jmp case.0x58171d.0
test byte [edi + 0x5e], 0x20
je 0x584384
mov dword [esp + 8], 4
jmp case.0x58171d.0
xor ecx, ecx
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x70], eax
mov edx, dword [esi + 0xc]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 4]
mov dword [esp + 0x7c], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x28
jne 0x5843f2
mov dword [esp + 0x78], 1
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 0x4c]
cmp cl, byte [edi + 0x5d]
jae 0x5843f8
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 0x4c]
mov byte [edi + 0x5d], cl
jmp 0x5843f8
xor eax, eax
mov dword [esp + 0x78], eax
test byte [esi + 3], 2
je 0x58443e
mov edx, dword [esp + 0x70]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
call fcn.00592068
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 2
jge 0x58443e
mov eax, 0xe61
call fcn.00565d74
mov dword [esp + 8], eax
jmp 0x58726d
cmp byte [esi + 1], 0xfa
jne 0x58446c
mov edx, dword [esi + 0x10]
mov dword [esp + 0x6c], edx
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x10]
mov eax, dword [ecx + 0xc]
mov dl, byte [eax + 0x4d]
mov eax, dword [esp + 0x6c]
mov byte [eax + 4], dl
mov edx, dword [esp + 0x6c]
movzx ecx, word [edx + 6]
inc ecx
mov dword [esp + 0x68], ecx
jmp 0x584479
cmp byte [esi + 1], 0xf2
jne 0x584479
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x74]
push eax
push 1
mov ecx, dword [esp + 0x70]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.005813e8
mov dword [esp + 0x80], eax
cmp dword [esp + 0x80], 0
je 0x58724a
mov ecx, dword [esp + 0x80]
mov byte [ecx + 0x1c], 1
mov eax, dword [esp + 0x80]
mov byte [eax + 0x20], 1
mov edx, dword [esp + 0x6c]
push edx
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx]
push eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x84]
call fcn.00578830
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x6c]
mov dword [ecx + 8], eax
xor edx, edx
mov dl, byte [esi + 3]
and edx, 1
mov eax, dword [esp + 0x80]
mov eax, dword [eax]
call fcn.0057d400
cmp byte [esi + 1], 0xfa
setne dl
mov ecx, dword [esp + 0x80]
and edx, 1
xor eax, eax
mov byte [ecx + 0x1e], dl
mov ecx, dword [esp + 0x80]
mov al, byte [ecx + 0x1e]
cmp eax, 1
mov eax, dword [esp + 0x80]
sbb edx, edx
neg edx
mov byte [eax + 0x1f], dl
jmp case.0x58171d.0
push 0xffffffffffffffff
push 1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.005813e8
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x58724a
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1c], 1
mov ecx, dword [esp + 0x68]
mov eax, dword [0x5c8c08]
add ecx, 4
push ecx
xor ecx, ecx
mov cl, byte [esi + 3]
or ecx, 5
xor edx, edx
push ecx
push eax
mov eax, dword [ebx]
mov ecx, ebx
call fcn.00576f9c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5845a7
mov ecx, dword [esp + 0x68]
mov edx, 1
mov eax, dword [ecx + 4]
call fcn.00577bdc
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x584653
cmp dword [esi + 0x10], 0
je 0x584628
mov eax, dword [esp + 0x68]
xor ecx, ecx
mov cl, byte [esi + 3]
lea edx, [esp + 0x40]
or ecx, 2
mov eax, dword [eax + 4]
call fcn.0057bfcc
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58461e
mov edx, dword [esi + 0x10]
push edx
mov ecx, dword [esp + 0x6c]
mov ecx, dword [ecx]
push ecx
mov ecx, 1
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x48]
mov eax, dword [eax + 4]
call fcn.00578830
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esi + 0x10]
mov dword [ecx + 8], eax
mov edx, dword [edi]
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0xc]
mov dl, byte [eax + 0x4d]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
mov byte [ecx + 4], dl
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1e], 0
jmp 0x584653
push 0
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
push eax
mov edx, dword [esp + 0x70]
mov eax, dword [edx + 4]
mov ecx, 1
mov edx, 1
call fcn.00578830
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1e], 1
xor eax, eax
mov al, byte [esi + 3]
cmp eax, 8
mov eax, dword [esp + 0x68]
setne dl
and edx, 1
xor ecx, ecx
mov byte [eax + 0x20], dl
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x68]
mov cl, byte [edx + 0x1e]
cmp ecx, 1
sbb ecx, ecx
neg ecx
mov byte [eax + 0x1f], cl
jmp case.0x58171d.0
push 0xffffffffffffffff
push 1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.005813e8
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x58724a
mov ecx, dword [esp + 0x68]
mov eax, dword [esi + 0x10]
mov dword [ecx + 8], eax
mov edx, dword [edi]
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0xc]
mov dl, byte [eax + 0x4d]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
mov eax, ebx
mov byte [ecx + 4], dl
mov edx, dword [esp + 0x68]
mov byte [edx + 0x21], 1
mov edx, dword [esp + 0x68]
call fcn.005877a4
mov dword [esp + 8], eax
jmp case.0x58171d.0
push 0xffffffffffffffff
push 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.005813e8
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x58724a
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1c], 1
mov ecx, dword [esp + 0x68]
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1e], 1
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1f], 0
mov eax, dword [esp + 0x68]
mov dl, byte [esi + 3]
mov byte [eax + 0x22], dl
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov eax, edi
call fcn.0057fa08
mov edx, dword [edi + 0x40]
mov ecx, dword [esi + 4]
xor eax, eax
mov dword [edx + ecx*4], eax
jmp case.0x58171d.0
mov edx, dword [edi + 0x40]
mov ecx, dword [esi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x70]
cmp dword [eax], 0
je 0x584b2c
xor edx, edx
mov dl, byte [esi]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x70]
mov byte [ecx + 0x1c], 0
mov eax, dword [esp + 0x70]
cmp byte [eax + 0x1e], 0
je 0x5849da
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
call fcn.005814c0
mov edx, dword [esp + 0x20]
push edx
call fcn.00591f30
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x70]
mov byte [ecx + 0x19], 0
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 4
jne 0x584978
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 8
jne 0x5847e6
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
cmp dword [esp + 0x9c], 0x80000000
jne 0x5848de
cmp dword [esp + 0x98], 0
jne 0x5848de
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], edx
fild qword [esp + 0x138]
mov ecx, dword [esp + 0x20]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
je 0x584856
mov edx, dword [esp + 0x20]
fld qword [edx + 8]
fld dword [0x5872e8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x5848de
mov dword [esp + 0x68], 1
mov edx, dword [esp + 0x20]
fld qword [edx + 8]
fld dword [0x5872e8]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jp 0x58489d
cmp dword [esp + 0x6c], 0x30
jl 0x5848c2
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.0057910c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
jmp 0x5848c2
cmp dword [esp + 0x6c], 0x2f
jg 0x5848c2
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.0057913c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
cmp dword [esp + 0x6c], 0x2e
je 0x5848ec
cmp dword [esp + 0x6c], 0x30
jne 0x584933
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], edx
fild qword [esp + 0x140]
mov ecx, dword [esp + 0x20]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jp 0x584978
add dword [esp + 0x98], 1
adc dword [esp + 0x9c], 0
jmp 0x584978
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], edx
fild qword [esp + 0x148]
mov ecx, dword [esp + 0x20]
fld qword [ecx + 8]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x584978
sub dword [esp + 0x98], 1
sbb dword [esp + 0x9c], 0
push dword [esp + 0x9c]
push dword [esp + 0x9c]
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
xor ecx, ecx
xor edx, edx
call fcn.0057918c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x5849aa
jmp 0x58726d
cmp dword [esp + 0x68], 0
jne 0x584a6c
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 1
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x98]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 0x44], eax
jmp 0x584a6c
mov edx, dword [esi + 0x10]
mov dword [esp + 0x90], edx
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 8]
mov dword [esp + 0x78], eax
mov dx, word [esp + 0x90]
mov word [esp + 0x7c], dx
mov cl, byte [esp + 0x6c]
add cl, 0xd2
and cl, 1
mov byte [esp + 0x7e], cl
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov edx, dword [esp + 0x88]
test byte [edx + 0x1d], 0x40
je 0x584a37
mov eax, dword [esp + 0x88]
call fcn.00591ca0
push 0
push 0
lea edx, [esp + 0x70]
xor ecx, ecx
push edx
lea edx, [esp + 0x84]
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
call fcn.0057918c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x584a64
jmp 0x58726d
mov edx, dword [esp + 0x70]
mov byte [edx + 0x19], 0
mov ecx, dword [esp + 0x70]
mov byte [ecx + 0x1d], 0
mov eax, dword [esp + 0x70]
xor edx, edx
mov dword [eax + 0x50], edx
cmp dword [esp + 0x6c], 0x30
jl 0x584ac9
cmp dword [esp + 0x68], 0
jl 0x584a99
cmp dword [esp + 0x68], 0
jne 0x584ac1
cmp dword [esp + 0x6c], 0x31
jne 0x584ac1
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.00579500
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
mov edx, dword [esp + 0x70]
mov byte [edx + 0x19], 0
jmp 0x584b15
xor ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x584b15
cmp dword [esp + 0x68], 0
jg 0x584ade
cmp dword [esp + 0x68], 0
jne 0x584b06
cmp dword [esp + 0x6c], 0x2e
jne 0x584b06
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.00579614
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
mov edx, dword [esp + 0x70]
mov byte [edx + 0x19], 0
jmp 0x584b15
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.005794f0
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
cmp dword [ecx], 0
je case.0x58171d.0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1c], 0
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00591f30
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1d], 1
jmp case.0x58171d.0
xor ecx, ecx
mov dword [esp + 0x68], ecx
mov eax, dword [edi + 0x40]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x6c]
cmp dword [edx], 0
je 0x584cb6
cmp dword [esi + 0x10], 0
jle 0x584c05
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 8]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x80]
mov dx, word [esi + 0x10]
mov word [esp + 0x84], dx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x90], ecx
mov byte [esp + 0x86], 2
mov dword [esp + 0x78], eax
jmp 0x584c58
lea edx, [esp + 0x74]
mov ecx, 0x97
push edx
lea edx, [esp + 0x9c]
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 8]
call fcn.00580b70
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
je 0x58724a
mov edx, dword [esp + 0x78]
push edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0x70]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 8]
call fcn.00580be0
mov edx, dword [esp + 0x78]
or byte [edx + 6], 2
push 0
push 0
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
xor ecx, ecx
mov edx, dword [esp + 0x84]
call fcn.0057918c
mov dword [esp + 8], eax
cmp dword [esi + 0x10], 0
jne 0x584c8a
mov edx, dword [esp + 0x74]
mov eax, ebx
call fcn.00596c18
cmp dword [esp + 8], 0
je 0x584c96
jmp case.0x58171d.0
cmp dword [esp + 0x70], 0
sete cl
and ecx, 1
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x6c]
mov byte [ecx + 0x1d], 0
mov eax, dword [esp + 0x6c]
xor edx, edx
mov dword [eax + 0x50], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x34
jne 0x584cd6
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
cmp dword [esp + 0x68], 0
jne case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0x10]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov edx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
xor eax, eax
mov dword [ecx + 0x4c], eax
mov edx, dword [esp + 0x6c]
xor ecx, ecx
mov dword [edx + 0x50], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 8]
mov ax, word [ecx + 6]
mov word [esp + 0x74], ax
mov word [esp + 0x68], 0
jmp 0x584d78
movzx edx, word [esp + 0x68]
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x78]
test byte [eax + ecx*8 + 0x1c], 1
je 0x584d73
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
xor ecx, ecx
mov dword [esp + 0x70], ecx
jmp 0x584d84
inc word [esp + 0x68]
mov ax, word [esp + 0x68]
cmp ax, word [esp + 0x74]
jb 0x584d51
cmp dword [esp + 0x70], 0
je case.0x58171d.0
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 8]
mov dword [esp + 0x80], ecx
mov ax, word [esp + 0x74]
inc eax
mov word [esp + 0x84], ax
mov byte [esp + 0x86], 4
mov edx, dword [esp + 0x78]
mov dword [esp + 0x90], edx
mov eax, dword [esp + 0x20]
call fcn.00592068
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x98], ecx
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x9c], ecx
push 0
push 0
mov ecx, dword [esp + 0x74]
add ecx, 0x4c
push ecx
lea edx, [esp + 0x8c]
xor ecx, ecx
mov eax, dword [esp + 0x7c]
call fcn.0057918c
mov dword [esp + 8], eax
test byte [esp + 0x86], 4
jne 0x584e2b
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x9c]
jne 0x584e37
cmp eax, dword [esp + 0x98]
jne 0x584e37
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x88]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x8c]
mov dword [eax + 0x14], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov eax, dword [edi + 0x40]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
je 0x584f1c
xor ecx, ecx
mov dword [esp + 0x70], ecx
xor ecx, ecx
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x78], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x7c], edx
xor edx, edx
push dword [esp + 0x7c]
push dword [esp + 0x7c]
lea eax, [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
call fcn.0057918c
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x40], edx
mov edx, dword [eax + 0x14]
mov dword [ecx + 0x44], edx
cmp dword [esp + 0x70], 0
jne 0x584edc
mov cl, 1
jmp 0x584ede
xor ecx, ecx
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], cl
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1c], 0
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 0x50], eax
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1d], 0
cmp dword [esp + 0x70], 0
je 0x584f0c
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
mov dword [eax + 0x4c], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
mov eax, dword [esp + 0x68]
xor edx, edx
mov dword [eax + 0x4c], edx
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov esi, dword [esi + 4]
mov ecx, dword [ecx + esi*4]
mov eax, dword [ecx + 0x30]
mov edx, dword [ecx + 0x34]
add dword [ecx + 0x30], 1
adc dword [ecx + 0x34], 0
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
xor eax, eax
mov dword [esp + 0x74], eax
mov edx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x70]
cmp dword [ecx], 0
jne 0x584f88
jmp 0x585231
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x1b], 0
jne 0x58514a
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.005788b0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
jne 0x584fb5
cmp dword [esp + 0x68], 0
jne 0x58502b
lea edx, [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.0057913c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x584fd6
jmp 0x58726d
cmp dword [esp + 0x74], 0
je 0x584fef
mov dword [esp + 0x68], 1
mov dword [esp + 0x6c], 0
jmp 0x58502b
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.0057893c
mov dword [esp + 8], eax
cmp dword [esp + 0x6c], 0x7fffffff
jne 0x585015
cmp dword [esp + 0x68], 0xffffffff
jb 0x585021
jmp 0x585017
jl 0x585021
mov edx, dword [esp + 0x70]
mov byte [edx + 0x1b], 1
jmp 0x58502b
add dword [esp + 0x68], 1
adc dword [esp + 0x6c], 0
cmp dword [esi + 0xc], 0
je 0x585114
cmp dword [edi + 0xa0], 0
je 0x585086
mov ecx, dword [edi + 0xa0]
mov dword [esp + 0x80], ecx
jmp 0x58505e
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 4]
mov dword [esp + 0x80], eax
mov edx, dword [esp + 0x80]
cmp dword [edx + 4], 0
jne 0x58504d
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x80]
shl edx, 3
mov eax, dword [ecx + 0xc]
lea edx, [edx + edx*4]
add eax, edx
mov dword [esp + 0x7c], eax
jmp 0x585097
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x7c]
call fcn.00592068
mov edx, dword [esp + 0x7c]
cmp dword [edx + 0x14], 0x7fffffff
jne 0x5850b1
cmp dword [edx + 0x10], 0xffffffff
je 0x5850bd
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x1b], 0
je 0x5850ca
mov dword [esp + 8], 0xd
jmp 0x58726d
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
add eax, 1
adc edx, 0
cmp edx, dword [esp + 0x6c]
jne 0x5850e8
cmp eax, dword [esp + 0x68]
jbe 0x585102
jmp 0x5850ea
jle 0x585102
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x10]
mov edx, dword [ecx + 0x14]
add eax, 1
adc edx, 0
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x68]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x14], eax
cmp dword [esp + 0x6c], 0x7fffffff
jne 0x585127
cmp dword [esp + 0x68], 0xffffffff
jae 0x585139
jmp 0x585129
jge 0x585139
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
add eax, 1
adc edx, 0
jmp 0x58513d
xor eax, eax
xor edx, edx
push edx
push eax
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
call fcn.00578880
mov edx, dword [esp + 0x70]
cmp byte [edx + 0x1b], 0
je 0x585218
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x6c], ecx
and dword [esp + 0x68], 0xffffffff
and dword [esp + 0x6c], 0x3fffffff
add dword [esp + 0x68], 1
adc dword [esp + 0x6c], 0
xor eax, eax
mov dword [esp + 0x78], eax
jmp 0x5851c5
lea edx, [esp + 0x68]
mov eax, 8
call fcn.005930d8
cmp dword [esp + 0x78], 5
jge 0x5851ae
and dword [esp + 0x68], 0xffffff
mov dword [esp + 0x6c], 0
jmp 0x5851bb
and dword [esp + 0x68], 0xffffffff
and dword [esp + 0x6c], 0x3fffffff
add dword [esp + 0x68], 1
adc dword [esp + 0x6c], 0
push dword [esp + 0x6c]
push dword [esp + 0x6c]
lea ecx, [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx]
xor ecx, ecx
xor edx, edx
call fcn.0057918c
mov dword [esp + 8], eax
test eax, eax
jne 0x5851fd
cmp dword [esp + 0x74], 0
jne 0x5851fd
inc dword [esp + 0x78]
mov ecx, dword [esp + 0x78]
cmp ecx, 0x64
jl 0x585187
cmp dword [esp + 8], 0
jne 0x585218
cmp dword [esp + 0x74], 0
jne 0x585218
mov dword [esp + 8], 0xd
jmp 0x58726d
mov eax, dword [esp + 0x70]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x70]
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x70]
xor eax, eax
mov dword [ecx + 0x50], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 0x14], eax
jmp case.0x58171d.0
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x78], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x39
jne 0x585294
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x74], edx
jmp 0x5852a0
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
test byte [esi + 3], 1
je 0x5852a9
inc dword [edi + 0x60]
test byte [esi + 3], 2
je 0x5852c5
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov ecx, dword [esp + 0x68]
test byte [ecx + 0x1c], 1
je 0x5852e1
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [edx + 0x18], eax
test byte [esi + 3], 0x10
je 0x5852f0
mov edx, dword [esp + 0x78]
mov ecx, dword [edx + 0x4c]
jmp 0x5852f2
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x68]
test byte [eax + 0x1d], 0x40
je 0x585310
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x7c], ecx
jmp 0x585316
xor eax, eax
mov dword [esp + 0x7c], eax
push 0
push 0
mov edx, dword [esp + 0x80]
mov eax, dword [edx]
call fcn.00578880
push dword [esp + 0x74]
push dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
xor edx, edx
mov ecx, dword [ecx + 0x18]
push ecx
mov eax, dword [esp + 0x88]
push eax
mov dl, byte [esi + 3]
and edx, 8
push edx
xor edx, edx
mov ecx, dword [esp + 0x94]
push ecx
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
call fcn.0057b948
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x78]
mov byte [ecx + 0x19], 0
mov ecx, dword [esp + 0x78]
mov byte [ecx + 0x1d], 0
mov eax, dword [esp + 0x78]
xor edx, edx
mov dword [eax + 0x50], edx
cmp dword [esp + 8], 0
jne case.0x58171d.0
cmp dword [ebx + 0xbc], 0
je case.0x58171d.0
cmp dword [esi + 0x10], 0
je case.0x58171d.0
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + 0xc]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov ecx, dword [edx + eax]
mov dword [esp + 0x84], ecx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x88], eax
test byte [esi + 3], 4
je 0x5853d8
mov edx, 0x17
jmp 0x5853dd
mov edx, 0x12
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x88]
push eax
push dword [esp + 0x78]
push dword [esp + 0x78]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x98]
mov eax, dword [ebx + 0xb8]
call dword [ebx + 0xbc]
jmp case.0x58171d.0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x70], edx
cmp dword [ebx + 0xbc], 0
je 0x585451
cmp dword [esi + 0x10], 0
je 0x585451
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 0x40]
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x70]
call fcn.00580648
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
push 0
push 0
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
call fcn.00578880
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
call fcn.0057bb44
mov dword [esp + 8], eax
mov edx, dword [esp + 0x70]
xor ecx, ecx
mov dword [edx + 0x50], ecx
cmp dword [esp + 8], 0
jne 0x5854e3
cmp dword [ebx + 0xbc], 0
je 0x5854e3
cmp dword [esi + 0x10], 0
je 0x5854e3
mov ecx, dword [esp + 0x70]
mov edx, dword [ebx + 0x10]
mov eax, dword [ecx + 0xc]
shl eax, 4
mov ecx, dword [edx + eax]
mov dword [esp + 0x44], ecx
mov eax, dword [esi + 0x10]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x48]
push edx
mov edx, 9
push dword [esp + 0x70]
push dword [esp + 0x70]
mov ecx, dword [esp + 0x50]
mov eax, dword [ebx + 0xb8]
call dword [ebx + 0xbc]
test byte [esi + 8], 1
je case.0x58171d.0
inc dword [edi + 0x60]
jmp case.0x58171d.0
mov edx, dword [edi + 0x60]
mov eax, ebx
call fcn.00581028
xor ecx, ecx
mov dword [edi + 0x60], ecx
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x6c]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x68]
call fcn.00588154
mov dword [esp + 8], eax
cmp dword [esp + 0x6c], 0
je case.0x58171d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov edx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x68]
call fcn.00588100
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x68]
call fcn.00580648
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
mov edx, dword [esp + 0x68]
cmp byte [edx + 0x1f], 0
je 0x585604
lea edx, [esp + 0x78]
mov eax, dword [esp + 0x6c]
call fcn.0057893c
mov eax, dword [ebx + 0x50]
cdq
cmp edx, dword [esp + 0x7c]
jne 0x5855f3
cmp eax, dword [esp + 0x78]
jae 0x5855fa
jmp 0x58722b
jge 0x5855fa
jmp 0x58722b
mov eax, dword [esp + 0x78]
mov dword [esp + 0x70], eax
jmp 0x58561f
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.0057898c
mov edx, dword [esp + 0x70]
cmp edx, dword [ebx + 0x50]
jbe 0x58561f
jmp 0x58722b
xor ecx, ecx
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
call fcn.00591b84
test eax, eax
je 0x585637
jmp 0x58724a
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x70]
mov dword [ecx + 0x18], esi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
mov dx, word [eax + 0x1c]
and dx, 0xbe00
or dx, 0x10
mov word [ecx + 0x1c], dx
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x1f], 0
je 0x585682
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 4]
push edx
mov ecx, dword [esp + 0x74]
xor edx, edx
mov eax, dword [esp + 0x70]
call fcn.00578d6c
mov dword [esp + 8], eax
jmp 0x58569d
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
push eax
mov ecx, dword [esp + 0x74]
xor edx, edx
mov eax, dword [esp + 0x70]
call fcn.00578d80
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x1f], 1
jmp case.0x58171d.0
mov eax, dword [edi + 0x40]
mov edx, dword [esi + 4]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
cmp byte [eax + 0x1c], 0
je 0x5856d5
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 1
jmp case.0x58171d.0
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x1d], 0
je 0x5856f6
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x38]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x74], edx
jmp 0x585783
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x24], 0
je 0x58573a
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x78]
mov edx, dword [eax]
mov dword [esp + 0x7c], edx
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x7c]
mov eax, dword [eax + 0x24]
call dword [esi + 0x30]
mov dword [esp + 8], eax
mov eax, edi
mov edx, dword [esp + 0x78]
call fcn.005815a0
jmp 0x585783
mov eax, dword [esp + 0x68]
call fcn.00580648
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
mov edx, dword [esp + 0x68]
cmp byte [edx + 0x19], 0
je 0x585770
mov ecx, dword [esp + 0x68]
mov esi, dword [ecx + 0x40]
mov dword [esp + 0x70], esi
mov esi, dword [ecx + 0x44]
mov dword [esp + 0x74], esi
jmp 0x585783
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
call fcn.0057893c
mov dword [esp + 8], eax
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x70]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + 0x14], ecx
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1c], 1
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x68]
cmp dword [edx], 0
je case.0x58171d.0
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
call fcn.00575fc0
jmp case.0x58171d.0
mov eax, dword [esi + 4]
mov edx, dword [edi + 0x40]
mov edx, dword [edx + eax*4]
xor eax, eax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
cmp dword [esp + 0x6c], 0
je 0x585809
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.0057913c
mov dword [esp + 8], eax
mov edx, dword [esp + 0x68]
mov cl, byte [esp + 0x70]
mov byte [edx + 0x1c], cl
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1d], 0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
mov edx, dword [esp + 0x68]
xor eax, eax
mov dword [edx + 0x50], eax
cmp dword [esi + 8], 0
jle case.0x58171d.0
cmp dword [esp + 0x70], 0
je case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
inc dword [edi + 0x74]
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], 1
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x48], 0
je 0x585885
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.00587df4
mov dword [esp + 8], eax
jmp 0x5858cd
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.0057910c
mov dword [esp + 8], eax
cmp dword [esp + 0x70], 0
jne 0x5858ab
mov dl, 1
jmp 0x5858ad
xor edx, edx
mov eax, dword [esp + 0x68]
mov byte [eax + 0x1a], dl
mov ecx, dword [esp + 0x68]
mov byte [ecx + 0x1d], 0
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 0x50], eax
mov edx, dword [esp + 0x68]
mov byte [edx + 0x19], 0
mov ecx, dword [esp + 0x68]
mov al, byte [esp + 0x70]
mov byte [ecx + 0x1c], al
cmp dword [esp + 0x70], 0
je case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
cmp dword [ebx + 0xe0], 0
jne 0x5872aa
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
cmp dword [esp + 0x68], 0
jne 0x585915
jmp case.0x58171d.0
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x48], 0
je 0x585934
lea ecx, [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.00588040
mov dword [esp + 8], eax
jmp 0x58594d
mov dword [esp + 0x6c], 1
lea edx, [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
call dword [esi + 0x10]
mov dword [esp + 8], eax
mov edx, dword [esp + 0x68]
mov cl, byte [esp + 0x6c]
mov byte [edx + 0x1c], cl
mov ecx, dword [esp + 0x68]
xor eax, eax
mov dword [ecx + 0x50], eax
cmp dword [esp + 0x6c], 0
jne 0x58597e
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
cmp byte [esi + 3], 0
je 0x58597e
xor ecx, ecx
mov cl, byte [esi + 3]
inc dword [edi + ecx*4 + 0x6c]
mov eax, dword [esp + 0x68]
mov byte [eax + 0x19], 0
jmp case.0x58171d.0
mov edx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [edx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je case.0x58171d.0
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1d], 0x40
je 0x5859d3
mov eax, dword [esp + 0x1c]
call fcn.00591ca0
jmp 0x5859d5
xor eax, eax
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne case.0x58171d.0
mov edx, dword [esp + 0x68]
cmp dword [edx + 0x48], 0
je 0x585a06
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.00587ca0
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 4]
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x70]
cdq
push edx
push eax
push 0
push 0
mov ecx, dword [esi + 0xc]
push ecx
test byte [esi + 3], 0x10
je 0x585a3a
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x4c]
jmp 0x585a3c
xor eax, eax
push eax
mov ecx, 0x5c8c0e
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x84]
call fcn.0057b948
mov dword [esp + 8], eax
mov edx, dword [esp + 0x68]
xor ecx, ecx
mov dword [edx + 0x50], ecx
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je case.0x58171d.0
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 8]
mov dword [esp + 0x78], ecx
mov ax, word [esi + 0xc]
mov word [esp + 0x7c], ax
mov byte [esp + 0x7e], 0
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x88], edx
push 0
push 0
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x84]
xor ecx, ecx
mov eax, dword [esp + 0x78]
call fcn.0057918c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x585af0
cmp dword [esp + 0x70], 0
jne 0x585af0
mov eax, dword [esp + 0x6c]
call fcn.0057bb44
mov dword [esp + 8], eax
mov edx, dword [esp + 0x68]
xor ecx, ecx
mov dword [edx + 0x50], ecx
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x6c], edx
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 1
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov eax, dword [esp + 0x6c]
call fcn.00580648
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58726d
mov edx, dword [esp + 0x6c]
cmp byte [edx + 0x1c], 0
jne case.0x58171d.0
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.00580e50
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x585b6f
jmp 0x58726d
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x70]
mov dword [ecx + 0x10], esi
mov esi, dword [esp + 0x74]
mov dword [ecx + 0x14], esi
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], 4
jmp case.0x58171d.0
mov edx, dword [edi + 0x40]
mov ecx, dword [esi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
cmp dword [eax], 0
je case.0x58171d.0
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 8]
mov dword [esp + 0x70], ecx
mov ax, word [esi + 0x10]
mov word [esp + 0x74], ax
cmp byte [esi + 3], 0
je 0x585bcb
mov byte [esp + 0x76], 3
jmp 0x585bd0
mov byte [esp + 0x76], 2
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x6c]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x80], edx
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x68]
call fcn.00580f80
mov dword [esp + 8], eax
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x64
jne 0x585c08
neg dword [esp + 0x6c]
jmp 0x585c0c
inc dword [esp + 0x6c]
cmp dword [esp + 0x6c], 0
jle case.0x58171d.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
xor edx, edx
mov dword [esp + 0x6c], edx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x70], ecx
jmp 0x585c6a
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x30], 0xbdf20da3
jne 0x585c5f
mov edx, dword [esp + 0x70]
mov cl, byte [edx + 0x5e]
shr ecx, 2
and ecx, 3
cmp ecx, 2
jae 0x585c5f
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x54], 0
jl 0x585c5f
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, dword [edx + 0x3c]
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
jne 0x585c32
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], 1
cmp dword [esp + 0x6c], 1
jle 0x585c93
mov dword [esp + 8], 6
mov byte [edi + 0x5c], 2
jmp case.0x58171d.0
mov edx, dword [esi + 0xc]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + ecx + 4]
lea ecx, [esp + 0x68]
mov edx, dword [esi + 4]
call fcn.0057c39c
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 4
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
cmp dword [esp + 8], 0
jne case.0x58171d.0
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov eax, dword [esi + 4]
push eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov eax, ebx
call fcn.005508f4
mov cl, byte [esp + 0x74]
inc ecx
mov byte [esp + 0xc], cl
jmp case.0x58171d.0
xor eax, eax
mov dword [esp + 0x68], eax
mov edx, dword [esi + 8]
mov eax, dword [ebx + 0x10]
shl edx, 4
cmp dword [esi + 0xc], 0
mov eax, dword [eax + edx + 4]
je 0x585d27
lea ecx, [esp + 0x68]
jmp 0x585d29
xor ecx, ecx
mov edx, dword [esi + 4]
call fcn.0057c14c
mov dword [esp + 8], eax
cmp dword [esi + 0xc], 0
je case.0x58171d.0
mov eax, dword [esp + 0x68]
add dword [edi + 0x60], eax
cmp dword [esi + 0xc], 0
jle case.0x58171d.0
mov ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x68]
cdq
lea ecx, [ecx + ecx*4]
add dword [esi + ecx*8 + 0x10], eax
adc dword [esi + ecx*8 + 0x14], edx
jmp case.0x58171d.0
xor eax, eax
mov dword [esp + 0x68], eax
mov edx, dword [esi + 4]
shl edx, 4
add edx, dword [ebx + 0x10]
mov dword [esp + 0x70], edx
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x69
jne 0x585d92
mov dword [esp + 0x6c], 1
jmp 0x585d9a
mov dword [esp + 0x6c], 2
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x6c]
call fcn.0057bfcc
mov dword [esp + 8], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 1
jne 0x585ddb
mov eax, str.sqlite_temp_master
jmp 0x585de0
mov eax, str.sqlite_master
mov dword [esp + 0x6c], eax
mov dword [esp + 0x74], ebx
mov edx, dword [esi + 4]
lea ecx, [edi + 0x34]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x78], ecx
mov ecx, dword [esi + 0x10]
push ecx
mov eax, dword [esp + 0x70]
push eax
mov edx, dword [esp + 0x70]
mov eax, dword [ebx + 0x10]
shl edx, 4
mov edx, dword [eax + edx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.005963d8
add esp, 0x14
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 0
jne 0x585e30
mov dword [esp + 8], 7
jmp 0x585e7f
mov byte [ebx + 0x81], 1
xor ecx, ecx
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x74]
push ecx
push 0
mov ecx, fcn.0054e13c
mov edx, dword [esp + 0x78]
mov eax, ebx
call fcn.00567bf0
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x585e6d
mov ecx, dword [esp + 0x80]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x70]
mov eax, ebx
call fcn.00596c18
mov byte [ebx + 0x81], 0
cmp dword [esp + 8], 0
je 0x585e8d
mov eax, ebx
call fcn.0054f2e8
cmp dword [esp + 8], 7
jne case.0x58171d.0
jmp 0x58724a
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.005692dc
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0054f464
jmp case.0x58171d.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0054f1a0
jmp case.0x58171d.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0055dfe0
jmp case.0x58171d.0
mov edx, dword [esi + 8]
mov eax, ebx
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x68]
inc edx
shl edx, 2
call fcn.00596e00
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je 0x58724a
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], ecx
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x70], eax
jmp 0x585f58
mov edx, dword [esp + 0x70]
shl edx, 3
lea edx, [edx + edx*4]
add edx, ebp
push edx
call fcn.00591f30
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [edx + ecx*4], eax
inc dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x68]
jl 0x585f37
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
xor ecx, ecx
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x7c]
mov eax, dword [eax + 0x10]
push eax
lea edx, [esp + 0x78]
push edx
xor ecx, ecx
mov cl, byte [esi + 3]
shl ecx, 4
mov esi, dword [ebx + 0x10]
mov eax, dword [esi + ecx + 4]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.0057cf8c
mov dword [esp + 0x78], eax
mov eax, ebx
mov edx, dword [esp + 0x6c]
call fcn.00596c18
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
cdq
sub dword [ecx + 0x10], eax
sbb dword [ecx + 0x14], edx
mov eax, ebp
call fcn.00592110
cmp dword [esp + 0x74], 0
jne 0x585fc6
jmp 0x585fec
cmp dword [esp + 0x78], 0
jne 0x585fd4
jmp 0x58724a
push 1
push fcn.00596bc0
or ecx, 0xffffffff
mov edx, dword [esp + 0x80]
mov eax, ebp
call fcn.0059231c
xor edx, edx
mov eax, ebp
mov dl, byte [esp + 0xd]
call fcn.00591b6c
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 8]
shl ebp, 3
shl eax, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
test byte [ebp + 0x1c], 0x20
jne 0x586034
mov eax, ebp
call fcn.005921e8
test byte [ebp + 0x1c], 0x20
je 0x58724a
mov edx, dword [esp + 0x1c]
push dword [edx + 0x14]
push dword [edx + 0x10]
mov eax, dword [ebp + 0x10]
call fcn.00592c7c
jmp case.0x58171d.0
cmp dword [ebx + 0xe0], 0
jne 0x5872aa
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 0x20
je 0x58607c
lea edx, [esp + 0x68]
mov eax, dword [ebp + 0x10]
call fcn.00592eb0
test eax, eax
jne 0x58608f
mov eax, ebp
call fcn.00592110
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x58171d.0
push dword [esp + 0x6c]
push dword [esp + 0x6c]
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x20]
call fcn.00592180
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
mov eax, dword [esi + 0xc]
shl eax, 3
shl ebp, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov edx, dword [esi + 0x10]
mov dword [esp + 0x68], edx
test byte [ebp + 0x1c], 0x20
jne 0x5860eb
mov eax, ebp
call fcn.005921e8
test byte [ebp + 0x1c], 0x20
je 0x58724a
cmp dword [esp + 0x68], 0
je 0x58612d
mov edx, dword [esp + 0x20]
push dword [edx + 0x14]
push dword [edx + 0x10]
cmp dword [esp + 0x70], 0
jl 0x58610c
mov dl, byte [esp + 0x70]
and dl, 0xf
jmp 0x58610e
mov dl, 0xff
mov eax, dword [ebp + 0x10]
call fcn.00592ef8
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je 0x58612d
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
cmp dword [esp + 0x68], 0
jl case.0x58171d.0
mov ecx, dword [esp + 0x20]
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov eax, dword [ebp + 0x10]
call fcn.00592c7c
jmp case.0x58171d.0
mov edx, dword [esi + 0x10]
mov dword [esp + 0x80], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
cmp byte [esi + 3], 0
je 0x5861ba
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x84], eax
mov edx, dword [edi + 0xa0]
mov dword [esp + 0x7c], edx
jmp 0x586198
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 4]
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x7c], 0
je 0x5861af
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0x18]
cmp ecx, dword [esp + 0x84]
jne 0x58618d
cmp dword [esp + 0x7c], 0
jne case.0x58171d.0
mov eax, dword [edi + 0xa8]
cmp eax, dword [ebx + 0x78]
jl 0x5861e4
mov dword [esp + 8], 1
push str.too_many_levels_of_trigger_recursion
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00596f9c
add esp, 0xc
jmp case.0x58171d.0
mov ecx, dword [esp + 0x70]
test byte [ecx + 0x1c], 0x40
jne 0x586348
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x80]
add edx, dword [eax + 0xc]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x80]
shl edx, 3
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x80]
shl eax, 2
lea edx, [edx + edx*4]
add edx, eax
mov eax, ebx
add edx, dword [ecx + 0x10]
add edx, 0x48
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x6c]
call fcn.00596ddc
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x7c], 0
jne 0x58624f
jmp 0x58724a
mov eax, dword [esp + 0x70]
call fcn.00591e84
mov edx, dword [esp + 0x70]
mov word [edx + 0x1c], 0x40
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
mov dword [ecx + 0x10], esi
mov eax, dword [esp + 0x7c]
mov dword [eax], edi
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x68]
mov dword [edx + 0x3c], ecx
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
mov eax, dword [ecx + 0xc]
mov dword [edx + 0x40], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x7c]
mov edx, dword [edi + 8]
mov dword [eax + 0xc], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [edi + 0x18]
mov dword [ecx + 0x34], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [edi + 0x40]
mov dword [eax + 0x14], ecx
mov dx, word [edi + 0x2e]
mov eax, dword [esp + 0x7c]
mov word [eax + 0x28], dx
mov ecx, dword [esp + 0x7c]
mov edx, dword [edi + 4]
mov dword [ecx + 8], edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [edi + 0x1c]
mov dword [eax + 0x30], ecx
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov ecx, dword [edx + 0x14]
mov dword [eax + 0x18], ecx
mov eax, dword [esp + 0x7c]
mov edx, dword [edi + 0xb8]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x7c]
mov edx, dword [edi + 0xb4]
mov dword [ecx + 0x38], edx
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x3c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x7c]
add eax, 0x48
mov dword [esp + 0x78], eax
mov edx, dword [esp + 0x7c]
add edx, 0x48
mov dword [esp + 0x74], edx
jmp 0x58633c
mov ecx, dword [esp + 0x74]
mov word [ecx + 0x1c], 0x80
mov eax, dword [esp + 0x74]
mov dword [eax], ebx
add dword [esp + 0x74], 0x28
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x78]
jne 0x586327
jmp 0x586353
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x7c], eax
inc dword [edi + 0xa8]
mov eax, dword [esp + 0x7c]
mov edx, dword [edi + 0xa0]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x30]
mov dword [edx + 0x20], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x24], ecx
xor edx, edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [edi + 0x60]
mov dword [eax + 0x44], ecx
mov dword [edi + 0x60], edx
mov ecx, dword [esp + 0x7c]
mov dword [edi + 0xa0], ecx
mov eax, dword [esp + 0x7c]
add eax, 0x20
mov dword [esp + 0x18], eax
mov dword [edi + 8], eax
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0x3c]
mov dword [edi + 0x18], ecx
mov ecx, dword [esp + 0x7c]
mov ax, word [ecx + 0x40]
mov word [edi + 0x2e], ax
mov edx, dword [edi + 0x18]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
add edx, 0x28
mov dword [edi + 0x40], edx
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov dword [edi + 4], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 4]
mov dword [edi + 0x1c], ecx
movzx eax, word [edi + 0x2e]
shl eax, 2
mov ecx, dword [edi + 0x40]
add ecx, eax
mov dword [edi + 0xb8], ecx
mov edx, dword [esp + 0x80]
mov ecx, dword [edx + 0x10]
xor edx, edx
mov dword [edi + 0xb4], ecx
mov dword [esp], 0xffffffff
mov ecx, dword [edi + 0xb4]
mov eax, dword [edi + 0xb8]
call fcn.0054b37c
jmp case.0x58171d.0
mov ecx, dword [edi + 0xa0]
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
lea edx, [edx + edx*4]
mov eax, dword [esp + 0x68]
mov edx, dword [ecx + edx*4 + 4]
add edx, dword [esi + 4]
mov ecx, edx
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [eax + 0xc]
mov dword [esp + 0x6c], ecx
mov ecx, 0x1000
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x24]
call fcn.0059225c
jmp case.0x58171d.0
cmp dword [esi + 4], 0
je 0x58648d
mov eax, dword [esi + 8]
cdq
add dword [ebx + 0x1e8], eax
adc dword [ebx + 0x1ec], edx
jmp case.0x58171d.0
mov eax, dword [esi + 8]
cdq
add dword [edi + 0x88], eax
adc dword [edi + 0x8c], edx
jmp case.0x58171d.0
cmp dword [esi + 4], 0
je 0x5864ce
cmp dword [ebx + 0x1ec], 0
jne case.0x58171d.0
cmp dword [ebx + 0x1e8], 0
jne case.0x58171d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
cmp dword [edi + 0x8c], 0
jne case.0x58171d.0
cmp dword [edi + 0x88], 0
jne case.0x58171d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
cmp dword [edi + 0xa0], 0
je 0x586536
mov eax, dword [edi + 0xa0]
mov dword [esp + 0x6c], eax
jmp 0x586514
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx + 4]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x6c]
cmp dword [eax + 4], 0
jne 0x586509
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x6c]
shl eax, 3
mov ecx, dword [edx + 0xc]
lea eax, [eax + eax*4]
add ecx, eax
mov dword [esp + 0x68], ecx
jmp 0x586547
mov edx, dword [esi + 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x68]
call fcn.00592068
mov edx, dword [esi + 8]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
call fcn.00592068
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
cmp edx, dword [ecx + 0x14]
jne 0x586588
cmp eax, dword [ecx + 0x10]
jae case.0x58171d.0
jmp 0x58658e
jge case.0x58171d.0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
cmp dword [ebp + 0x14], 0
jne 0x5865c7
cmp dword [ebp + 0x10], 0
jbe case.0x58171d.0
jmp 0x5865cd
jle case.0x58171d.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
cmp dword [ebp + 0x14], 0
jne 0x5865f9
cmp dword [ebp + 0x10], 0
jae case.0x58171d.0
jmp 0x5865ff
jge case.0x58171d.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, dword [esi + 0xc]
cdq
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
cmp dword [ebp + 0x14], 0
jne case.0x58171d.0
cmp dword [ebp + 0x10], 0
jne case.0x58171d.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x58171d.0
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x68], ecx
mov eax, dword [esi + 8]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov edx, dword [edi + 0xc]
mov dword [esp + 0xb8], edx
xor ecx, ecx
mov dword [esp + 0x6c], ecx
jmp 0x586693
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x74]
call fcn.005813b4
inc dword [esp + 0x6c]
add dword [esp + 0x74], 0x28
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
jl 0x58666f
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x78], ecx
xor ecx, ecx
mov eax, dword [esi + 0xc]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x18]
mov dword [esp + 0x70], eax
mov dword [esp + 0xa8], eax
mov edx, dword [esp + 0x70]
xor eax, eax
inc dword [edx + 0x18]
xor edx, edx
mov word [esp + 0x9c], 1
mov dword [esp + 0x84], ecx
xor ecx, ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa0], eax
mov dword [esp + 0x80], ebx
mov dword [esp + 0xb0], edx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb4], eax
mov edx, dword [esp + 0x78]
test byte [edx + 3], 8
je 0x58671e
mov ecx, dword [esi - 4]
mov dword [esp + 0xac], ecx
lea eax, [esp + 0x78]
mov ebp, dword [esp + 0x78]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0x68]
call dword [ebp + 0x10]
cmp dword [esp + 0xb0], 0
je 0x586768
lea eax, [esp + 0x80]
call fcn.0057d8d0
push eax
push 0x5c8c0c
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00596f9c
add esp, 0x10
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
cmp dword [esp + 0xb4], 0
je 0x586797
mov edx, dword [esi - 0x10]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
je 0x586797
push 0
push 1
mov eax, dword [esp + 0x74]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x20]
call fcn.00592180
lea eax, [esp + 0x80]
call fcn.00591e84
jmp case.0x58171d.0
mov edx, dword [esi + 4]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x68], edx
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x68]
call fcn.00591dd0
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x5867ec
mov eax, dword [esp + 0x68]
call fcn.0057d8d0
push eax
push 0x5c8c0c
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00596f9c
add esp, 0x10
xor edx, edx
mov eax, dword [esp + 0x68]
mov dl, byte [esp + 0xd]
call fcn.00591b6c
mov eax, dword [esp + 0x68]
call fcn.00592238
test eax, eax
je case.0x58171d.0
jmp 0x58722b
xor edx, edx
or ecx, 0xffffffff
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ecx
lea eax, [esp + 0x70]
push eax
lea edx, [esp + 0x78]
push edx
mov eax, ebx
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
call fcn.00564f98
mov dword [esp + 8], eax
cmp dword [esp + 8], 5
jne 0x586857
xor ecx, ecx
mov dword [esp + 8], ecx
mov dword [esp + 0x6c], 1
xor eax, eax
mov dword [esp + 0x68], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x78], edx
jmp 0x586890
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + ecx*4 + 0x6c]
cdq
push edx
push eax
mov eax, dword [esp + 0x80]
call fcn.00592180
inc dword [esp + 0x68]
add dword [esp + 0x78], 0x28
cmp dword [esp + 0x68], 3
jl 0x586870
jmp case.0x58171d.0
mov edx, dword [esi + 0xc]
mov dword [esp + 0x70], edx
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x68]
call fcn.0057c57c
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
call fcn.0058efc8
mov dword [esp + 0x74], eax
cmp dword [esp + 0x70], 0xffffffff
jne 0x5868dd
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x6c]
call fcn.0058efd0
test eax, eax
jne 0x5868f2
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov edx, 1
mov eax, dword [esp + 0x6c]
call fcn.0058ecf8
mov dword [esp + 0x78], eax
cmp dword [esp + 0x70], 5
jne 0x58692d
mov eax, dword [esp + 0x78]
call fcn.00590a48
test eax, eax
je 0x586925
mov eax, dword [esp + 0x6c]
call fcn.0058f0bc
test eax, eax
jne 0x58692d
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x74]
je 0x5869f7
cmp dword [esp + 0x74], 5
je 0x58694d
cmp dword [esp + 0x70], 5
jne 0x5869f7
cmp byte [ebx + 0x36], 0
je 0x58695c
cmp dword [ebx + 0x84], 1
jle 0x586991
mov dword [esp + 8], 1
cmp dword [esp + 0x70], 5
jne 0x586972
mov ecx, str.into
jmp 0x586977
mov ecx, str.out_of
push ecx
push str.cannot_change__s_wal_mode_from_within_a_transaction
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00596f9c
add esp, 0x10
jmp case.0x58171d.0
cmp dword [esp + 0x74], 5
jne 0x5869bb
mov eax, dword [esp + 0x6c]
call fcn.0058f194
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5869d0
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.0058eef0
jmp 0x5869d0
cmp dword [esp + 0x74], 4
jne 0x5869d0
mov edx, 2
mov eax, dword [esp + 0x6c]
call fcn.0058eef0
cmp dword [esp + 8], 0
jne 0x5869f7
cmp dword [esp + 0x70], 5
jne 0x5869e5
mov edx, 2
jmp 0x5869ea
mov edx, 1
mov eax, dword [esp + 0x68]
call fcn.0057d390
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x586a06
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.0058eef0
mov dword [esp + 0x70], eax
mov ecx, dword [esi + 8]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
mov word [ecx + 0x1c], 0xa02
mov eax, dword [esp + 0x70]
call fcn.0055647c
mov edx, dword [esp + 0x24]
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
call fcn.00590a48
mov edx, dword [esp + 0x24]
mov dword [edx + 0x18], eax
xor edx, edx
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x1f], 1
mov dl, byte [esp + 0xd]
mov eax, dword [esp + 0x24]
call fcn.00591b6c
jmp case.0x58171d.0
lea eax, [edi + 0x34]
mov edx, ebx
call fcn.00588598
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + ecx + 4]
mov dword [esp + 0x68], edx
mov eax, dword [esp + 0x68]
call fcn.005782e4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0x65
jne case.0x58171d.0
mov edx, dword [esi + 8]
dec edx
xor ecx, ecx
mov dword [esp], edx
mov dword [esp + 8], ecx
jmp case.0x58171d.0
cmp dword [esi + 4], 0
jne 0x586ad1
mov eax, ebx
call fcn.00581038
jmp case.0x58171d.0
or byte [edi + 0x5e], 0x20
jmp case.0x58171d.0
mov dl, byte [esi + 0xc]
mov byte [esp + 0x4c], dl
cmp byte [esp + 0x4c], 0
jne 0x586af2
test byte [ebx + 0x19], 8
jne case.0x58171d.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x50]
shl ecx, 4
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + ecx + 4]
mov cl, byte [esp + 0x4c]
mov edx, dword [esi + 8]
call fcn.0057d2d8
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
and ecx, 0xff
cmp ecx, 6
jne case.0x58171d.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x54]
push edx
push str.database_table_is_locked:__s
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00596f9c
add esp, 0x10
jmp case.0x58171d.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x68], eax
mov eax, ebx
mov edx, dword [esp + 0x68]
call fcn.00567348
mov dword [esp + 8], eax
cmp dword [esp + 0x68], 0
je case.0x58171d.0
mov edx, dword [esp + 0x68]
mov eax, edi
mov edx, dword [edx + 8]
call fcn.005815a0
jmp case.0x58171d.0
lea ecx, [edi + 0x34]
push ecx
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.00566fa8
mov dword [esp + 8], eax
jmp case.0x58171d.0
mov cl, byte [edi + 0x5e]
and cl, 0xf3
or cl, 8
mov byte [edi + 0x5e], cl
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.005671c8
mov dword [esp + 8], eax
and byte [edi + 0x5e], 0xf3
jmp case.0x58171d.0
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 8]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x70]
mov edx, dword [eax]
mov dword [esp + 0x74], edx
lea edx, [esp + 0x6c]
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
call dword [ebp + 0x18]
mov dword [esp + 8], eax
mov eax, edi
mov edx, dword [esp + 0x70]
call fcn.005815a0
cmp dword [esp + 8], 0
jne case.0x58171d.0
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [edx], ecx
push 0xffffffffffffffff
push 0
xor ecx, ecx
mov edx, dword [esi + 4]
mov eax, edi
call fcn.005813e8
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x586c4e
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [ecx + 0x24], eax
mov edx, dword [esp + 0x6c]
mov ecx, dword [edx]
mov edx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [edx + 0x28], eax
jmp case.0x58171d.0
mov byte [ebx + 0x38], 1
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
call dword [esi + 0x1c]
jmp case.0x58171d.0
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
add ecx, 0x28
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x84], edx
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x7c], eax
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx]
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x80]
mov edx, dword [eax]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x74]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x6c], eax
xor edx, edx
mov dword [esp + 0x88], edx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x90], ecx
xor ecx, ecx
mov dword [esp + 0x8c], ecx
jmp 0x586d2c
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x90]
shl ecx, 3
mov edx, dword [esp + 0x8c]
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x78]
add ecx, 0x28
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
mov eax, dword [eax + edx*4]
call fcn.005813b4
inc dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x68]
jl 0x586cea
mov cl, byte [edi + 0x5e]
and cl, 0xf3
or cl, 4
mov byte [edi + 0x5e], cl
mov ecx, dword [esp + 0x68]
push ecx
mov eax, dword [esp + 0x94]
push eax
mov ebp, dword [esp + 0x78]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x84]
call dword [ebp + 0x20]
mov dword [esp + 8], eax
mov eax, edi
and byte [edi + 0x5e], 0xf3
mov edx, dword [esp + 0x80]
call fcn.005815a0
cmp dword [esp + 8], 0
jne 0x586d96
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
call dword [ebp + 0x28]
mov dword [esp + 0x88], eax
cmp dword [esp + 0x88], 0
je 0x586da7
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
mov ecx, dword [esp + 0x84]
mov byte [ecx + 0x1c], 0
jmp case.0x58171d.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x58], edx
mov ecx, dword [esi + 0xc]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
mov eax, dword [esp + 0x58]
cmp byte [eax + 0x1c], 0
je 0x586ded
mov eax, dword [esp + 0x70]
call fcn.00592110
jmp case.0x58171d.0
mov edx, dword [esp + 0x58]
mov ecx, dword [edx + 0x24]
mov ecx, dword [ecx]
mov dword [esp + 0x68], ecx
mov ecx, 0x40
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
lea eax, [esp + 0x78]
mov dword [esp + 0x6c], edx
xor edx, edx
call fcn.0054b37c
lea eax, [esp + 0x80]
mov edx, dword [esp + 0x70]
call fcn.005922ec
mov cx, word [esp + 0x9c]
lea edx, [esp + 0x78]
and cx, 0xbe00
or cx, 1
mov word [esp + 0x9c], cx
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esi + 8]
mov eax, dword [eax + 0x24]
call dword [ebp + 0x2c]
mov dword [esp + 8], eax
mov eax, edi
mov edx, dword [esp + 0x68]
call fcn.005815a0
cmp dword [esp + 0xb0], 0
je 0x586e76
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
xor edx, edx
lea eax, [esp + 0x80]
mov dl, byte [esp + 0xd]
call fcn.00591b6c
lea edx, [esp + 0x80]
mov eax, dword [esp + 0x70]
call fcn.005922ec
mov eax, dword [esp + 0x70]
call fcn.00592238
test eax, eax
je case.0x58171d.0
jmp 0x58722b
xor edx, edx
mov dword [esp + 0x70], edx
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x74], edx
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1c], 0
je 0x586ed5
jmp case.0x58171d.0
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + 0x24]
mov edx, dword [eax]
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov dword [esp + 0x6c], eax
mov dl, byte [edi + 0x5e]
and dl, 0xf3
or dl, 4
mov byte [edi + 0x5e], dl
mov ecx, dword [esp + 0x74]
mov ebp, dword [esp + 0x6c]
mov eax, dword [ecx + 0x24]
call dword [ebp + 0x24]
mov dword [esp + 8], eax
mov eax, edi
and byte [edi + 0x5e], 0xf3
mov edx, dword [esp + 0x68]
call fcn.005815a0
cmp dword [esp + 8], 0
jne 0x586f32
mov ecx, dword [esp + 0x74]
mov ebp, dword [esp + 0x6c]
mov eax, dword [ecx + 0x24]
call dword [ebp + 0x28]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 0
jne case.0x58171d.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x58171d.0
mov edx, dword [esi + 0x10]
mov ecx, dword [edx + 8]
mov dword [esp + 0x68], ecx
mov ecx, dword [esi + 4]
shl ecx, 3
lea ecx, [ecx + ecx*4]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x6c], ecx
mov edx, 1
mov eax, dword [esp + 0x6c]
call fcn.00591b6c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne case.0x58171d.0
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov edx, dword [ecx + 4]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
mov dword [esp + 8], eax
mov eax, edi
mov edx, dword [esp + 0x68]
call fcn.005815a0
and byte [edi + 0x5e], 0xdf
jmp case.0x58171d.0
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 8]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x68]
mov ecx, dword [edx]
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 8]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
cmp dword [edx + 0x34], 0
je case.0x58171d.0
mov cl, byte [ebx + 0x3c]
mov byte [esp + 0x5c], cl
mov eax, dword [edi + 0xc]
mov dword [esp + 0x80], eax
mov edx, dword [esi + 0xc]
shl edx, 3
lea edx, [edx + edx*4]
add edx, dword [esp + 0x18]
mov dword [esp + 0x84], edx
xor ecx, ecx
mov dword [esp + 0x74], ecx
jmp 0x58702c
mov eax, dword [esp + 0x84]
call fcn.005813b4
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
mov dword [edx + eax*4], ecx
add dword [esp + 0x84], 0x28
inc dword [esp + 0x74]
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jl 0x586fff
mov cl, byte [esi + 3]
lea eax, [esp + 0x78]
mov byte [ebx + 0x3c], cl
push eax
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x74]
call dword [ebp + 0x34]
mov dword [esp + 8], eax
mov eax, edi
mov cl, byte [esp + 0x5c]
mov byte [ebx + 0x3c], cl
mov edx, dword [esp + 0x68]
call fcn.005815a0
cmp dword [esp + 8], 0
jne 0x587090
cmp dword [esi + 4], 0
je 0x587090
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
cmp dword [esp + 8], 0x13
jne 0x5870ce
mov ecx, dword [esi + 0x10]
cmp byte [ecx + 0x10], 0
je 0x5870ce
xor eax, eax
mov al, byte [esi + 3]
cmp eax, 4
jne 0x5870b5
xor edx, edx
mov dword [esp + 8], edx
jmp case.0x58171d.0
xor ecx, ecx
mov cl, byte [esi + 3]
cmp ecx, 5
jne 0x5870c3
mov al, 2
jmp 0x5870c6
mov al, byte [esi + 3]
mov byte [edi + 0x5c], al
jmp case.0x58171d.0
inc dword [edi + 0x60]
jmp case.0x58171d.0
mov edx, dword [esi + 4]
shl edx, 4
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + edx + 4]
call fcn.00576ef0
xor edx, edx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
mov ecx, dword [esi + 4]
mov eax, dword [ebx + 0x10]
shl ecx, 4
mov edx, dword [eax + ecx + 4]
xor ecx, ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], ecx
cmp dword [esi + 0xc], 0
je 0x587133
mov eax, dword [esp + 0x64]
call fcn.00576ef0
mov dword [esp + 0x60], eax
mov edx, dword [esi + 0xc]
cmp edx, dword [esp + 0x60]
jbe 0x587133
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
call fcn.0057770c
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x58171d.0
cmp dword [ebx + 0x98], 0
je case.0x58171d.0
test byte [edi + 0x5f], 4
jne case.0x58171d.0
cmp dword [esi + 0x10], 0
je 0x587167
mov eax, dword [esi + 0x10]
jmp 0x58716d
mov eax, dword [edi + 0x98]
mov dword [esp + 0x68], eax
test eax, eax
je case.0x58171d.0
mov edx, dword [esp + 0x68]
mov eax, edi
call fcn.005881c4
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x6c]
mov eax, dword [ebx + 0x9c]
call dword [ebx + 0x98]
mov edx, dword [esp + 0x6c]
mov eax, ebx
call fcn.00596c18
jmp case.0x58171d.0
inc dword [esp]
cmp dword [esp + 8], 0
je 0x581686
mov edx, dword [esp + 8]
mov dword [edi + 0x58], edx
mov ecx, dword [edi + 0x34]
push ecx
mov ecx, dword [edi + 0x98]
push ecx
mov eax, dword [esp + 8]
push eax
push str.statement_aborts_at__d:___s___s
mov edx, dword [esp + 0x18]
push edx
call fcn.0059653c
add esp, 0x14
mov eax, edi
call fcn.00580158
cmp dword [esp + 8], 0xc0a
jne 0x5871ed
mov byte [ebx + 0x38], 1
mov dword [esp + 8], 1
xor edx, edx
mov dl, byte [esp + 0xc]
test edx, edx
jle 0x58720d
xor edx, edx
mov eax, ebx
mov dl, byte [esp + 0xc]
dec edx
call fcn.0054f2bc
mov ecx, dword [esp + 0x30]
mov eax, edi
mov dword [ebx + 0x20], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x24], ecx
call fcn.0057f28c
mov eax, dword [esp + 8]
jmp 0x5872da
push str.string_or_blob_too_big
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00596f9c
add esp, 0xc
mov dword [esp + 8], 0x12
jmp 0x5871af
mov byte [ebx + 0x38], 1
push 0x5c8eb7
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00596f9c
add esp, 0xc
mov dword [esp + 8], 7
jmp 0x5871af
cmp byte [ebx + 0x38], 0
je 0x58727b
mov dword [esp + 8], 7
cmp dword [esp + 8], 0xc0a
je 0x5871af
mov eax, dword [esp + 8]
call fcn.0056486c
push eax
push 0x5c8c0c
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00596f9c
add esp, 0x10
jmp 0x5871af
mov dword [esp + 8], 9
mov ecx, dword [esp + 8]
mov dword [edi + 0x58], ecx
mov eax, dword [esp + 8]
call fcn.0056486c
push eax
push 0x5c8c0c
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00596f9c
add esp, 0x10
jmp 0x5871af
add esp, 0x150
pop ebp
pop edi
pop esi
pop ebx
ret