Function at 0x581850
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.0057f4b8
cmp dword [edi + 0x58], 7
jne 0x5818c1
jmp 0x5874c6
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 0x587526
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 0x58742b
cmp byte [ebx + 0x38], 0
jne 0x5874c6
mov esi, dword [esp]
shl esi, 2
lea esi, [esi + esi*4]
add esi, dword [esp + 4]
cmp dword [esp + 0x10], 0
je 0x581953
mov eax, dword [ebx + 0x11c]
cmp eax, dword [esp + 0x14]
jne 0x58194f
mov eax, dword [ebx + 0x118]
call dword [ebx + 0x114]
test eax, eax
je 0x581949
mov dword [esp + 8], 9
jmp 0x58742b
xor edx, edx
mov dword [esp + 0x14], edx
inc dword [esp + 0x14]
test byte [esi + 2], 2
je 0x581989
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 0x58197f
mov eax, dword [esp + 0x24]
call fcn.005920ac
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 4
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x94
ja case.0x581999.0
jmp dword [ecx*4 + 0x5819a0]
cmp dword [ebx + 0xe0], 0
jne 0x587526
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.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.0x581999.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.0x581999.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.0x581999.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.0x581999.0
cmp dword [esi + 4], 0
jne 0x581d1a
cmp dword [edi + 0xa0], 0
je 0x581d1a
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.005812a4
mov eax, dword [esp + 0x38]
call fcn.0057fcd8
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 0x581d07
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.0x581999.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 0x581d6b
mov ecx, dword [esi + 0x10]
push ecx
push 0x62cc08
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00597218
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.005967b8
add esp, 0x14
jmp 0x581d8e
cmp dword [edi + 0x58], 0
je 0x581d8e
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.005967b8
add esp, 0x10
mov eax, edi
call fcn.005803d4
mov dword [esp + 8], eax
cmp dword [esp + 8], 5
jne 0x581db1
mov edx, 5
mov dword [esp + 8], edx
mov dword [edi + 0x58], edx
jmp 0x587489
cmp dword [edi + 0x58], 0
je 0x581dbe
mov eax, 1
jmp 0x581dc3
mov eax, 0x65
mov dword [esp + 8], eax
jmp 0x587489
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x581999.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.0x581999.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.0x581999.0
mov byte [esi], 9
mov eax, dword [esi + 0x10]
call fcn.00590cc4
mov dword [esi + 4], eax
xor edx, edx
mov dl, byte [esp + 0xd]
dec edx
je 0x581eac
push 1
push 0
or ecx, 0xffffffff
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x2c]
call fcn.00592598
mov dword [esp + 8], eax
cmp dword [esp + 8], 0x12
je 0x5874a7
xor edx, edx
mov eax, dword [esp + 0x24]
mov dl, byte [esp + 0xd]
call fcn.00591de8
test eax, eax
jne 0x5874c6
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 0x581e94
mov edx, dword [esi + 0x10]
mov eax, ebx
call fcn.00596e94
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.0x581999.9
jmp 0x5874a7
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.0x581999.0
mov edx, dword [esi + 0xc]
sub edx, dword [esi + 8]
mov dword [esp + 0x68], edx
cmp dword [esi + 4], 0
je 0x581efd
mov cx, 0x101
jmp 0x581f01
mov cx, 1
mov word [esp + 0x6c], cx
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], cx
jmp 0x581f3b
add dword [esp + 0x24], 0x28
mov edx, dword [esp + 0x24]
test word [edx + 0x1c], 0x2460
je 0x581f2a
mov eax, dword [esp + 0x24]
call fcn.005920ac
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 0x581f10
jmp case.0x581999.0
push 0
push 0
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x2c]
call fcn.00592598
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp case.0x581999.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.005924b4
test eax, eax
je 0x581f8f
jmp 0x5874a7
mov ecx, 0x800
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
call fcn.005924d8
jmp case.0x581999.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 0x58200d
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.00592568
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 0x581fdf
jmp case.0x581999.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.005924d8
mov edx, dword [esp + 0x24]
test byte [edx + 0x1d], 0x10
je 0x582071
mov eax, dword [esp + 0x24]
call fcn.00591ec0
test eax, eax
je 0x582071
jmp 0x5874c6
mov edx, dword [esp + 0x68]
add dword [esp + 0x68], 0xffffffff
test edx, edx
je case.0x581999.0
add dword [esp + 0x24], 0x28
add ebp, 0x28
jmp 0x582045
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.005924d8
jmp case.0x581999.0
xor edx, edx
mov eax, edi
call fcn.0058036c
mov dword [esp + 8], eax
test eax, eax
je 0x5820d6
jmp case.0x581999.0
mov edx, 1
mov eax, edi
call fcn.00580278
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x5820f2
jmp case.0x581999.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 0x58216c
mov eax, dword [esp + 0x6c]
lea ecx, [eax + eax*4]
mov edx, dword [esp + 0x68]
test byte [edx + ecx*8 + 0x1d], 0x10
je 0x582142
shl eax, 3
lea eax, [eax + eax*4]
add eax, edx
call fcn.00591ec0
test eax, eax
je 0x582142
jmp 0x5874c6
mov eax, dword [esp + 0x6c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x68]
call fcn.00591f70
mov eax, dword [esp + 0x6c]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x68]
call fcn.00581630
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, dword [esi + 8]
jl 0x58211a
cmp byte [ebx + 0x38], 0
jne 0x5874c6
mov ecx, dword [esp]
inc ecx
mov dword [edi + 0x54], ecx
mov dword [esp + 8], 0x64
jmp 0x587489
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 0x5821e2
mov eax, dword [esp + 0x24]
call fcn.0059238c
jmp case.0x581999.0
test byte [ebp + 0x1d], 0x40
je 0x5821f1
mov eax, ebp
call fcn.00591f1c
jmp 0x5821f3
xor eax, eax
test eax, eax
jne 0x5874c6
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1d], 0x40
je 0x582210
mov eax, dword [esp + 0x1c]
call fcn.00591f1c
jmp 0x582212
xor eax, eax
test eax, eax
jne 0x5874c6
test byte [ebp + 0x1c], 0x12
jne 0x582236
xor edx, edx
mov eax, ebp
mov dl, byte [esp + 0xd]
call fcn.00591fc0
test eax, eax
je 0x582236
jmp 0x5874c6
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1c], 0x12
jne 0x582258
xor edx, edx
mov eax, dword [esp + 0x1c]
mov dl, byte [esp + 0xd]
call fcn.00591fc0
test eax, eax
je 0x582258
jmp 0x5874c6
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 0x582280
cmp eax, dword [esp + 0x68]
jae 0x582287
jmp 0x5874a7
jge 0x582287
jmp 0x5874a7
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.00591e00
test eax, eax
je 0x5822c9
jmp 0x5874c6
mov edx, dword [esp + 0x24]
cmp edx, dword [esp + 0x1c]
je 0x5822ed
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.0054b5d8
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.0054b5d8
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.0x581999.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.0058173c
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.0058173c
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 0x582702
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 0x582540
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 0x582400
dec dl
je 0x582421
dec dl
je 0x582442
dec dl
je 0x582463
jmp 0x5824bd
push dword [esp + 0x74]
push dword [esp + 0x74]
lea eax, [esp + 0x80]
call fcn.00591b74
test eax, eax
jne 0x582545
jmp 0x582510
push dword [esp + 0x74]
push dword [esp + 0x74]
lea eax, [esp + 0x80]
call fcn.00591c3c
test eax, eax
jne 0x582545
jmp 0x582510
push dword [esp + 0x74]
push dword [esp + 0x74]
lea eax, [esp + 0x80]
call fcn.00591c94
test eax, eax
jne 0x582545
jmp 0x582510
cmp dword [esp + 0x74], 0
jne 0x582475
cmp dword [esp + 0x70], 0
je 0x582702
cmp dword [esp + 0x74], 0xffffffff
jne 0x582498
cmp dword [esp + 0x70], 0xffffffff
jne 0x582498
cmp dword [esp + 0x7c], 0x80000000
jne 0x582498
cmp dword [esp + 0x78], 0
je 0x582545
push dword [esp + 0x74]
push dword [esp + 0x74]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
call fcn.0054b21c
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
jmp 0x582510
cmp dword [esp + 0x74], 0
jne 0x5824cf
cmp dword [esp + 0x70], 0
je 0x582702
cmp dword [esp + 0x74], 0xffffffff
jne 0x5824ed
cmp dword [esp + 0x70], 0xffffffff
jne 0x5824ed
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.0054b2b0
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.0x581999.0
mov byte [esp + 0x68], 0
mov eax, ebp
call fcn.00592214
fstp qword [esp + 0x80]
wait
mov eax, dword [esp + 0x1c]
call fcn.00592214
fstp qword [esp + 0x88]
wait
mov dl, byte [esi]
sub dl, 0x56
je 0x58257d
dec dl
je 0x582598
dec dl
je 0x5825b3
dec dl
je 0x5825ce
jmp 0x582605
fld qword [esp + 0x80]
fadd qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582695
fld qword [esp + 0x80]
fsubr qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582695
fld qword [esp + 0x80]
fmul qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582695
fld qword [esp + 0x80]
fld dword [0x587564]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x44
jnp 0x582702
fld qword [esp + 0x80]
fdivr qword [esp + 0x88]
fstp qword [esp + 0x88]
wait
jmp 0x582695
fld qword [esp + 0x80]
call fcn.0054b1ec
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
fld qword [esp + 0x88]
call fcn.0054b1ec
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x74], 0
jne 0x58263f
cmp dword [esp + 0x70], 0
je 0x582702
cmp dword [esp + 0x74], 0xffffffff
jne 0x58265d
cmp dword [esp + 0x70], 0xffffffff
jne 0x58265d
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.0054b2b0
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.00590cb0
test eax, eax
je 0x5826ae
jmp 0x582702
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.0x581999.0
cmp byte [esp + 0x68], 0
jne case.0x581999.0
mov eax, dword [esp + 0x24]
call fcn.00592280
jmp case.0x581999.0
mov eax, dword [esp + 0x24]
call fcn.0059238c
jmp case.0x581999.0
cmp dword [esi + 4], 0
je case.0x581999.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.005923fc
jmp case.0x581999.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 0x5827ad
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 0x58279b
call fcn.00591ec0
test eax, eax
je 0x58279b
jmp 0x5874c6
mov eax, dword [esp + 0x6c]
call fcn.00581630
inc dword [esp + 0x68]
add dword [esp + 0x6c], 0x28
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0xb4]
jl 0x582775
cmp byte [esi + 1], 0xfb
jne 0x5827cf
mov edx, dword [esi + 0x10]
xor ecx, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
jmp 0x5827e0
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.00592568
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 0x582843
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 0x582896
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x74]
call fcn.0058078c
mov ecx, dword [esp + 0x74]
mov dword [esi + 0x10], ecx
mov byte [esi + 1], 0xf9
cmp byte [ebx + 0x38], 0
je 0x5828aa
lea eax, [esp + 0x78]
call fcn.00592100
jmp 0x5874c6
cmp dword [esp + 0xa8], 0
je 0x5828db
lea eax, [esp + 0x78]
call fcn.0057db4c
push eax
push 0x62cc08
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00597218
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.00591de8
lea edx, [esp + 0x78]
mov eax, dword [esp + 0x24]
call fcn.00592568
mov eax, dword [esp + 0x24]
call fcn.005924b4
test eax, eax
je case.0x581999.0
jmp 0x5874a7
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 0x582961
mov eax, dword [esp + 0x24]
call fcn.0059238c
jmp case.0x581999.0
mov edx, dword [esp + 0x1c]
push edx
call fcn.005921ac
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
push ebp
call fcn.005921ac
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 0x5829ad
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
and dword [esp + 0x68], eax
and dword [esp + 0x6c], edx
jmp 0x582b18
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x53
jne 0x5829d0
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
or dword [esp + 0x68], eax
or dword [esp + 0x6c], edx
jmp 0x582b18
cmp dword [esp + 0x7c], 0
jne 0x5829e2
cmp dword [esp + 0x78], 0
je 0x582b18
cmp dword [esp + 0x7c], 0
jne 0x5829f2
cmp dword [esp + 0x78], 0
jae 0x582a36
jmp 0x5829f4
jge 0x582a36
mov cl, 0xa9
sub cl, byte [esp + 0x80]
mov byte [esp + 0x80], cl
cmp dword [esp + 0x7c], 0xffffffff
jne 0x582a14
cmp dword [esp + 0x78], 0xffffffc0
jbe 0x582a27
jmp 0x582a16
jle 0x582a27
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
neg eax
adc edx, 0
neg edx
jmp 0x582a2e
mov eax, 0x40
xor edx, edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
jne 0x582a46
cmp dword [esp + 0x78], 0x40
jb 0x582a7d
jmp 0x582a48
jl 0x582a7d
cmp dword [esp + 0x6c], 0
jne 0x582a58
cmp dword [esp + 0x68], 0
jae 0x582a68
jmp 0x582a5a
jge 0x582a68
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x54
jne 0x582a6c
xor eax, eax
jmp 0x582a6f
or eax, 0xffffffff
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jmp 0x582b18
lea edx, [esp + 0x68]
lea eax, [esp + 0x70]
mov ecx, 8
call fcn.0054b5d8
xor ecx, ecx
mov cl, byte [esp + 0x80]
cmp ecx, 0x54
jne 0x582aba
mov eax, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.0054b350
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
jmp 0x582b06
mov eax, dword [esp + 0x78]
mov ecx, eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
call fcn.0054b40c
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
cmp dword [esp + 0x6c], 0
jne 0x582ae5
cmp dword [esp + 0x68], 0
jae 0x582b06
jmp 0x582ae7
jge 0x582b06
mov eax, dword [esp + 0x78]
mov ecx, 0x40
sub ecx, eax
mov eax, 0xffffffff
mov edx, eax
call fcn.0054b350
or dword [esp + 0x70], eax
or dword [esp + 0x74], edx
lea edx, [esp + 0x70]
lea eax, [esp + 0x68]
mov ecx, 8
call fcn.0054b5d8
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.0x581999.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.005922e4
mov eax, dword [esi + 8]
cdq
add dword [ebp + 0x10], eax
adc dword [ebp + 0x14], edx
jmp case.0x581999.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.005817ac
test byte [ebp + 0x1c], 4
jne 0x582bb1
cmp dword [esi + 8], 0
jne 0x582ba5
mov dword [esp + 8], 0x14
jmp 0x5874e9
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.0
mov ax, word [ebp + 0x1c]
and ax, 0xbe00
or ax, 4
mov word [ebp + 0x1c], ax
jmp case.0x581999.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.0x581999.0
mov eax, ebp
call fcn.00592308
jmp case.0x581999.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.0x581999.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.005817ac
test byte [ebp + 0x1d], 0x40
je 0x582c2c
mov eax, ebp
call fcn.00591f1c
jmp 0x582c2e
xor eax, eax
mov dword [esp + 8], eax
and word [ebp + 0x1c], 0xbfe3
jmp case.0x581999.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.0x581999.0
test byte [ebp + 0x1c], 0x10
jne 0x582c7e
mov cl, byte [esp + 0xd]
mov dl, 0x61
mov eax, ebp
call fcn.005817ac
mov cx, word [ebp + 0x1c]
and cx, 0xbe00
or cx, 0x10
mov word [ebp + 0x1c], cx
jmp case.0x581999.0
and word [ebp + 0x1c], 0xfe10
jmp case.0x581999.0
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
mov eax, ebp
call fcn.0059232c
jmp case.0x581999.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.0x581999.0
mov eax, ebp
call fcn.005922e4
jmp case.0x581999.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.0x581999.0
mov eax, ebp
call fcn.00592308
jmp case.0x581999.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 0x582db2
test byte [esi + 3], 0x80
je 0x582d65
test byte [esp + 0x6e], 1
je 0x582d58
test byte [esp + 0x70], 1
je 0x582d58
test byte [esp + 0x71], 1
jne 0x582d58
xor edx, edx
mov dword [esp + 0x68], edx
jmp 0x582e1f
mov dword [esp + 0x68], 1
jmp 0x582e1f
test byte [esi + 3], 0x10
je 0x582d9a
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.0x581999.0
test byte [esi + 3], 8
je case.0x581999.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.0
mov cl, byte [esi + 3]
and cl, 0x67
mov byte [esp + 0x6c], cl
cmp byte [esp + 0x6c], 0
je 0x582ded
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, ebp
call fcn.005817ac
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, dword [esp + 0x20]
call fcn.005817ac
cmp byte [ebx + 0x38], 0
jne 0x5874c6
test byte [ebp + 0x1d], 0x40
je 0x582dfa
mov eax, ebp
call fcn.00591f1c
mov edx, dword [esp + 0x20]
test byte [edx + 0x1d], 0x40
je 0x582e0d
mov eax, dword [esp + 0x20]
call fcn.00591f1c
mov ecx, dword [esi + 0x10]
mov edx, ebp
mov eax, dword [esp + 0x20]
call fcn.00592724
mov dword [esp + 0x68], eax
xor edx, edx
mov dl, byte [esi]
add edx, 0xffffffb5
cmp edx, 4
ja case.default.0x582e2b
jmp dword [edx*4 + 0x582e32]
cmp dword [esp + 0x68], 0
sete cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x582eaa
cmp dword [esp + 0x68], 0
setne cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x582eaa
cmp dword [esp + 0x68], 0
setl al
and eax, 1
mov dword [esp + 0x68], eax
jmp 0x582eaa
cmp dword [esp + 0x68], 0
setle dl
and edx, 1
mov dword [esp + 0x68], edx
jmp 0x582eaa
cmp dword [esp + 0x68], 0
setg cl
and ecx, 1
mov dword [esp + 0x68], ecx
jmp 0x582eaa
cmp dword [esp + 0x68], 0
setge al
and eax, 1
mov dword [esp + 0x68], eax
test byte [esi + 3], 0x10
je 0x582eea
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 0x582ef8
cmp dword [esp + 0x68], 0
je 0x582ef8
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.0x581999.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
jmp case.0x581999.0
test byte [esi + 3], 1
jne 0x582f4f
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 0x58300e
cmp dword [esp + 0x2c], 0
je 0x582f8a
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x6c]
mov edx, dword [edx + eax*4]
jmp 0x582f8e
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.00592724
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
je 0x58300a
cmp dword [esp + 0x84], 0
je 0x58301c
neg dword [esp + 0x28]
jmp 0x58301c
inc dword [esp + 0x6c]
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
jl 0x582f76
xor ecx, ecx
mov dword [esp + 0x2c], ecx
jmp case.0x581999.0
cmp dword [esp + 0x28], 0
jge 0x58303a
mov eax, dword [esi + 4]
dec eax
mov dword [esp], eax
jmp case.0x581999.0
cmp dword [esp + 0x28], 0
jne 0x58304d
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.0
mov ecx, dword [esi + 0xc]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.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 0x583077
mov dword [esp + 0x68], 2
jmp 0x58308f
push ebp
call fcn.005921ac
cmp edx, 0
jne 0x583085
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 0x5830b4
mov dword [esp + 0x6c], 2
jmp 0x5830d0
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.005921ac
cmp edx, 0
jne 0x5830c6
cmp eax, 0
setne al
and eax, 1
mov dword [esp + 0x6c], eax
xor edx, edx
mov dl, byte [esi]
cmp edx, 0x45
jne 0x5830f5
mov ecx, dword [esp + 0x68]
lea ecx, [ecx + ecx*2]
lea eax, [ecx + 0x62cbf0]
mov edx, dword [esp + 0x6c]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x68], ecx
jmp 0x58310e
mov eax, dword [esp + 0x68]
lea eax, [eax + eax*2]
lea edx, [eax + 0x62cbf9]
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 0x583143
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.0x581999.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.0x581999.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 0x5831a2
mov eax, dword [esp + 0x24]
call fcn.0059238c
jmp case.0x581999.0
push ebp
call fcn.005921ac
cmp edx, 0
jne 0x5831b0
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.005923fc
jmp case.0x581999.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 0x583201
mov eax, dword [esp + 0x24]
call fcn.0059238c
jmp case.0x581999.0
push ebp
call fcn.005921ac
not eax
not edx
push edx
push eax
mov eax, dword [esp + 0x2c]
call fcn.005923fc
jmp case.0x581999.0
mov edx, dword [edi + 0xb8]
mov ecx, dword [esi + 4]
cmp byte [edx + ecx], 0
je 0x583236
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.0
mov eax, dword [edi + 0xb8]
mov edx, dword [esi + 4]
mov byte [eax + edx], 1
jmp case.0x581999.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 0x583265
mov eax, dword [esi + 0xc]
mov dword [esp + 0x68], eax
jmp 0x58329d
mov eax, ebp
call fcn.00592214
fld dword [0x587564]
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 0x58329d
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.0x581999.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.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.0x581999.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.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.0x581999.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.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.0054b5f8
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 0x583417
mov eax, dword [esp + 0x80]
call fcn.005808c4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
mov edx, dword [esp + 0x80]
cmp byte [edx + 0x1c], 0
je 0x5833a5
xor ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x5834df
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x50]
cmp eax, dword [edi + 0x50]
jne 0x5833d8
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 0x5834df
mov ecx, dword [esp + 0x80]
cmp byte [ecx + 0x1f], 0
je 0x583402
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x88]
call fcn.00578bb8
mov eax, dword [esp + 0x70]
mov dword [esp + 0x68], eax
jmp 0x5834df
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x88]
call fcn.00578c08
jmp 0x5834df
mov edx, dword [esp + 0x80]
cmp dword [edx + 0x10], 0
jle 0x5834d9
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 0x5834a1
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.005924d8
mov edx, dword [esp + 0xa4]
test byte [edx + 0x1d], 0x10
je case.0x581999.0
mov eax, dword [esp + 0xa4]
call fcn.00591ec0
test eax, eax
je case.0x581999.0
jmp 0x5874c6
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 0x5834ca
xor edx, edx
jmp 0x5834cd
mov edx, dword [edi + 0x50]
mov eax, dword [esp + 0x80]
mov dword [eax + 0x50], edx
jmp 0x5834df
xor ecx, ecx
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 0
jne 0x583509
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.0x581999.0
mov ecx, dword [esp + 0x68]
cmp ecx, dword [ebx + 0x50]
jbe 0x583517
jmp 0x5874a7
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 0x58355e
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x5c]
mov dword [esp + 0x90], edx
jmp 0x5838d2
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 0x5835be
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xa0], ecx
jmp 0x58363b
mov eax, dword [esp + 0x80]
cmp byte [eax + 0x1f], 0
je 0x5835e7
lea edx, [esp + 0xe4]
mov eax, dword [esp + 0x88]
call fcn.005790bc
mov dword [esp + 0xa0], eax
jmp 0x583601
lea edx, [esp + 0xe4]
mov eax, dword [esp + 0x88]
call fcn.005790d4
mov dword [esp + 0xa0], eax
mov edx, dword [esp + 0x68]
cmp edx, dword [esp + 0xe4]
ja 0x58362f
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 0x58363b
mov edx, dword [esp + 0x80]
xor eax, eax
mov dword [edx + 0x60], eax
mov edx, dword [esp + 0xa0]
cmp byte [edx], 0x80
jae 0x58365c
mov ecx, dword [esp + 0xa0]
mov al, 1
movzx ecx, byte [ecx]
mov dword [esp + 0xd8], ecx
jmp 0x58366f
lea edx, [esp + 0xd8]
mov eax, dword [esp + 0xa0]
call fcn.00591994
xor edx, edx
mov dl, al
mov dword [esp + 0xe0], edx
cmp dword [esp + 0xd8], 0x18003
jbe 0x58369a
mov eax, 0xae5
call fcn.00565ff0
mov dword [esp + 8], eax
jmp case.0x581999.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 0x5836cc
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0x98], ecx
cmp dword [esp + 0x84], 0
jne 0x583741
mov eax, dword [esp + 0xe4]
cmp eax, dword [esp + 0x98]
jge 0x583741
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.00592970
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x583733
jmp case.0x581999.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 0x58385b
mov edx, dword [esp + 0xd0]
cmp edx, dword [esp + 0xd4]
jae 0x583841
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 0x5837cc
mov eax, dword [esp + 0xd0]
xor edx, edx
mov dl, byte [eax]
mov dword [esp + 0xe8], edx
inc dword [esp + 0xd0]
jmp 0x5837ea
lea edx, [esp + 0xe8]
mov eax, dword [esp + 0xd0]
call fcn.00591994
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.00580a98
mov ebp, eax
mov dword [esp + 0xdc], ebp
add dword [esp + 0xd8], ebp
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0xdc]
jae 0x583854
mov edx, dword [esp + 0xd4]
inc edx
mov dword [esp + 0xd0], edx
jmp 0x58386f
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 0x583779
lea eax, [esp + 0xa8]
call fcn.00592100
mov word [esp + 0xc4], 1
mov edx, dword [esp + 0xd0]
cmp edx, dword [esp + 0xd4]
ja 0x5838bf
mov ecx, dword [esp + 0xd8]
cmp ecx, dword [esp + 0x68]
ja 0x5838bf
mov ecx, dword [esp + 0xd0]
cmp ecx, dword [esp + 0xd4]
jne 0x5838d2
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0x68]
je 0x5838d2
mov eax, 0xb35
call fcn.00565ff0
mov dword [esp + 8], eax
jmp case.0x581999.0
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x7c]
cmp dword [edx + ecx*4], 0
je 0x583a36
cmp dword [esp + 0x84], 0
je 0x583940
mov ecx, dword [esp + 0xa4]
test word [ecx + 0x1c], 0x2460
je 0x58390c
mov eax, dword [esp + 0xa4]
call fcn.005920ac
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.00580b74
jmp 0x583a26
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 0x583990
cmp dword [esp + 0xe8], 0xc
jb 0x58396f
test byte [esp + 0xe8], 1
je 0x583975
test byte [esi + 3], 0x80
je 0x583990
cmp dword [esp + 0xe8], 0xc
jae 0x583985
lea ecx, [esp + 0x70]
jmp 0x583987
xor ecx, ecx
mov dword [esp + 0xa0], ecx
jmp 0x583a0c
mov eax, dword [esp + 0xe8]
call fcn.00580a98
mov dword [esp + 0x98], eax
lea eax, [esp + 0xa8]
mov edx, dword [esp + 0xa4]
call fcn.00592568
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.00592970
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x5839fe
jmp case.0x581999.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.00580b74
mov ecx, dword [esp + 0xa4]
mov al, byte [esp + 0xd]
mov byte [ecx + 0x1f], al
jmp 0x583a71
cmp byte [esi + 1], 0xf8
jne 0x583a52
mov ecx, 0x800
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0xa4]
call fcn.005924d8
jmp 0x583a71
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 0x583ab7
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.00591ec0
mov dword [esp + 8], eax
jmp case.0x581999.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 0x583b02
test byte [ebp + 0x1d], 0x40
je 0x583af0
mov eax, ebp
call fcn.00591f1c
mov cl, byte [esp + 0xd]
mov dl, byte [esp + 0x6c]
mov eax, ebp
call fcn.005817ac
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 0x583ae3
jmp case.0x581999.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 0x583c7c
cmp dword [esp + 0xa0], 0
je 0x583bed
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.005817ac
mov eax, dword [esp + 0x6c]
test byte [eax + 0x1d], 0x40
je 0x583c02
cmp dword [eax + 0x18], 0
jle 0x583c02
call fcn.00591f1c
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x6c]
call fcn.00580940
mov esi, eax
mov dword [esp + 0x90], esi
mov eax, esi
call fcn.00580a98
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.00591a10
add dword [esp + 0x78], eax
mov ecx, dword [esp + 0x6c]
test byte [ecx + 0x1d], 0x40
je 0x583c64
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x10]
add dword [esp + 0x88], eax
jmp 0x583c77
cmp dword [esp + 0xac], 0
je 0x583c77
xor edx, edx
mov dword [esp + 0x88], edx
add dword [esp + 0x6c], 0x28
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esp + 0x98]
jbe 0x583bb9
mov eax, dword [esp + 0x78]
cdq
push edx
push eax
call fcn.00591a10
mov dword [esp + 0x8c], eax
add dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
cdq
push edx
push eax
call fcn.00591a10
cmp eax, dword [esp + 0x8c]
jle 0x583cbd
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 0x583d06
cmp eax, dword [esp + 0x80]
jae 0x583d0d
jmp 0x5874a7
jge 0x583d0d
jmp 0x5874a7
mov eax, dword [esp + 0x80]
mov edx, eax
xor ecx, ecx
mov eax, dword [esp + 0x24]
call fcn.00591e00
test eax, eax
je 0x583d2a
jmp 0x5874c6
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x78], 0x80
jae 0x583d4d
mov ecx, dword [esp + 0x68]
mov al, byte [esp + 0x78]
mov byte [ecx], al
mov dl, 1
jmp 0x583d5c
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x68]
call fcn.00591750
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 0x583dd8
mov edx, dword [esp + 0xa4]
mov eax, esi
call fcn.00580940
mov dword [esp + 0x90], eax
cmp dword [esp + 0x90], 0x80
jae 0x583daf
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0xa8]
mov al, byte [esp + 0x90]
mov dl, 1
mov byte [ecx + esi], al
jmp 0x583dc8
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x90]
add eax, dword [esp + 0xa8]
call fcn.00591750
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 0x583d74
mov eax, dword [esp + 0x94]
mov dword [esp + 0x6c], eax
jmp 0x583e31
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.00580aac
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 0x583df2
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 0x583e81
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.0x581999.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 0x583eb7
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
call fcn.0057c6dc
mov dword [esp + 8], eax
jmp 0x583ec7
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.0x581999.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 0x583fd6
cmp dword [ebx + 0x88], 0
jle 0x583f1f
push str.cannot_open_savepoint___SQL_statements_in_progress
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00597218
add esp, 0xc
mov dword [esp + 8], 5
jmp case.0x581999.0
mov eax, dword [esp + 0x6c]
call fcn.00590cc4
mov dword [esp + 0x70], eax
mov ecx, dword [ebx + 0x1e4]
add ecx, dword [ebx + 0x1e0]
xor edx, edx
mov eax, ebx
call fcn.00567644
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
mov edx, dword [esp + 0x70]
mov eax, ebx
add edx, 0x19
call fcn.0059707c
mov dword [esp + 0x74], eax
cmp dword [esp + 0x74], 0
je case.0x581999.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.0054b5d8
cmp byte [ebx + 0x36], 0
je 0x583f9e
mov byte [ebx + 0x36], 0
mov byte [ebx + 0x3d], 1
jmp 0x583fa4
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.0x581999.0
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov eax, dword [ebx + 0x1d8]
mov dword [esp + 0x78], eax
jmp 0x583ffd
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 0x584017
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
mov eax, dword [eax]
call fcn.00590e08
test eax, eax
jne 0x583feb
cmp dword [esp + 0x78], 0
jne 0x584042
mov ecx, dword [esp + 0x6c]
push ecx
push str.no_such_savepoint:__s
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00597218
add esp, 0x10
mov dword [esp + 8], 1
jmp case.0x581999.0
cmp dword [ebx + 0x88], 0
jle 0x584071
cmp dword [esp + 0x68], 1
jne 0x584071
push str.cannot_release_savepoint___SQL_statements_in_progress
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00597218
add esp, 0xc
mov dword [esp + 8], 5
jmp case.0x581999.0
mov edx, dword [esp + 0x78]
cmp dword [edx + 0x10], 0
jne 0x584081
cmp byte [ebx + 0x3d], 0
jne 0x584085
xor ecx, ecx
jmp 0x58408a
mov ecx, 1
mov dword [esp + 0x3c], ecx
cmp dword [esp + 0x3c], 0
je 0x5840f0
cmp dword [esp + 0x68], 1
jne 0x5840f0
mov edx, 1
mov eax, edi
call fcn.0058036c
mov dword [esp + 8], eax
test eax, eax
je 0x5840b5
jmp 0x587489
mov byte [ebx + 0x36], 1
mov eax, edi
call fcn.005803d4
cmp eax, 5
jne 0x5840e0
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 0x587489
mov byte [ebx + 0x3d], 0
mov eax, dword [edi + 0x58]
mov dword [esp + 8], eax
jmp 0x5841dd
mov edx, dword [ebx + 0x1e0]
sub edx, dword [esp + 0x80]
dec edx
mov dword [esp + 0x80], edx
cmp dword [esp + 0x68], 2
jne 0x584145
xor ecx, ecx
mov dword [esp + 0x84], ecx
jmp 0x584139
mov eax, dword [esp + 0x84]
shl eax, 4
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + eax + 4]
mov edx, 4
call fcn.00578868
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
cmp ecx, dword [ebx + 0x14]
jl 0x584117
xor ecx, ecx
mov dword [esp + 0x84], ecx
jmp 0x584188
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.005789b0
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x584181
jmp 0x5874e9
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
cmp ecx, dword [ebx + 0x14]
jl 0x584150
cmp dword [esp + 0x68], 2
jne 0x5841dd
test byte [ebx + 0x18], 2
je 0x5841dd
mov eax, ebx
call fcn.005812b4
mov eax, ebx
call fcn.0054f564
or dword [ebx + 0x18], 2
jmp 0x5841dd
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.00596e94
dec dword [ebx + 0x1e0]
mov ecx, dword [ebx + 0x1d8]
cmp ecx, dword [esp + 0x78]
jne 0x5841b5
cmp dword [esp + 0x68], 1
jne 0x584217
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.00596e94
cmp dword [esp + 0x3c], 0
jne 0x58422d
dec dword [ebx + 0x1e0]
jmp 0x58422d
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.0x581999.0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.00567644
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
jmp case.0x581999.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 0x584279
cmp byte [ebx + 0x36], 0
je 0x58427d
xor edx, edx
jmp 0x584282
mov edx, 1
mov dword [esp + 0x70], edx
cmp dword [esp + 0x70], 0
je 0x5842bc
cmp dword [esp + 0x6c], 0
jne 0x5842bc
cmp dword [ebx + 0x88], 0
jle 0x5842bc
push str.cannot_commit_transaction___SQL_statements_in_progress
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00597218
add esp, 0xc
mov dword [esp + 8], 5
jmp case.0x581999.0
xor eax, eax
mov al, byte [ebx + 0x36]
cmp eax, dword [esp + 0x68]
je 0x58435e
cmp dword [esp + 0x6c], 0
je 0x5842e4
mov edx, 0x204
mov eax, ebx
call fcn.00564a3c
mov byte [ebx + 0x36], 1
jmp 0x584332
mov edx, 1
mov eax, edi
call fcn.0058036c
mov dword [esp + 8], eax
test eax, eax
je 0x5842ff
jmp 0x587489
mov dl, byte [esp + 0x68]
mov eax, edi
mov byte [ebx + 0x36], dl
call fcn.005803d4
cmp eax, 5
jne 0x584332
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 0x587489
mov eax, ebx
call fcn.005646f0
cmp dword [edi + 0x58], 0
jne 0x58434c
mov dword [esp + 8], 0x65
jmp 0x587489
mov dword [esp + 8], 1
jmp 0x587489
cmp dword [esp + 0x68], 0
jne 0x58436c
mov edx, str.cannot_start_a_transaction_within_a_transaction
jmp 0x58437f
cmp dword [esp + 0x6c], 0
je 0x58437a
mov edx, str.cannot_rollback___no_transaction_is_active
jmp 0x58437f
mov edx, str.cannot_commit___no_transaction_is_active
push edx
push ebx
lea eax, [edi + 0x34]
push eax
call fcn.00597218
add esp, 0xc
mov dword [esp + 8], 1
jmp case.0x581999.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.0x581999.0
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x68]
call fcn.00577e58
mov dword [esp + 8], eax
cmp dword [esp + 8], 5
jne 0x5843e4
mov ecx, dword [esp]
mov dword [edi + 0x54], ecx
mov ecx, 5
mov dword [esp + 8], ecx
mov dword [edi + 0x58], ecx
jmp 0x587489
cmp dword [esp + 8], 0
je 0x5843f0
jmp 0x5874e9
cmp dword [esi + 8], 0
je case.0x581999.0
test byte [edi + 0x5e], 0x80
je case.0x581999.0
cmp byte [ebx + 0x36], 0
je 0x584417
cmp dword [ebx + 0x84], 1
jle case.0x581999.0
cmp dword [edi + 0x6c], 0
jne 0x584432
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.00567644
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58445a
mov edx, dword [edi + 0x6c]
mov eax, dword [esp + 0x68]
call fcn.00578984
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.0x581999.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.0057c644
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x581999.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.005922e4
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.0057c67c
mov dword [esp + 8], eax
cmp dword [esi + 8], 1
jne 0x584513
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 0x58452a
cmp dword [esi + 8], 2
jne 0x58452a
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.0x581999.0
mov eax, ebx
call fcn.005812b4
and byte [edi + 0x5e], 0xdf
jmp case.0x581999.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 0x584584
lea ecx, [esp + 0x68]
mov edx, 1
mov eax, dword [esp + 0x70]
call fcn.0057c644
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 0x58458e
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x68]
cmp edx, dword [esi + 8]
jne 0x5845a4
mov ecx, dword [esp + 0x6c]
cmp ecx, dword [esi + 0xc]
je case.0x581999.0
mov edx, dword [edi + 0x34]
mov eax, ebx
call fcn.00596e94
mov edx, str.database_schema_has_changed
mov eax, ebx
call fcn.005971a8
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 0x5845dc
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0054f538
or byte [edi + 0x5e], 0x20
mov dword [esp + 8], 0x11
jmp case.0x581999.0
test byte [edi + 0x5e], 0x20
je 0x584600
mov dword [esp + 8], 4
jmp case.0x581999.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 0x58466e
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 0x584674
mov eax, dword [esp + 0x84]
mov edx, dword [eax + 0xc]
mov cl, byte [edx + 0x4c]
mov byte [edi + 0x5d], cl
jmp 0x584674
xor eax, eax
mov dword [esp + 0x78], eax
test byte [esi + 3], 2
je 0x5846ba
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.005922e4
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 2
jge 0x5846ba
mov eax, 0xe61
call fcn.00565ff0
mov dword [esp + 8], eax
jmp 0x5874e9
cmp byte [esi + 1], 0xfa
jne 0x5846e8
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 0x5846f5
cmp byte [esi + 1], 0xf2
jne 0x5846f5
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.00581664
mov dword [esp + 0x80], eax
cmp dword [esp + 0x80], 0
je 0x5874c6
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.00578aac
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.0057d67c
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.0x581999.0
push 0xffffffffffffffff
push 1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.00581664
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x5874c6
mov edx, dword [esp + 0x68]
mov byte [edx + 0x1c], 1
mov ecx, dword [esp + 0x68]
mov eax, dword [0x62cc04]
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.00577218
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x584823
mov ecx, dword [esp + 0x68]
mov edx, 1
mov eax, dword [ecx + 4]
call fcn.00577e58
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5848cf
cmp dword [esi + 0x10], 0
je 0x5848a4
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.0057c248
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x58489a
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.00578aac
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 0x5848cf
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.00578aac
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.0x581999.0
push 0xffffffffffffffff
push 1
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.00581664
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x5874c6
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.00587a20
mov dword [esp + 8], eax
jmp case.0x581999.0
push 0xffffffffffffffff
push 0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov eax, edi
call fcn.00581664
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x5874c6
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.0x581999.0
mov ecx, dword [edi + 0x40]
mov eax, dword [esi + 4]
mov edx, dword [ecx + eax*4]
mov eax, edi
call fcn.0057fc84
mov edx, dword [edi + 0x40]
mov ecx, dword [esi + 4]
xor eax, eax
mov dword [edx + ecx*4], eax
jmp case.0x581999.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 0x584da8
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 0x584c56
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.0058173c
mov edx, dword [esp + 0x20]
push edx
call fcn.005921ac
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 0x584bf4
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 8
jne 0x584a62
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.0
cmp dword [esp + 0x9c], 0x80000000
jne 0x584b5a
cmp dword [esp + 0x98], 0
jne 0x584b5a
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 0x584ad2
mov edx, dword [esp + 0x20]
fld qword [edx + 8]
fld dword [0x587564]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x584b5a
mov dword [esp + 0x68], 1
mov edx, dword [esp + 0x20]
fld qword [edx + 8]
fld dword [0x587564]
fxch st(1)
fucompp
fnstsw ax
test ah, 5
jp 0x584b19
cmp dword [esp + 0x6c], 0x30
jl 0x584b3e
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.00579388
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
jmp 0x584b3e
cmp dword [esp + 0x6c], 0x2f
jg 0x584b3e
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.005793b8
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
cmp dword [esp + 0x68], 0
je case.0x581999.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.0
cmp dword [esp + 0x6c], 0x2e
je 0x584b68
cmp dword [esp + 0x6c], 0x30
jne 0x584baf
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 0x584bf4
add dword [esp + 0x98], 1
adc dword [esp + 0x9c], 0
jmp 0x584bf4
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 0x584bf4
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.00579408
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x584c26
jmp 0x5874e9
cmp dword [esp + 0x68], 0
jne 0x584ce8
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 0x584ce8
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 0x584cb3
mov eax, dword [esp + 0x88]
call fcn.00591f1c
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.00579408
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x584ce0
jmp 0x5874e9
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 0x584d45
cmp dword [esp + 0x68], 0
jl 0x584d15
cmp dword [esp + 0x68], 0
jne 0x584d3d
cmp dword [esp + 0x6c], 0x31
jne 0x584d3d
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.0057977c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
mov edx, dword [esp + 0x70]
mov byte [edx + 0x19], 0
jmp 0x584d91
xor ecx, ecx
mov dword [esp + 0x68], ecx
jmp 0x584d91
cmp dword [esp + 0x68], 0
jg 0x584d5a
cmp dword [esp + 0x68], 0
jne 0x584d82
cmp dword [esp + 0x6c], 0x2e
jne 0x584d82
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.00579890
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
mov edx, dword [esp + 0x70]
mov byte [edx + 0x19], 0
jmp 0x584d91
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.0057976c
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je case.0x581999.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.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.0x581999.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.005921ac
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.0x581999.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 0x584f32
cmp dword [esi + 0x10], 0
jle 0x584e81
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 0x584ed4
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.00580dec
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
je 0x5874c6
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.00580e5c
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.00579408
mov dword [esp + 8], eax
cmp dword [esi + 0x10], 0
jne 0x584f06
mov edx, dword [esp + 0x74]
mov eax, ebx
call fcn.00596e94
cmp dword [esp + 8], 0
je 0x584f12
jmp case.0x581999.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 0x584f52
cmp dword [esp + 0x68], 0
je case.0x581999.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.0
cmp dword [esp + 0x68], 0
jne case.0x581999.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.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 0x584ff4
movzx edx, word [esp + 0x68]
lea ecx, [edx + edx*4]
mov eax, dword [esp + 0x78]
test byte [eax + ecx*8 + 0x1c], 1
je 0x584fef
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
xor ecx, ecx
mov dword [esp + 0x70], ecx
jmp 0x585000
inc word [esp + 0x68]
mov ax, word [esp + 0x68]
cmp ax, word [esp + 0x74]
jb 0x584fcd
cmp dword [esp + 0x70], 0
je case.0x581999.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.005922e4
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.00579408
mov dword [esp + 8], eax
test byte [esp + 0x86], 4
jne 0x5850a7
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x9c]
jne 0x5850b3
cmp eax, dword [esp + 0x98]
jne 0x5850b3
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.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.0x581999.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 0x585198
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.00579408
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 0x585158
mov cl, 1
jmp 0x58515a
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 0x585188
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.0x581999.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.0x581999.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.0x581999.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 0x585204
jmp 0x5854ad
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x1b], 0
jne 0x5853c6
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
call fcn.00578b2c
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
jne 0x585231
cmp dword [esp + 0x68], 0
jne 0x5852a7
lea edx, [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.005793b8
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x585252
jmp 0x5874e9
cmp dword [esp + 0x74], 0
je 0x58526b
mov dword [esp + 0x68], 1
mov dword [esp + 0x6c], 0
jmp 0x5852a7
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
call fcn.00578bb8
mov dword [esp + 8], eax
cmp dword [esp + 0x6c], 0x7fffffff
jne 0x585291
cmp dword [esp + 0x68], 0xffffffff
jb 0x58529d
jmp 0x585293
jl 0x58529d
mov edx, dword [esp + 0x70]
mov byte [edx + 0x1b], 1
jmp 0x5852a7
add dword [esp + 0x68], 1
adc dword [esp + 0x6c], 0
cmp dword [esi + 0xc], 0
je 0x585390
cmp dword [edi + 0xa0], 0
je 0x585302
mov ecx, dword [edi + 0xa0]
mov dword [esp + 0x80], ecx
jmp 0x5852da
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 0x5852c9
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 0x585313
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.005922e4
mov edx, dword [esp + 0x7c]
cmp dword [edx + 0x14], 0x7fffffff
jne 0x58532d
cmp dword [edx + 0x10], 0xffffffff
je 0x585339
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x1b], 0
je 0x585346
mov dword [esp + 8], 0xd
jmp 0x5874e9
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 0x585364
cmp eax, dword [esp + 0x68]
jbe 0x58537e
jmp 0x585366
jle 0x58537e
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 0x5853a3
cmp dword [esp + 0x68], 0xffffffff
jae 0x5853b5
jmp 0x5853a5
jge 0x5853b5
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
add eax, 1
adc edx, 0
jmp 0x5853b9
xor eax, eax
xor edx, edx
push edx
push eax
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx]
call fcn.00578afc
mov edx, dword [esp + 0x70]
cmp byte [edx + 0x1b], 0
je 0x585494
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 0x585441
lea edx, [esp + 0x68]
mov eax, 8
call fcn.00593354
cmp dword [esp + 0x78], 5
jge 0x58542a
and dword [esp + 0x68], 0xffffff
mov dword [esp + 0x6c], 0
jmp 0x585437
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.00579408
mov dword [esp + 8], eax
test eax, eax
jne 0x585479
cmp dword [esp + 0x74], 0
jne 0x585479
inc dword [esp + 0x78]
mov ecx, dword [esp + 0x78]
cmp ecx, 0x64
jl 0x585403
cmp dword [esp + 8], 0
jne 0x585494
cmp dword [esp + 0x74], 0
jne 0x585494
mov dword [esp + 8], 0xd
jmp 0x5874e9
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.0x581999.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 0x585510
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 0x58551c
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
test byte [esi + 3], 1
je 0x585525
inc dword [edi + 0x60]
test byte [esi + 3], 2
je 0x585541
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 0x58555d
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 0x58556c
mov edx, dword [esp + 0x78]
mov ecx, dword [edx + 0x4c]
jmp 0x58556e
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x68]
test byte [eax + 0x1d], 0x40
je 0x58558c
mov edx, dword [esp + 0x68]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x7c], ecx
jmp 0x585592
xor eax, eax
mov dword [esp + 0x7c], eax
push 0
push 0
mov edx, dword [esp + 0x80]
mov eax, dword [edx]
call fcn.00578afc
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.0057bbc4
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.0x581999.0
cmp dword [ebx + 0xbc], 0
je case.0x581999.0
cmp dword [esi + 0x10], 0
je case.0x581999.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 0x585654
mov edx, 0x17
jmp 0x585659
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.0x581999.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 0x5856cd
cmp dword [esi + 0x10], 0
je 0x5856cd
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.005808c4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
push 0
push 0
mov edx, dword [esp + 0x78]
mov eax, dword [edx]
call fcn.00578afc
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
call fcn.0057bdc0
mov dword [esp + 8], eax
mov edx, dword [esp + 0x70]
xor ecx, ecx
mov dword [edx + 0x50], ecx
cmp dword [esp + 8], 0
jne 0x58575f
cmp dword [ebx + 0xbc], 0
je 0x58575f
cmp dword [esi + 0x10], 0
je 0x58575f
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.0x581999.0
inc dword [edi + 0x60]
jmp case.0x581999.0
mov edx, dword [edi + 0x60]
mov eax, ebx
call fcn.005812a4
xor ecx, ecx
mov dword [edi + 0x60], ecx
jmp case.0x581999.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.005883d0
mov dword [esp + 8], eax
cmp dword [esp + 0x6c], 0
je case.0x581999.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.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.0058837c
mov dword [esp + 8], eax
jmp case.0x581999.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.005808c4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
mov edx, dword [esp + 0x68]
cmp byte [edx + 0x1f], 0
je 0x585880
lea edx, [esp + 0x78]
mov eax, dword [esp + 0x6c]
call fcn.00578bb8
mov eax, dword [ebx + 0x50]
cdq
cmp edx, dword [esp + 0x7c]
jne 0x58586f
cmp eax, dword [esp + 0x78]
jae 0x585876
jmp 0x5874a7
jge 0x585876
jmp 0x5874a7
mov eax, dword [esp + 0x78]
mov dword [esp + 0x70], eax
jmp 0x58589b
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.00578c08
mov edx, dword [esp + 0x70]
cmp edx, dword [ebx + 0x50]
jbe 0x58589b
jmp 0x5874a7
xor ecx, ecx
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
call fcn.00591e00
test eax, eax
je 0x5858b3
jmp 0x5874c6
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 0x5858fe
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.00578fe8
mov dword [esp + 8], eax
jmp 0x585919
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.00578ffc
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0x1f], 1
jmp case.0x581999.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 0x585951
mov edx, dword [esp + 0x24]
mov word [edx + 0x1c], 1
jmp case.0x581999.0
mov ecx, dword [esp + 0x68]
cmp byte [ecx + 0x1d], 0
je 0x585972
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 0x5859ff
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x24], 0
je 0x5859b6
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.0058181c
jmp 0x5859ff
mov eax, dword [esp + 0x68]
call fcn.005808c4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
mov edx, dword [esp + 0x68]
cmp byte [edx + 0x19], 0
je 0x5859ec
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 0x5859ff
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x68]
mov eax, dword [eax]
call fcn.00578bb8
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.0x581999.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.0x581999.0
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
call fcn.0057623c
jmp case.0x581999.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 0x585a85
lea edx, [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.005793b8
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.0x581999.0
cmp dword [esp + 0x70], 0
je case.0x581999.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.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 0x585b01
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.00588070
mov dword [esp + 8], eax
jmp 0x585b49
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.00579388
mov dword [esp + 8], eax
cmp dword [esp + 0x70], 0
jne 0x585b27
mov dl, 1
jmp 0x585b29
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.0x581999.0
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.0
cmp dword [ebx + 0xe0], 0
jne 0x587526
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 0x585b91
jmp case.0x581999.0
mov ecx, dword [esp + 0x68]
cmp dword [ecx + 0x48], 0
je 0x585bb0
lea ecx, [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.005882bc
mov dword [esp + 8], eax
jmp 0x585bc9
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 0x585bfa
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
cmp byte [esi + 3], 0
je 0x585bfa
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.0x581999.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.0x581999.0
mov edx, dword [esp + 0x1c]
test byte [edx + 0x1d], 0x40
je 0x585c4f
mov eax, dword [esp + 0x1c]
call fcn.00591f1c
jmp 0x585c51
xor eax, eax
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne case.0x581999.0
mov edx, dword [esp + 0x68]
cmp dword [edx + 0x48], 0
je 0x585c82
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.00587f1c
mov dword [esp + 8], eax
jmp case.0x581999.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 0x585cb6
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 0x4c]
jmp 0x585cb8
xor eax, eax
push eax
mov ecx, 0x62cc0a
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x84]
call fcn.0057bbc4
mov dword [esp + 8], eax
mov edx, dword [esp + 0x68]
xor ecx, ecx
mov dword [edx + 0x50], ecx
jmp case.0x581999.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.0x581999.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.00579408
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x585d6c
cmp dword [esp + 0x70], 0
jne 0x585d6c
mov eax, dword [esp + 0x6c]
call fcn.0057bdc0
mov dword [esp + 8], eax
mov edx, dword [esp + 0x68]
xor ecx, ecx
mov dword [edx + 0x50], ecx
jmp case.0x581999.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.0x581999.0
mov eax, dword [esp + 0x6c]
call fcn.005808c4
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5874e9
mov edx, dword [esp + 0x6c]
cmp byte [edx + 0x1c], 0
jne case.0x581999.0
lea ecx, [esp + 0x70]
mov edx, dword [esp + 0x68]
mov eax, ebx
call fcn.005810cc
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x585deb
jmp 0x5874e9
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.0x581999.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.0x581999.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 0x585e47
mov byte [esp + 0x76], 3
jmp 0x585e4c
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.005811fc
mov dword [esp + 8], eax
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0x64
jne 0x585e84
neg dword [esp + 0x6c]
jmp 0x585e88
inc dword [esp + 0x6c]
cmp dword [esp + 0x6c], 0
jle case.0x581999.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.0
xor edx, edx
mov dword [esp + 0x6c], edx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x70], ecx
jmp 0x585ee6
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x30], 0xbdf20da3
jne 0x585edb
mov edx, dword [esp + 0x70]
mov cl, byte [edx + 0x5e]
shr ecx, 2
and ecx, 3
cmp ecx, 2
jae 0x585edb
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x54], 0
jl 0x585edb
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 0x585eae
mov eax, dword [esp + 0x24]
mov word [eax + 0x1c], 1
cmp dword [esp + 0x6c], 1
jle 0x585f0f
mov dword [esp + 8], 6
mov byte [edi + 0x5c], 2
jmp case.0x581999.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.0057c618
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.0x581999.0
cmp dword [esp + 0x68], 0
je case.0x581999.0
mov eax, dword [esi + 4]
push eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov eax, ebx
call fcn.00550b70
mov cl, byte [esp + 0x74]
inc ecx
mov byte [esp + 0xc], cl
jmp case.0x581999.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 0x585fa3
lea ecx, [esp + 0x68]
jmp 0x585fa5
xor ecx, ecx
mov edx, dword [esi + 4]
call fcn.0057c3c8
mov dword [esp + 8], eax
cmp dword [esi + 0xc], 0
je case.0x581999.0
mov eax, dword [esp + 0x68]
add dword [edi + 0x60], eax
cmp dword [esi + 0xc], 0
jle case.0x581999.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.0x581999.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 0x58600e
mov dword [esp + 0x6c], 1
jmp 0x586016
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.0057c248
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.0x581999.0
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x68], 1
jne 0x586057
mov eax, str.sqlite_temp_master
jmp 0x58605c
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.00596654
add esp, 0x14
mov dword [esp + 0x70], eax
cmp dword [esp + 0x70], 0
jne 0x5860ac
mov dword [esp + 8], 7
jmp 0x5860fb
mov byte [ebx + 0x81], 1
xor ecx, ecx
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x74]
push ecx
push 0
mov ecx, fcn.0054e3b8
mov edx, dword [esp + 0x78]
mov eax, ebx
call fcn.00567e6c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x5860e9
mov ecx, dword [esp + 0x80]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x70]
mov eax, ebx
call fcn.00596e94
mov byte [ebx + 0x81], 0
cmp dword [esp + 8], 0
je 0x586109
mov eax, ebx
call fcn.0054f564
cmp dword [esp + 8], 7
jne case.0x581999.0
jmp 0x5874c6
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.00569558
mov dword [esp + 8], eax
jmp case.0x581999.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0054f6e0
jmp case.0x581999.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0054f41c
jmp case.0x581999.0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.0055e25c
jmp case.0x581999.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.0059707c
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je 0x5874c6
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 0x5861d4
mov edx, dword [esp + 0x70]
shl edx, 3
lea edx, [edx + edx*4]
add edx, ebp
push edx
call fcn.005921ac
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 0x5861b3
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.0057d208
mov dword [esp + 0x78], eax
mov eax, ebx
mov edx, dword [esp + 0x6c]
call fcn.00596e94
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.0059238c
cmp dword [esp + 0x74], 0
jne 0x586242
jmp 0x586268
cmp dword [esp + 0x78], 0
jne 0x586250
jmp 0x5874c6
push 1
push fcn.00596e3c
or ecx, 0xffffffff
mov edx, dword [esp + 0x80]
mov eax, ebp
call fcn.00592598
xor edx, edx
mov eax, ebp
mov dl, byte [esp + 0xd]
call fcn.00591de8
jmp case.0x581999.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 0x5862b0
mov eax, ebp
call fcn.00592464
test byte [ebp + 0x1c], 0x20
je 0x5874c6
mov edx, dword [esp + 0x1c]
push dword [edx + 0x14]
push dword [edx + 0x10]
mov eax, dword [ebp + 0x10]
call fcn.00592ef8
jmp case.0x581999.0
cmp dword [ebx + 0xe0], 0
jne 0x587526
mov ebp, dword [esi + 4]
shl ebp, 3
lea ebp, [ebp + ebp*4]
add ebp, dword [esp + 0x18]
test byte [ebp + 0x1c], 0x20
je 0x5862f8
lea edx, [esp + 0x68]
mov eax, dword [ebp + 0x10]
call fcn.0059312c
test eax, eax
jne 0x58630b
mov eax, ebp
call fcn.0059238c
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
jmp case.0x581999.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.005923fc
jmp case.0x581999.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 0x586367
mov eax, ebp
call fcn.00592464
test byte [ebp + 0x1c], 0x20
je 0x5874c6
cmp dword [esp + 0x68], 0
je 0x5863a9
mov edx, dword [esp + 0x20]
push dword [edx + 0x14]
push dword [edx + 0x10]
cmp dword [esp + 0x70], 0
jl 0x586388
mov dl, byte [esp + 0x70]
and dl, 0xf
jmp 0x58638a
mov dl, 0xff
mov eax, dword [ebp + 0x10]
call fcn.00593174
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
je 0x5863a9
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.0
cmp dword [esp + 0x68], 0
jl case.0x581999.0
mov ecx, dword [esp + 0x20]
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov eax, dword [ebp + 0x10]
call fcn.00592ef8
jmp case.0x581999.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 0x586436
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 0x586414
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + 4]
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x7c], 0
je 0x58642b
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + 0x18]
cmp ecx, dword [esp + 0x84]
jne 0x586409
cmp dword [esp + 0x7c], 0
jne case.0x581999.0
mov eax, dword [edi + 0xa8]
cmp eax, dword [ebx + 0x78]
jl 0x586460
mov dword [esp + 8], 1
push str.too_many_levels_of_trigger_recursion
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00597218
add esp, 0xc
jmp case.0x581999.0
mov ecx, dword [esp + 0x70]
test byte [ecx + 0x1c], 0x40
jne 0x5865c4
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.00597058
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x7c], 0
jne 0x5864cb
jmp 0x5874c6
mov eax, dword [esp + 0x70]
call fcn.00592100
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 0x5865b8
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 0x5865a3
jmp 0x5865cf
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.0054b5f8
jmp case.0x581999.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.005924d8
jmp case.0x581999.0
cmp dword [esi + 4], 0
je 0x586709
mov eax, dword [esi + 8]
cdq
add dword [ebx + 0x1e8], eax
adc dword [ebx + 0x1ec], edx
jmp case.0x581999.0
mov eax, dword [esi + 8]
cdq
add dword [edi + 0x88], eax
adc dword [edi + 0x8c], edx
jmp case.0x581999.0
cmp dword [esi + 4], 0
je 0x58674a
cmp dword [ebx + 0x1ec], 0
jne case.0x581999.0
cmp dword [ebx + 0x1e8], 0
jne case.0x581999.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.0
cmp dword [edi + 0x8c], 0
jne case.0x581999.0
cmp dword [edi + 0x88], 0
jne case.0x581999.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.0
cmp dword [edi + 0xa0], 0
je 0x5867b2
mov eax, dword [edi + 0xa0]
mov dword [esp + 0x6c], eax
jmp 0x586790
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 0x586785
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 0x5867c3
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.005922e4
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.005922e4
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 0x586804
cmp eax, dword [ecx + 0x10]
jae case.0x581999.0
jmp 0x58680a
jge case.0x581999.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.0x581999.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 0x586843
cmp dword [ebp + 0x10], 0
jbe case.0x581999.0
jmp 0x586849
jle case.0x581999.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.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 0x586875
cmp dword [ebp + 0x10], 0
jae case.0x581999.0
jmp 0x58687b
jge case.0x581999.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.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.0x581999.0
cmp dword [ebp + 0x10], 0
jne case.0x581999.0
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp], ecx
jmp case.0x581999.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 0x58690f
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.00581630
inc dword [esp + 0x6c]
add dword [esp + 0x74], 0x28
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x68]
jl 0x5868eb
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 0x58699a
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 0x5869e4
lea eax, [esp + 0x80]
call fcn.0057db4c
push eax
push 0x62cc08
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00597218
add esp, 0x10
mov eax, dword [esp + 0xb0]
mov dword [esp + 8], eax
cmp dword [esp + 0xb4], 0
je 0x586a13
mov edx, dword [esi - 0x10]
mov dword [esp + 0x6c], edx
cmp dword [esp + 0x6c], 0
je 0x586a13
push 0
push 1
mov eax, dword [esp + 0x74]
shl eax, 3
lea eax, [eax + eax*4]
add eax, dword [esp + 0x20]
call fcn.005923fc
lea eax, [esp + 0x80]
call fcn.00592100
jmp case.0x581999.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.0059204c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x586a68
mov eax, dword [esp + 0x68]
call fcn.0057db4c
push eax
push 0x62cc08
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00597218
add esp, 0x10
xor edx, edx
mov eax, dword [esp + 0x68]
mov dl, byte [esp + 0xd]
call fcn.00591de8
mov eax, dword [esp + 0x68]
call fcn.005924b4
test eax, eax
je case.0x581999.0
jmp 0x5874a7
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.00565214
mov dword [esp + 8], eax
cmp dword [esp + 8], 5
jne 0x586ad3
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 0x586b0c
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + ecx*4 + 0x6c]
cdq
push edx
push eax
mov eax, dword [esp + 0x80]
call fcn.005923fc
inc dword [esp + 0x68]
add dword [esp + 0x78], 0x28
cmp dword [esp + 0x68], 3
jl 0x586aec
jmp case.0x581999.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.0057c7f8
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
call fcn.0058f244
mov dword [esp + 0x74], eax
cmp dword [esp + 0x70], 0xffffffff
jne 0x586b59
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x6c]
call fcn.0058f24c
test eax, eax
jne 0x586b6e
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov edx, 1
mov eax, dword [esp + 0x6c]
call fcn.0058ef74
mov dword [esp + 0x78], eax
cmp dword [esp + 0x70], 5
jne 0x586ba9
mov eax, dword [esp + 0x78]
call fcn.00590cc4
test eax, eax
je 0x586ba1
mov eax, dword [esp + 0x6c]
call fcn.0058f338
test eax, eax
jne 0x586ba9
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x74]
je 0x586c73
cmp dword [esp + 0x74], 5
je 0x586bc9
cmp dword [esp + 0x70], 5
jne 0x586c73
cmp byte [ebx + 0x36], 0
je 0x586bd8
cmp dword [ebx + 0x84], 1
jle 0x586c0d
mov dword [esp + 8], 1
cmp dword [esp + 0x70], 5
jne 0x586bee
mov ecx, str.into
jmp 0x586bf3
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.00597218
add esp, 0x10
jmp case.0x581999.0
cmp dword [esp + 0x74], 5
jne 0x586c37
mov eax, dword [esp + 0x6c]
call fcn.0058f410
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne 0x586c4c
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.0058f16c
jmp 0x586c4c
cmp dword [esp + 0x74], 4
jne 0x586c4c
mov edx, 2
mov eax, dword [esp + 0x6c]
call fcn.0058f16c
cmp dword [esp + 8], 0
jne 0x586c73
cmp dword [esp + 0x70], 5
jne 0x586c61
mov edx, 2
jmp 0x586c66
mov edx, 1
mov eax, dword [esp + 0x68]
call fcn.0057d60c
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
je 0x586c82
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
call fcn.0058f16c
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.005566f8
mov edx, dword [esp + 0x24]
mov dword [edx + 4], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
call fcn.00590cc4
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.00591de8
jmp case.0x581999.0
lea eax, [edi + 0x34]
mov edx, ebx
call fcn.00588814
mov dword [esp + 8], eax
jmp case.0x581999.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.00578560
mov dword [esp + 8], eax
cmp dword [esp + 8], 0x65
jne case.0x581999.0
mov edx, dword [esi + 8]
dec edx
xor ecx, ecx
mov dword [esp], edx
mov dword [esp + 8], ecx
jmp case.0x581999.0
cmp dword [esi + 4], 0
jne 0x586d4d
mov eax, ebx
call fcn.005812b4
jmp case.0x581999.0
or byte [edi + 0x5e], 0x20
jmp case.0x581999.0
mov dl, byte [esi + 0xc]
mov byte [esp + 0x4c], dl
cmp byte [esp + 0x4c], 0
jne 0x586d6e
test byte [ebx + 0x19], 8
jne case.0x581999.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.0057d554
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
and ecx, 0xff
cmp ecx, 6
jne case.0x581999.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.00597218
add esp, 0x10
jmp case.0x581999.0
mov eax, dword [esi + 0x10]
mov dword [esp + 0x68], eax
mov eax, ebx
mov edx, dword [esp + 0x68]
call fcn.005675c4
mov dword [esp + 8], eax
cmp dword [esp + 0x68], 0
je case.0x581999.0
mov edx, dword [esp + 0x68]
mov eax, edi
mov edx, dword [edx + 8]
call fcn.0058181c
jmp case.0x581999.0
lea ecx, [edi + 0x34]
push ecx
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
mov eax, ebx
call fcn.00567224
mov dword [esp + 8], eax
jmp case.0x581999.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.00567444
mov dword [esp + 8], eax
and byte [edi + 0x5e], 0xf3
jmp case.0x581999.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.0058181c
cmp dword [esp + 8], 0
jne case.0x581999.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.00581664
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
je 0x586eca
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.0x581999.0
mov byte [ebx + 0x38], 1
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
call dword [esi + 0x1c]
jmp case.0x581999.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 0x586fa8
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.00581630
inc dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
cmp edx, dword [esp + 0x68]
jl 0x586f66
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.0058181c
cmp dword [esp + 8], 0
jne 0x587012
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 0x587023
mov edx, dword [esi + 8]
dec edx
mov dword [esp], edx
mov ecx, dword [esp + 0x84]
mov byte [ecx + 0x1c], 0
jmp case.0x581999.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 0x587069
mov eax, dword [esp + 0x70]
call fcn.0059238c
jmp case.0x581999.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.0054b5f8
lea eax, [esp + 0x80]
mov edx, dword [esp + 0x70]
call fcn.00592568
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.0058181c
cmp dword [esp + 0xb0], 0
je 0x5870f2
mov ecx, dword [esp + 0xb0]
mov dword [esp + 8], ecx
xor edx, edx
lea eax, [esp + 0x80]
mov dl, byte [esp + 0xd]
call fcn.00591de8
lea edx, [esp + 0x80]
mov eax, dword [esp + 0x70]
call fcn.00592568
mov eax, dword [esp + 0x70]
call fcn.005924b4
test eax, eax
je case.0x581999.0
jmp 0x5874a7
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 0x587151
jmp case.0x581999.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.0058181c
cmp dword [esp + 8], 0
jne 0x5871ae
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.0x581999.0
mov eax, dword [esi + 8]
dec eax
mov dword [esp], eax
jmp case.0x581999.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.00591de8
mov dword [esp + 8], eax
cmp dword [esp + 8], 0
jne case.0x581999.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.0058181c
and byte [edi + 0x5e], 0xdf
jmp case.0x581999.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.0x581999.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 0x5872a8
mov eax, dword [esp + 0x84]
call fcn.00581630
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 0x58727b
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.0058181c
cmp dword [esp + 8], 0
jne 0x58730c
cmp dword [esi + 4], 0
je 0x58730c
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 0x58734a
mov ecx, dword [esi + 0x10]
cmp byte [ecx + 0x10], 0
je 0x58734a
xor eax, eax
mov al, byte [esi + 3]
cmp eax, 4
jne 0x587331
xor edx, edx
mov dword [esp + 8], edx
jmp case.0x581999.0
xor ecx, ecx
mov cl, byte [esi + 3]
cmp ecx, 5
jne 0x58733f
mov al, 2
jmp 0x587342
mov al, byte [esi + 3]
mov byte [edi + 0x5c], al
jmp case.0x581999.0
inc dword [edi + 0x60]
jmp case.0x581999.0
mov edx, dword [esi + 4]
shl edx, 4
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + edx + 4]
call fcn.0057716c
xor edx, edx
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x581999.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 0x5873af
mov eax, dword [esp + 0x64]
call fcn.0057716c
mov dword [esp + 0x60], eax
mov edx, dword [esi + 0xc]
cmp edx, dword [esp + 0x60]
jbe 0x5873af
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
call fcn.00577988
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x581999.0
cmp dword [ebx + 0x98], 0
je case.0x581999.0
test byte [edi + 0x5f], 4
jne case.0x581999.0
cmp dword [esi + 0x10], 0
je 0x5873e3
mov eax, dword [esi + 0x10]
jmp 0x5873e9
mov eax, dword [edi + 0x98]
mov dword [esp + 0x68], eax
test eax, eax
je case.0x581999.0
mov edx, dword [esp + 0x68]
mov eax, edi
call fcn.00588440
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.00596e94
jmp case.0x581999.0
inc dword [esp]
cmp dword [esp + 8], 0
je 0x581902
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.005967b8
add esp, 0x14
mov eax, edi
call fcn.005803d4
cmp dword [esp + 8], 0xc0a
jne 0x587469
mov byte [ebx + 0x38], 1
mov dword [esp + 8], 1
xor edx, edx
mov dl, byte [esp + 0xc]
test edx, edx
jle 0x587489
xor edx, edx
mov eax, ebx
mov dl, byte [esp + 0xc]
dec edx
call fcn.0054f538
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.0057f508
mov eax, dword [esp + 8]
jmp 0x587556
push str.string_or_blob_too_big
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00597218
add esp, 0xc
mov dword [esp + 8], 0x12
jmp 0x58742b
mov byte [ebx + 0x38], 1
push 0x62ceb3
push ebx
lea ecx, [edi + 0x34]
push ecx
call fcn.00597218
add esp, 0xc
mov dword [esp + 8], 7
jmp 0x58742b
cmp byte [ebx + 0x38], 0
je 0x5874f7
mov dword [esp + 8], 7
cmp dword [esp + 8], 0xc0a
je 0x58742b
mov eax, dword [esp + 8]
call fcn.00564ae8
push eax
push 0x62cc08
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00597218
add esp, 0x10
jmp 0x58742b
mov dword [esp + 8], 9
mov ecx, dword [esp + 8]
mov dword [edi + 0x58], ecx
mov eax, dword [esp + 8]
call fcn.00564ae8
push eax
push 0x62cc08
push ebx
lea edx, [edi + 0x34]
push edx
call fcn.00597218
add esp, 0x10
jmp 0x58742b
add esp, 0x150
pop ebp
pop edi
pop esi
pop ebx
ret