Function at 0x430f70
Capabilities:
Parse credit card information
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2c8
mov eax, dword [0x66a030]
xor eax, esp
mov dword [esp + 0x2c4], eax
push esi
mov esi, ecx
mov dword [esp + 8], 0
push edi
mov dword [esp + 0x10], esi
mov byte [esp + 0x5b], 0
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 8], eax
mov al, byte [edi + 0x3e]
mov byte [esp + 0x4c], al
mov eax, dword [esi + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x14], edi
mov dword [esp + 0x98], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x64], eax
call fcn.0042ae00
cmp dword [esi + 0x50], 7
je 0x436c6b
mov dword [esi + 0x50], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x14], 0
cmp dword [edi + 0xf0], 0
mov dword [edi + 0x1c4], 0
jne 0x436c28
cmp dword [edi + 0x124], 0
je 0x431059
mov ecx, dword [edi + 0x12c]
xor edx, edx
mov eax, dword [esi + 0x7c]
div ecx
sub ecx, edx
mov dword [esp + 0x84], ecx
mov eax, dword [esi + 0x4c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc4], 0xff7f
mov dword [esp + 0xc0], 0xbe01
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ecx, dword [0x676444]
mov dword [esp + 8], eax
cmp byte [edi + 0x41], 0
jne 0x436c6b
mov cl, byte [eax]
inc dword [esp + 0x6c]
movzx edx, cl
mov byte [esp + 0x33], cl
mov dword [esp + 0x28], edx
lea eax, [edx - 1]
cmp eax, 0x9d
ja case.0x4310af.62
jmp dword [eax*4 + 0x436c8c]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [ecx + 4]
sub ecx, dword [esp + 0x48]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x14]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x436746
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x48]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov esi, 0x80
mov word [edx + ecx*8 + 8], si
jmp 0x436746
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*8 + 4], edx
mov edx, 4
mov word [eax + ecx*8 + 8], dx
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
jne 0x4310ef
jmp 0x43674a
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x48]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [esi + eax*4]
mov esi, 0x80
mov word [edx + ecx*8 + 8], si
jmp 0x436746
mov edx, dword [esp + 8]
mov ecx, 4
mov edi, dword [esp + 0x18]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x48]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov eax, edi
mov dword [eax + esi*8 + 4], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x48]
lea eax, [ecx + eax*4]
mov edi, dword [esp + 0x14]
jmp 0x436746
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je case.0x4310af.62
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x48]
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [esp + 8]
cmp dword [edx + 4], 0
jne 0x436833
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x436833
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 4]
dec dword [esi + 0xb8]
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0x5c]
add dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
call fcn.0042b860
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x60], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 8]
cmp dword [ecx + 8], 4
jne 0x431286
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov edx, dword [esi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], ecx
lea eax, [edx + eax*4]
jmp 0x43674a
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x4312c1
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x4312fe
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x43133f
mov ecx, esi
call fcn.00428e20
mov eax, 8
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd qword [esi], xmm0
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x43137e
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x10]
mov ecx, edi
mov byte [eax], 0x19
call fcn.0040f7d0
cmp byte [esp + 0x4c], 1
mov ecx, dword [esp + 8]
mov dword [ecx + 4], eax
je 0x43140f
push 0
push 1
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.004295b0
add esp, 0xc
mov dword [esp + 0xc], eax
cmp eax, 0x12
je 0x436ad2
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.00428a00
test eax, eax
jne 0x436116
mov ecx, dword [esp + 8]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ecx + 1], 0xff
jne 0x4313ff
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.0040cc10
mov ecx, dword [esp + 8]
mov byte [ecx + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov edi, dword [esp + 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 0x58]
jg 0x436ad2
mov esi, dword [esp + 0x10]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x431441
mov ecx, esi
call fcn.00428e20
mov eax, 0xa02
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x4c]
mov byte [esi + 0xa], al
mov eax, dword [esp + 8]
cmp byte [eax + 3], 0
je 0x436746
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
or eax, dword [edx + ecx*8 + 4]
mov ecx, dword [esp + 0xc]
je 0x431493
mov eax, 0xa10
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x10]
jmp 0x43674e
mov ecx, dword [esp + 8]
jmp 0x431423
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x4314cb
mov ecx, esi
call fcn.00428e20
mov ecx, dword [esp + 8]
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov edi, dword [eax + 0xc]
sub edi, dword [eax + 8]
mov eax, 1
cmp dword [ecx + 4], 0
mov ecx, 0x101
cmovne eax, ecx
movzx eax, ax
mov dword [esp + 0x1c], eax
mov word [esi + 8], ax
test edi, edi
jle 0x431519
add esi, 0x28
mov ecx, esi
call fcn.00429350
mov eax, dword [esp + 0x1c]
dec edi
mov word [esi + 8], ax
test edi, edi
jg 0x431502
mov edi, dword [esp + 0x14]
jmp 0x436742
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, word [esp + 0xc4]
or ax, 1
mov word [edx + ecx*8 + 8], ax
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x431571
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov ecx, esi
mov word [esi + 8], ax
mov eax, dword [esp + 8]
push 0
push 0
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.004295b0
mov al, byte [esp + 0x58]
add esp, 0xc
mov byte [esi + 0xa], al
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x3c]
lea esi, [eax + ecx*8]
movzx eax, word [esi - 0x20]
test al, 0x12
je 0x4315d6
mov edx, dword [esi - 0x1c]
test eax, 0x4000
je 0x4315c3
add edx, dword [esi - 0x28]
mov eax, dword [esi - 8]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x436ad2
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x4315fc
mov ecx, edi
call fcn.00428e20
mov eax, 4
lea edx, [esi - 0x28]
push 0x800
mov ecx, edi
mov word [edi + 8], ax
call fcn.004294f0
mov edi, dword [esp + 0x18]
add esp, 4
jmp 0x436742
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x2460
test word [esi + 8], ax
jne 0x431652
cmp dword [esi + 0x18], 0
je 0x43165d
mov ecx, esi
call fcn.00428e90
mov ecx, dword [esp + 0x28]
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 8], ax
mov eax, 0x1000
mov dword [edi + 0x18], 0
test word [esi + 8], ax
je 0x4316a3
mov ecx, esi
call fcn.00428b70
test eax, eax
jne 0x436116
mov ecx, dword [esp + 0x28]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x28], ecx
jne 0x431641
mov edi, dword [esp + 0x14]
jmp 0x436742
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
nop dword [eax]
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.004294f0
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x43170b
mov ecx, esi
call fcn.00428b70
test eax, eax
jne 0x436116
mov ecx, dword [esp + 0x24]
mov eax, ecx
dec ecx
mov dword [esp + 0x24], ecx
test eax, eax
je 0x431519
add esi, 0x28
add edi, 0x28
jmp 0x4316e0
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
push 0x1000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004294f0
mov eax, dword [esp + 0xc]
add esp, 4
jmp 0x43674a
mov eax, dword [edi + 0x124]
test eax, eax
je 0x431784
mov edx, dword [esp + 0x6c]
cmp edx, dword [esp + 0x84]
jb 0x431784
push dword [edi + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x434c8d
xor edx, edx
mov ecx, esi
call fcn.0042c480
mov dword [esp + 0xc], eax
test eax, eax
jne case.0x4310af.62
lea edx, [eax + 1]
mov ecx, esi
call fcn.0042c280
mov dword [esp + 0xc], eax
test eax, eax
je 0x4368e4
mov eax, dword [esp + 8]
jmp 0x43674a
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x4317fc
mov ecx, esi
call fcn.00429350
mov edi, dword [esp + 0x14]
jmp 0x436742
test edx, 0x4000
je 0x431811
call fcn.00428be0
test eax, eax
jne 0x436116
mov eax, 0x4000
test word [edi + 8], ax
je 0x43182b
mov ecx, edi
call fcn.00428be0
test eax, eax
jne 0x436116
mov eax, dword [esp + 0x28]
test byte [eax + 8], 0x12
jne 0x43184d
mov dl, byte [esp + 0x4c]
mov ecx, eax
push 0
call fcn.00428ca0
add esp, 4
test eax, eax
jne 0x436116
test byte [edi + 8], 0x12
jne 0x43186b
mov dl, byte [esp + 0x4c]
mov ecx, edi
push 0
call fcn.00428ca0
add esp, 4
test eax, eax
jne 0x436116
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [esp + 0x20], eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x436ad2
mov edx, dword [esp + 0x20]
jl 0x43189a
cmp edx, eax
ja 0x436ad2
xor eax, eax
mov ecx, esi
cmp esi, edi
sete al
add edx, 2
push eax
call fcn.00428a20
add esp, 4
test eax, eax
jne 0x436116
mov ax, word [esi + 8]
mov ecx, 0xbe02
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x4318e0
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.005cb890
add esp, 0xc
mov eax, dword [esp + 0x28]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.005cb890
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x4c]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
jmp 0x436742
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 8]
lea edx, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x38], edx
and eax, 0xc
je 0x43194f
mov dword [esp + 0x20], eax
jmp 0x43196c
test cl, 0x12
je 0x431964
mov ecx, edx
call fcn.00430f20
movzx eax, ax
mov dword [esp + 0x20], eax
jmp 0x43196c
mov dword [esp + 0x20], 0
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 8]
lea edx, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x34], edx
and eax, 0xc
je 0x43198f
mov dword [esp + 0x28], eax
jmp 0x4319b0
test cl, 0x12
je 0x4319a8
mov ecx, edx
call fcn.00430f20
mov edx, dword [esp + 0x34]
movzx eax, ax
mov dword [esp + 0x28], eax
jmp 0x4319b0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x3c], eax
mov al, byte [edx + 8]
or al, byte [ecx + 8]
test al, 1
jne 0x431c06
mov al, byte [esp + 0x28]
and al, byte [esp + 0x20]
test al, 4
je 0x431af9
mov eax, ecx
mov byte [esp + 0x33], 1
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 8]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
movzx eax, byte [eax]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x431a13
jmp dword [eax*4 + 0x436f04]
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.00410ba0
add esp, 8
test eax, eax
jne 0x431b00
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
jmp 0x431ad3
test edx, edx
jne 0x431a69
cmp ecx, 0x80000000
jne 0x431a69
test edi, edi
jg 0x431b00
jl 0x431a5e
test esi, esi
jae 0x431b00
add esi, 0
adc edi, 0x80000000
jmp 0x431ad3
neg edx
adc ecx, 0
neg ecx
jmp case.0x431a13.89
push ecx
push edx
lea ecx, [esp + 0x80]
call fcn.00410c40
jmp 0x431a28
mov eax, edx
or eax, ecx
je 0x431c06
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x431aa1
test esi, esi
jne 0x431aa1
cmp edi, 0x80000000
je 0x431b00
push ecx
push edx
push edi
push esi
call fcn.005c9590
jmp 0x431acf
mov eax, edx
or eax, ecx
je 0x431c06
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x431ac6
mov edx, 1
xor ecx, ecx
push ecx
push edx
push edi
push esi
call fcn.005eb590
mov edi, edx
mov esi, eax
mov ecx, dword [esp + 0x3c]
mov edx, 0xbe04
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 4], edi
mov edi, dword [esp + 0x14]
or ax, 4
mov dword [ecx], esi
mov word [ecx + 8], ax
jmp 0x436742
mov byte [esp + 0x33], 0
jmp 0x431b04
mov ecx, dword [esp + 0x38]
call fcn.00429000
mov ecx, dword [esp + 0x34]
movsd qword [esp + 0x50], xmm0
call fcn.00429000
mov eax, dword [esp + 8]
movaps xmm1, xmm0
movsd qword [esp + 0x88], xmm1
movzx eax, byte [eax]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x431b33
jmp dword [eax*4 + 0x436f14]
addsd xmm1, qword [esp + 0x50]
jmp 0x431bb5
subsd xmm1, qword [esp + 0x50]
jmp 0x431bb5
mulsd xmm1, qword [esp + 0x50]
jmp 0x431bb5
movsd xmm0, qword [esp + 0x50]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x431c06
divsd xmm1, xmm0
jmp 0x431bb5
movsd xmm0, qword [esp + 0x50]
call fcn.005ed2ef
movsd xmm0, qword [esp + 0x88]
mov esi, eax
mov edi, edx
call fcn.005ed2ef
mov ecx, esi
or ecx, edi
je 0x431c06
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x431ba2
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.005eb590
mov ecx, eax
call fcn.005ed440
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.0040f790
test eax, eax
jne 0x431c06
mov ecx, dword [esp + 0x3c]
mov edx, 0xbe08
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
or ax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0x28]
or al, byte [esp + 0x20]
test al, 8
jne 0x431519
cmp byte [esp + 0x33], 0
jne 0x431519
call fcn.00429060
mov edi, dword [esp + 0x14]
jmp 0x436742
mov ecx, dword [esp + 0x3c]
call fcn.00429350
mov edi, dword [esp + 0x14]
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
test eax, eax
je case.0x4310af.62
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.004293b0
mov eax, dword [esp + 0x10]
add esp, 8
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, edi
push 0
movzx eax, byte [eax + 3]
mov dword [esp + 0x20], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.0040ce90
mov esi, eax
add esp, 8
test esi, esi
je 0x436c67
mov eax, dword [esp + 8]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x48]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x1a], al
mov eax, dword [esp + 8]
mov word [eax], 0xec24
mov dword [eax + 0x10], esi
jmp 0x431cba
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x2c], edi
cmp dword [esi], edi
je 0x431d0e
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], edi
js 0x431d0e
mov edi, dword [esp + 8]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x18]
lea edx, [edx + ecx*4]
nop
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x431cf0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esi]
mov edx, 0xbe01
mov ax, word [ecx + 8]
and ax, dx
or ax, 1
mov word [ecx + 8], ax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
mov byte [esi + 0x19], 0
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x24], ecx
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
je 0x431da6
cmp dword [esi + 0x14], 0
je 0x431d90
push dword [esi]
call fcn.0042e830
add esp, 4
push eax
push 0x638dac
push dword [esp + 0x18]
call fcn.00429e70
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov edx, dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
push dword [eax + 4]
call fcn.0042c9a0
add esp, 4
test byte [edi + 8], 0x12
je 0x431519
movzx edx, byte [esp + 0x4c]
mov ecx, dword [esi]
call fcn.00428a00
mov eax, dword [esi]
movzx ecx, word [eax + 8]
test cl, 0x12
je 0x431519
mov edx, dword [eax + 0xc]
test ecx, 0x4000
je 0x431dd8
add edx, dword [eax]
mov eax, dword [eax + 0x20]
xor ecx, ecx
mov esi, dword [esp + 0x10]
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x436ad6
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x43674a
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [esp + 0x1c], edx
test al, 1
je 0x431e3d
mov ecx, edx
call fcn.00429350
jmp 0x436742
call fcn.00428f50
mov edi, edx
mov dword [esp + 0x20], eax
mov ecx, esi
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edi
call fcn.00428f50
mov esi, eax
mov eax, dword [esp + 8]
mov cl, byte [eax]
cmp cl, 0x55
jne 0x431e77
mov ecx, dword [esp + 0x20]
and ecx, esi
and edi, edx
jmp 0x431f47
cmp cl, 0x56
jne 0x431e89
mov ecx, dword [esp + 0x20]
or ecx, esi
or edi, edx
jmp 0x431f47
mov eax, esi
or eax, edx
je 0x431f43
test edx, edx
jg 0x431ec1
jl 0x431e9d
test esi, esi
jae 0x431eb6
mov al, 0xaf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x431ec1
jg 0x431eaf
cmp esi, 0xffffffc0
jbe 0x431ec1
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x431ee6
jg 0x431ec1
cmp esi, 0x40
jb 0x431ee6
test edi, edi
jg 0x431edd
jl 0x431ece
cmp dword [esp + 0x20], 0
jae 0x431edd
cmp cl, 0x57
je 0x431edd
or eax, 0xffffffff
cdq
mov ecx, eax
mov edi, edx
jmp 0x431f47
xor eax, eax
cdq
mov ecx, eax
mov edi, edx
jmp 0x431f47
movq xmm1, qword [esp + 0xd0]
movd xmm0, esi
cmp cl, 0x57
jne 0x431f0c
psllq xmm1, xmm0
movq qword [esp + 0x50], xmm1
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
jmp 0x431f47
psrlq xmm1, xmm0
movq qword [esp + 0x50], xmm1
test edi, edi
jg 0x431f02
jl 0x431f23
cmp dword [esp + 0x20], 0
jae 0x431f02
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.005c9700
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
or ecx, eax
or edi, edx
jmp 0x431f47
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov ax, word [edx + 8]
mov dword [edx], ecx
mov ecx, 0xbe04
and ax, cx
mov dword [edx + 4], edi
mov edi, dword [esp + 0x14]
or ax, 4
mov word [edx + 8], ax
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00429100
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x431ff0
test al, 8
jne 0x431fc6
test al, 2
je 0x431fcd
mov edx, 1
mov ecx, esi
call fcn.00430d80
jmp 0x431fcd
mov ecx, esi
call fcn.00429060
movzx eax, word [esi + 8]
test al, 4
jne 0x431ff0
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
jne 0x4310ef
mov dword [esp + 0xc], 0x14
jmp 0x4344c5
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je case.0x4310af.62
call fcn.00429130
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x432054
mov ecx, esi
call fcn.00428be0
mov dword [esp + 0xc], eax
jmp 0x43205c
mov dword [esp + 0xc], 0
mov eax, dword [esp + 8]
mov ecx, esi
push dword [esp + 0x4c]
mov dl, byte [eax + 8]
call fcn.00429280
add esp, 4
jmp 0x436742
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
movzx ecx, word [edi + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, ecx
movzx edx, word [esi + 8]
mov dword [esp + 0x20], eax
mov al, dl
or al, cl
mov dword [esp + 0x34], edx
test al, 1
mov eax, dword [esp + 8]
mov al, byte [eax + 3]
je 0x43211c
test al, al
jns 0x4320d6
mov eax, edx
and eax, ecx
test al, 1
je 0x4320cc
test edx, 0x100
jne 0x4320cc
xor edx, edx
jmp 0x432216
mov edx, 1
jmp 0x432216
test al, 0x20
je 0x432107
mov eax, dword [esp + 8]
mov esi, 0xbe01
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x436742
test al, 0x10
mov eax, dword [esp + 8]
jne 0x4310ef
mov edi, dword [esp + 0x14]
jmp 0x436746
and al, 0x47
cmp al, 0x43
jl 0x43214b
and cl, 0xe
cmp cl, 2
jne 0x432133
xor edx, edx
mov ecx, edi
call fcn.00430d80
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x4321bf
xor edx, edx
mov ecx, esi
call fcn.00430d80
jmp 0x4321bf
cmp al, 0x42
jne 0x4321bf
test cl, 2
jne 0x432185
test cl, 0xc
je 0x432185
mov dl, byte [esp + 0x4c]
mov ecx, edi
push 1
call fcn.00428ca0
mov ax, word [edi + 8]
mov ecx, 0x1ff
xor ax, word [esp + 0x24]
add esp, 4
and ax, cx
xor ax, word [edi + 8]
movzx eax, ax
mov dword [esp + 0x20], eax
movzx eax, word [esi + 8]
test al, 2
jne 0x4321bf
test al, 0xc
je 0x4321bf
mov dl, byte [esp + 0x4c]
mov ecx, esi
push 1
call fcn.00428ca0
mov ax, word [esi + 8]
add esp, 4
mov ecx, dword [esp + 0x34]
xor ax, cx
mov ecx, 0x1ff
and ax, cx
xor ax, word [esi + 8]
movzx eax, ax
mov dword [esp + 0x34], eax
mov eax, 0x4000
test word [edi + 8], ax
je 0x4321de
mov ecx, edi
call fcn.00428be0
and dword [esp + 0x20], 0xbfff
mov eax, 0x4000
test word [esi + 8], ax
je 0x4321f3
mov ecx, esi
call fcn.00428be0
and dword [esp + 0x34], 0xbfff
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x41], 0
jne 0x436c65
mov eax, dword [esp + 8]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.0042d510
add esp, 4
mov edx, eax
mov eax, dword [esp + 8]
movzx ecx, byte [eax]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x432225
jmp dword [ecx*4 + 0x436f24]
xor eax, eax
test edx, edx
sete al
jmp 0x432260
xor eax, eax
test edx, edx
setne al
jmp 0x432260
xor eax, eax
test edx, edx
sets al
jmp 0x432260
xor eax, eax
test edx, edx
setle al
jmp 0x432260
xor eax, eax
test edx, edx
setg al
jmp 0x432260
xor eax, eax
test edx, edx
setns al
mov ecx, dword [esp + 0x20]
mov word [edi + 8], cx
mov ecx, dword [esp + 0x34]
mov word [esi + 8], cx
mov ecx, dword [esp + 8]
test byte [ecx + 3], 0x20
je 0x434203
mov ecx, dword [ecx + 8]
mov edx, 0xbe04
mov edi, dword [esp + 0x18]
lea esi, [ecx + ecx*4]
mov cx, word [edi + esi*8 + 8]
and cx, dx
cdq
or cx, 4
mov dword [edi + esi*8], eax
mov word [edi + esi*8 + 8], cx
mov dword [edi + esi*8 + 4], edx
mov edi, dword [esp + 0x14]
jmp 0x436742
mov eax, dword [esp + 8]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x74], edx
jmp 0x43674a
mov ecx, dword [esp + 8]
mov edx, 0
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 8]
test byte [ecx + 3], 1
cmove eax, edx
mov edx, dword [ecx + 0x10]
mov dword [esp + 0x74], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x432382
lea edi, [edx + 0x14]
mov eax, dword [esp + 0x74]
test eax, eax
je 0x432311
mov ecx, dword [eax + esi*4]
jmp 0x432313
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x18]
push dword [edi]
movzx eax, byte [eax + esi]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x30]
add eax, ecx
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0042d510
add esp, 4
mov dword [esp + 0x98], eax
test eax, eax
jne 0x43236e
mov edx, dword [esp + 0x40]
inc esi
add edi, 4
cmp esi, dword [esp + 0x24]
jl 0x432304
mov edi, dword [esp + 0x14]
mov dword [esp + 0x74], eax
jmp 0x436742
cmp dword [esp + 0x28], 0
je 0x43237e
neg eax
mov dword [esp + 0x98], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x74], 0
jmp 0x436742
mov eax, dword [esp + 0x98]
test eax, eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 8]
jns 0x4323b3
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x43674a
jne 0x4323c6
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x43674a
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x4323f6
mov esi, 2
jmp 0x432408
call fcn.00428f50
or eax, edx
je 0x432406
mov esi, 1
jmp 0x432408
xor esi, esi
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x432427
mov eax, 2
jmp 0x432439
call fcn.00428f50
or eax, edx
je 0x432437
mov eax, 1
jmp 0x432439
xor eax, eax
mov ecx, dword [esp + 8]
lea eax, [eax + esi*2]
cmp byte [ecx], 0x48
jne 0x43244f
movzx edx, byte [esi + eax + 0x6402e4]
jmp 0x432457
movzx edx, byte [esi + eax + 0x63df90]
mov eax, dword [ecx + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x432481
mov edx, dword [esp + 0x18]
mov esi, 0xbe01
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x436742
mov esi, dword [esp + 0x18]
mov eax, edx
cdq
mov dword [esi + ecx*8 + 4], edx
mov edx, esi
mov dword [esi + ecx*8], eax
mov esi, 0xbe04
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 4
mov word [edx + ecx*8 + 8], ax
jmp 0x436742
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov ecx, esi
call fcn.00429350
test byte [edi + 8], 1
jne 0x431519
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.00428f50
or eax, edx
jne 0x4324ff
mov edi, dword [esp + 0x14]
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x436742
mov edi, dword [esp + 0x14]
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x436742
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov ecx, esi
call fcn.00429350
test byte [edi + 8], 1
jne 0x431519
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.00428f50
mov edi, dword [esp + 0x14]
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x436742
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0xc8]
mov ecx, dword [ecx + 4]
cmp byte [eax + ecx], 0
jne 0x4310eb
mov byte [eax + ecx], 1
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x4325a2
mov ecx, dword [esp + 8]
mov ecx, dword [ecx + 0xc]
jmp 0x4325cf
call fcn.00429000
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4325bb
mov ecx, 1
jmp 0x4325bd
xor ecx, ecx
mov eax, dword [esp + 8]
cmp byte [eax], 0x2e
jne 0x4325d3
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
mov eax, dword [esp + 8]
test ecx, ecx
jne 0x4310ef
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov eax, dword [esp + 8]
jne 0x4310ef
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov eax, dword [esp + 8]
je 0x4310ef
jmp 0x43674a
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x20], edx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x28], edi
cmp byte [edi + 0x1a], 0
mov esi, dword [edi + 0x50]
mov ecx, dword [edi]
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], ecx
je 0x432669
mov ecx, edi
call fcn.0042cd10
jmp 0x43267a
test ecx, ecx
je 0x432690
cmp byte [ecx + 0x42], 1
je 0x432690
mov ecx, edi
call fcn.0042cd70
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
jmp 0x432698
mov dword [esp + 0xc], 0
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 0x3c]
cmp eax, dword [esi + 0x48]
mov esi, dword [esp + 0x38]
je 0x432802
cmp byte [edi + 0x19], 0
je 0x4326e6
test ecx, ecx
jne 0x4326d6
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edi + 0x44], esi
mov dword [edi + 0x40], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edi + 0x4c], eax
jmp 0x432778
mov edi, dword [esp + 0x3c]
mov ecx, edi
call fcn.00429350
jmp 0x432b61
test byte [edi + 0x1c], 4
jne 0x432731
call fcn.00421a50
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x10]
mov dword [esp + 0xd8], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0xdc], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
sub esi, ecx
cmp eax, esi
mov dword [edi + 0x4c], ecx
cmovb esi, eax
mov eax, dword [esp + 0xd8]
mov dword [edi + 0x40], eax
jmp 0x43275c
call fcn.00421a50
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x1c]
mov dword [edi + 0x40], eax
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
sub esi, ecx
cmp eax, esi
mov dword [edi + 0x4c], ecx
cmovb esi, eax
mov eax, dword [edi + 0x40]
cmp eax, esi
ja 0x432768
mov dword [edi + 0x44], eax
jmp 0x43276b
mov dword [edi + 0x44], esi
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
ja 0x436ad2
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [edi + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x43279c
movzx ecx, al
mov eax, 1
mov dword [esp + 0x9c], ecx
jmp 0x4327b2
lea edx, [esp + 0x9c]
call fcn.00410a20
mov ecx, dword [esp + 0x9c]
movzx eax, al
movzx eax, al
mov dword [edi + 0x48], eax
xor eax, eax
mov word [edi + 0x16], ax
mov eax, dword [esp + 0x38]
mov dword [eax], ecx
cmp ecx, 0x18003
ja 0x4327eb
cmp ecx, dword [edi + 0x40]
ja 0x4327eb
mov edx, dword [esp + 0x20]
cmp esi, ecx
mov esi, eax
jae 0x43280e
mov dword [edi + 0x4c], 0
mov dword [edi + 0x44], 0
jmp 0x43280e
mov ecx, 0x12314
call fcn.0047da10
mov edi, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jmp 0x436742
movzx eax, word [edi + 0x16]
cmp eax, edx
jg 0x432a09
mov eax, dword [edi + 0x48]
cmp eax, dword [esi]
jae 0x4329d8
mov ecx, dword [edi + 0x4c]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x4328d4
mov dword [esp + 0xc], ecx
xorps xmm0, xmm0
mov ecx, dword [esp + 0x44]
movaps xmmword [esp + 0x150], xmm0
movaps xmmword [esp + 0x160], xmm0
movq qword [esp + 0x170], xmm0
mov eax, dword [ecx + 0x18]
mov edx, dword [edi + 0x1c]
mov esi, dword [esi]
mov dword [esp + 0x34], eax
movsx eax, byte [ecx + 0x44]
shr edx, 2
not edx
and edx, 1
mov eax, dword [ecx + eax*4 + 0x78]
mov ecx, dword [eax + 0x3c]
mov eax, dword [esp + 0x44]
sub ecx, dword [esp + 0x34]
movzx eax, word [eax + 0x20]
cmp eax, ecx
cmovb ecx, eax
cmp esi, ecx
ja 0x4328a1
mov ecx, dword [esp + 0x34]
mov eax, 0x1010
mov dword [esp + 0x160], ecx
mov word [esp + 0x158], ax
mov dword [esp + 0x15c], esi
jmp 0x4328d0
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x150]
push eax
push edx
push esi
xor edx, edx
call fcn.004297c0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x431519
mov ecx, dword [esp + 0x160]
mov dword [esp + 0x34], ecx
mov esi, dword [esp + 0x38]
movzx edx, word [edi + 0x16]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edi, dword [esi + edx*4]
mov esi, dword [eax + 0x48]
lea eax, [eax + edx*4]
add esi, ecx
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx]
add ecx, dword [esp + 0x34]
add eax, 0x54
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], eax
mov al, byte [esi]
cmp al, 0x80
jae 0x432913
movzx ecx, al
inc esi
mov dword [esp + 0x94], ecx
jmp 0x432931
lea edx, [esp + 0x94]
mov ecx, esi
call fcn.00410a20
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
call fcn.0042cec0
add edi, eax
mov dword [esp + 0x9c], edi
cmp edi, eax
jb 0x432968
mov eax, dword [esp + 0x38]
inc edx
add dword [esp + 0x40], 4
mov dword [esp + 0x2c], edx
mov dword [eax + edx*4], edi
cmp edx, dword [esp + 0x20]
jg 0x43296d
cmp esi, dword [esp + 0x24]
jb 0x432900
jmp 0x43296d
mov esi, dword [esp + 0x24]
inc esi
mov ecx, dword [esp + 0x28]
mov eax, esi
sub eax, dword [esp + 0x34]
cmp dword [ecx + 0x4c], 0
mov word [ecx + 0x16], dx
mov dword [ecx + 0x48], eax
jne 0x4329a1
lea ecx, [esp + 0x150]
call fcn.00428f30
mov ecx, dword [esp + 0x28]
mov eax, 1
mov word [esp + 0x158], ax
mov eax, dword [esp + 0x24]
cmp esi, eax
jb 0x4329b0
ja 0x4329b5
cmp edi, dword [ecx + 0x40]
jne 0x4329b5
cmp edi, dword [ecx + 0x40]
jbe 0x4329cc
mov ecx, 0x12368
call fcn.0047da10
mov edi, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jmp 0x436742
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
movzx eax, word [edi + 0x16]
cmp eax, edx
jg 0x432a09
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x3c]
mov ecx, edi
cmp byte [eax + 1], 0xf8
jne 0x4326dc
mov edx, dword [eax + 0x10]
push 0x800
call fcn.004294f0
add esp, 4
jmp 0x432b61
mov eax, dword [esp + 0x3c]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x432a1f
mov ecx, eax
call fcn.00429350
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x44]
mov edx, dword [edi + ecx*4 + 0x54]
mov dword [esp + 0x40], edx
mov dword [esp + 0x94], edx
cmp eax, dword [esi + ecx*4 + 4]
jb 0x432a5a
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 0x4c]
push dword [esp + 0x3c]
add ecx, dword [esi + eax*4]
call fcn.0042cfa0
mov edi, dword [esp + 0x40]
add esp, 4
jmp 0x432b5a
mov eax, dword [esp + 8]
mov al, byte [eax + 3]
test al, 0xc0
je 0x432a73
cmp edx, 0xc
jb 0x432a6f
test dl, 1
je 0x432a80
test al, al
js 0x432a80
mov ecx, edx
call fcn.0042cec0
mov edi, eax
test edi, edi
jne 0x432aa4
push dword [esp + 0x3c]
xor eax, eax
lea ecx, [esp + 0xdc]
cmp edx, 0xd
cmova ecx, eax
call fcn.0042cfa0
mov edi, dword [esp + 0x40]
add esp, 4
jmp 0x432b5a
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], 0
mov esi, dword [eax + 0x1c]
mov eax, dword [esp + 0x38]
shr esi, 2
not esi
and esi, 1
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x44]
mov edx, ecx
mov dword [esp + 0x24], eax
movsx eax, byte [ecx + 0x44]
mov eax, dword [ecx + eax*4 + 0x78]
mov ecx, dword [eax + 0x3c]
mov eax, edx
sub ecx, dword [edx + 0x18]
mov edx, dword [esp + 0x40]
movzx eax, word [eax + 0x20]
cmp eax, ecx
cmovb ecx, eax
mov eax, dword [esp + 0x24]
add eax, edi
cmp eax, ecx
ja 0x432b17
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esi + 0x18]
add eax, dword [esp + 0x24]
mov dword [ecx + 0x10], eax
mov eax, 0x1010
mov word [ecx + 8], ax
mov dword [ecx + 0xc], edi
jmp 0x432b41
push dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
push esi
push edi
call fcn.004297c0
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
jne 0x431519
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push ecx
mov ecx, dword [ecx + 0x10]
call fcn.0042cfa0
mov edi, dword [esp + 0x40]
mov eax, 0xefff
add esp, 4
and word [edi + 8], ax
mov al, byte [esp + 0x4c]
mov byte [edi + 0xa], al
movzx esi, word [edi + 8]
test esi, 0x1000
je 0x431519
mov eax, dword [edi + 0x10]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x431519
mov eax, dword [esp + 0x3c]
and esi, 0x12
mov ecx, eax
mov edi, dword [eax + 0xc]
lea edx, [edi + 2]
call fcn.00428b50
test eax, eax
jne 0x436116
mov eax, dword [esp + 0x3c]
push edi
push dword [esp + 0x20]
push dword [eax + 0x10]
call fcn.005cb890
mov ecx, dword [esp + 0x48]
add esp, 0xc
or esi, 0x200
mov eax, dword [ecx + 0x10]
mov byte [edi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [edi + eax + 1], 0
mov edi, dword [esp + 0x14]
mov word [ecx + 8], si
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
test al, al
je 0x431519
push dword [esp + 0x4c]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.00430e10
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x432bf4
mov edi, dword [esp + 0x14]
jmp 0x436742
mov edx, dword [esp + 8]
xor eax, eax
mov edi, dword [esp + 0x18]
xorps xmm0, xmm0
mov dword [esp + 0x3c], eax
movlpd qword [esp + 0x88], xmm0
mov eax, dword [edx + 4]
mov esi, dword [edx + 0x10]
movlpd qword [esp + 0xa8], xmm0
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x20], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 0x57]
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x40], eax
test esi, esi
je 0x432ca2
mov al, byte [esi]
mov edi, ecx
push dword [esp + 0x4c]
mov dl, al
mov ecx, edi
call fcn.00430e10
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x432c81
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
mov ecx, edi
call fcn.0042cdc0
mov esi, eax
mov ecx, esi
mov dword [edi + 0x1c], esi
call fcn.0042cec0
mov edi, eax
mov ecx, 0x4000
mov eax, dword [esp + 0x24]
test word [eax + 8], cx
je 0x432d24
mov ecx, dword [esp + 0x34]
or ecx, dword [esp + 0x38]
je 0x432d15
mov ecx, eax
call fcn.00428be0
test eax, eax
jne 0x436116
jmp 0x432d24
mov ecx, dword [eax]
mov eax, ecx
cdq
add dword [esp + 0x28], eax
adc dword [esp + 0x44], edx
sub edi, ecx
mov eax, edi
cdq
add dword [esp + 0x34], eax
adc dword [esp + 0x38], edx
cmp esi, 0x7f
ja 0x432d3b
mov edx, 1
jmp 0x432d53
xor ecx, ecx
xor edx, edx
nop
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x432d53
cmp edx, 9
jl 0x432d40
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
sub edi, 0x28
add eax, edx
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
cmp edi, dword [esp + 0x20]
jae 0x432cd6
cmp eax, 0x7e
jle 0x432dbd
cdq
xor edi, edi
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x432d93
cmp edi, 9
jl 0x432d80
mov eax, dword [esp + 0x3c]
add eax, edi
xor esi, esi
mov dword [esp + 0x3c], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x432db5
cmp esi, 9
jl 0x432da2
mov eax, dword [esp + 0x3c]
cmp edi, esi
jge 0x432dc2
inc eax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x34]
cdq
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x38]
add ecx, edi
mov dword [esp + 0x34], ecx
adc eax, esi
add ecx, dword [esp + 0x28]
adc eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
cdq
cmp dword [esp + 0x38], edx
jg 0x436ad2
jl 0x432dff
cmp ecx, eax
ja 0x436ad2
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
call fcn.00428b50
test eax, eax
jne 0x436116
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
cmp eax, 0x80
jae 0x432e37
mov edi, dword [esp + 0x24]
mov byte [edi], al
mov eax, 1
jmp 0x432e47
push esi
push edi
mov edi, dword [esp + 0x2c]
mov ecx, edi
call fcn.00410840
add esp, 8
mov ecx, dword [esp + 0x20]
movzx esi, al
nop
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x2c], edx
cmp edx, 0x80
jae 0x432e69
mov byte [esi + edi], dl
mov eax, 1
jmp 0x432e7f
push 0
push edx
lea ecx, [esi + edi]
call fcn.00410840
mov edx, dword [esp + 0x34]
add esp, 8
mov ecx, dword [esp + 0x20]
movzx eax, al
add esi, eax
lea eax, [edx - 1]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x3c]
add esi, edi
cmp eax, 6
ja 0x432ebd
mov eax, dword [esp + 0x20]
movzx edx, byte [edx + 0x63e520]
mov ecx, dword [ecx]
mov edi, edx
mov eax, dword [eax + 4]
dec edx
mov byte [edx + esi], cl
shrd ecx, eax, 8
shr eax, 8
test edx, edx
jne 0x432ea8
mov ecx, dword [esp + 0x20]
jmp 0x432eda
cmp edx, 0xc
jb 0x432ed8
mov edi, dword [ecx + 0xc]
push edi
push dword [ecx + 0x10]
push esi
call fcn.005cb890
mov ecx, dword [esp + 0x2c]
add esp, 0xc
jmp 0x432eda
xor edi, edi
add dword [esp + 0x3c], edi
add ecx, 0x28
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
cmp ecx, dword [esp + 0x1c]
jbe 0x432e50
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x44]
je 0x432f22
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov edi, dword [esp + 0x14]
mov byte [edx + 0xa], 1
jmp 0x436742
mov eax, dword [esp + 8]
lea edx, [esp + 0xa8]
xorps xmm0, xmm0
movlpd qword [esp + 0xa8], xmm0
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.00426810
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x432f7c
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0xa8]
mov dword [esi], eax
mov eax, dword [esp + 0xac]
mov dword [esi + 4], eax
jmp 0x436742
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0x10]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x433083
cmp dword [edi + 0x9c], eax
jg 0x436973
mov ecx, esi
call fcn.0040f7d0
mov edi, eax
xor edx, edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
mov ecx, dword [eax + 0x1f4]
add ecx, dword [eax + 0x1f0]
push ecx
mov ecx, eax
call fcn.0046ca90
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x21]
push 0
push eax
call fcn.0040ce90
mov edi, eax
add esp, 8
test edi, edi
je 0x43306f
mov ecx, dword [esp + 0x1c]
lea edx, [edi + 0x20]
inc ecx
mov dword [edi], edx
push ecx
push esi
push edx
call fcn.005cb890
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp byte [ecx + 0x3f], 0
je 0x433036
mov byte [ecx + 0x3f], 0
mov byte [ecx + 0x46], 1
jmp 0x43303c
inc dword [ecx + 0x1f0]
mov eax, dword [ecx + 0x1e8]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x1f8]
mov dword [ecx + 0x1e8], edi
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x200]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x204]
mov dword [edi + 0x14], eax
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
add eax, 0x14
mov esi, dword [esp + 0x10]
jmp 0x431082
mov edi, dword [edi + 0x1e8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], edi
test edi, edi
je 0x4330be
nop dword [eax]
push esi
push dword [edi]
call fcn.0040faf0
add esp, 8
test eax, eax
je 0x4330e5
mov edi, dword [edi + 0x18]
inc dword [esp + 0x20]
mov dword [esp + 0x2c], edi
test edi, edi
jne 0x4330a0
push esi
push str.no_such_savepoint:__s
push dword [esp + 0x18]
call fcn.00429e70
mov esi, dword [esp + 0x14]
mov eax, 1
add esp, 0xc
mov dword [esp + 0xc], eax
add esi, 0x14
jmp 0x436765
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
cmp dword [eax + 0x9c], 0
jle 0x4330ff
cmp ecx, 1
je 0x436999
cmp dword [edi + 0x18], 0
mov edi, eax
jne 0x433159
cmp byte [edi + 0x46], 0
je 0x433159
mov dword [esp + 0x24], 1
cmp ecx, 1
jne 0x433161
mov esi, dword [esp + 0x10]
mov edx, ecx
mov ecx, esi
call fcn.0042c480
mov edi, eax
test edi, edi
jne 0x4367f7
mov edi, dword [esp + 0x14]
mov ecx, esi
mov byte [edi + 0x3f], 1
call fcn.0042c4f0
cmp eax, 5
je 0x4369a0
mov byte [edi + 0x46], 0
mov ecx, dword [esi + 0x50]
mov dword [esp + 0xc], ecx
jmp 0x4332c1
mov dword [esp + 0x24], 0
mov eax, dword [edi + 0x1f0]
sub eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x20], eax
cmp ecx, 2
jne 0x4332f3
mov ecx, dword [edi + 0x18]
xor edi, edi
mov edx, dword [esp + 0x14]
shr ecx, 1
and ecx, 1
mov dword [esp + 0x1c], ecx
cmp dword [edx + 0x14], edi
jle 0x4331d2
xor eax, eax
test ecx, ecx
sete al
xor esi, esi
mov dword [esp + 0x40], eax
nop dword [eax]
mov ecx, dword [edx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [ecx + esi + 4]
call fcn.004215e0
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
mov edx, dword [esp + 0x14]
inc edi
mov eax, dword [esp + 0x40]
add esi, 0x10
cmp edi, dword [edx + 0x14]
jl 0x4331a0
mov edi, edx
xor edx, edx
mov dword [esp + 0x28], edx
cmp dword [edi + 0x14], edx
jle 0x4332aa
xor ecx, ecx
mov dword [esp + 0x34], ecx
nop dword [eax]
mov eax, dword [edi + 0x10]
mov esi, dword [eax + ecx + 4]
xor eax, eax
mov dword [esp + 0xc], eax
test esi, esi
je 0x43328d
cmp byte [esi + 8], 2
jne 0x43328d
mov edi, dword [esi + 4]
cmp byte [esi + 9], al
je 0x433226
inc dword [esi + 0xc]
cmp byte [esi + 0xa], al
jne 0x433226
mov ecx, esi
call fcn.0041dde0
push dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
mov ecx, dword [edi]
call fcn.0041b260
mov ecx, eax
add esp, 4
mov dword [esp + 0xc], ecx
test ecx, ecx
jne 0x43326a
cmp dword [esp + 0x20], eax
jge 0x433251
test byte [edi + 0x16], 8
je 0x433251
mov dword [edi + 0x2c], eax
mov ecx, edi
call fcn.00420760
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x1c]
bswap eax
mov dword [edi + 0x2c], eax
cmp byte [esi + 9], 0
je 0x43327d
add dword [esi + 0xc], 0xffffffff
jne 0x43327d
mov ecx, esi
call fcn.0041dda0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4344c5
inc edx
add ecx, 0x10
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], ecx
cmp edx, dword [edi + 0x14]
jl 0x4331f0
cmp dword [esp + 0x1c], 0
je 0x4332c1
mov ecx, edi
call fcn.0042e200
call fcn.00447210
or dword [edi + 0x18], 2
mov esi, dword [esp + 0x2c]
cmp dword [edi + 0x1e8], esi
je 0x43333d
nop dword [eax]
cmp dword [edi + 0x208], 0
mov ecx, dword [edi + 0x1e8]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1e8], eax
je 0x433300
mov edx, ecx
mov ecx, edi
call fcn.0040cbd0
jmp 0x43332f
mov dword [esp + 0x1c], 0
jmp 0x4331d4
cmp ecx, dword [edi + 0x114]
jb 0x433326
cmp ecx, dword [edi + 0x118]
jae 0x433326
mov eax, dword [edi + 0x110]
mov dword [ecx], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], ecx
jmp 0x43332f
push ecx
call fcn.0040cb60
add esp, 4
dec dword [edi + 0x1f0]
cmp dword [edi + 0x1e8], esi
jne 0x4332d0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
cmp edi, 1
jne 0x43336f
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1e8], eax
mov esi, ecx
call fcn.0040cc10
cmp dword [esp + 0x24], 0
jne 0x43673c
dec dword [esi + 0x1f0]
jmp 0x4333a3
cmp dword [esp + 0x24], 0
mov eax, dword [esi + 8]
mov dword [ecx + 0x1f8], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 0x1fc], eax
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x200], eax
mov eax, dword [esi + 0x14]
mov dword [ecx + 0x204], eax
je 0x4333a3
cmp edi, 2
jne 0x436740
push dword [esp + 0x20]
mov edx, edi
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0046ca90
mov esi, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c9
mov eax, dword [esp + 8]
jmp 0x43674a
mov edx, dword [esp + 8]
mov edx, dword [edx + 8]
test edx, edx
je 0x4333e8
test dword [edi + 0x18], 0x2000000
jne 0x4369cd
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x433547
mov ecx, esi
call fcn.00420800
mov dword [esp + 0xc], eax
cmp eax, 5
je 0x4369da
test eax, eax
jne 0x4344c5
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
je 0x433514
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x58], 0x20
je 0x433514
cmp byte [edi + 0x3f], 0
je 0x43344b
cmp dword [edi + 0x98], 1
jle 0x433514
cmp dword [ecx + 0x68], 0
jne 0x433466
mov eax, dword [edi + 0x1f0]
inc dword [edi + 0x1f4]
add eax, dword [edi + 0x1f4]
mov dword [ecx + 0x68], eax
mov eax, dword [ecx + 0x68]
xor edx, edx
dec eax
mov ecx, edi
push eax
call fcn.0046ca90
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4334e0
cmp byte [esi + 9], 0
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x68]
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
je 0x4334a7
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4334a7
mov ecx, esi
call fcn.0041dde0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
cmp edi, dword [ecx + 0x60]
jle 0x4334c1
cmp byte [ecx + 6], 0
je 0x4334c1
mov edx, edi
call fcn.0041b130
mov dword [esp + 0xc], eax
jmp 0x4334c9
mov dword [esp + 0xc], 0
cmp byte [esi + 9], 0
je 0x4334dc
add dword [esi + 0xc], 0xffffffff
jne 0x4334dc
mov ecx, esi
call fcn.0041dda0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x1f8]
mov dword [ecx + 0x98], eax
mov eax, dword [edi + 0x1fc]
mov dword [ecx + 0x9c], eax
mov eax, dword [edi + 0x200]
mov dword [ecx + 0xa0], eax
mov eax, dword [edi + 0x204]
mov dword [ecx + 0xa4], eax
lea eax, [esp + 0xb4]
mov edx, 1
push eax
mov ecx, esi
call fcn.004266e0
mov eax, dword [esp + 0xc]
add esp, 4
mov esi, dword [esp + 0xb4]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x433552
xor esi, esi
xor eax, eax
mov dword [esp + 0xb4], esi
mov ecx, dword [esp + 8]
cmp byte [ecx + 3], 0
je 0x436742
cmp esi, dword [ecx + 0xc]
jne 0x43356e
cmp eax, dword [ecx + 0x10]
je 0x436742
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [eax + 0x2c]
call fcn.0040cc10
mov edx, str.database_schema_has_changed
mov ecx, edi
call fcn.0040d070
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x4335ac
mov ecx, edi
call fcn.004471d0
mov esi, dword [esp + 0x10]
mov ecx, 0x11
mov eax, dword [esp + 8]
mov dword [esp + 0xc], 0x11
or dword [esi + 0x58], 8
jmp 0x43674e
mov edx, dword [esp + 8]
lea eax, [esp + 0xc8]
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004266e0
mov eax, dword [esp + 0xc]
add esp, 4
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x43360f
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0xc8]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
shl esi, 4
add esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00429100
mov eax, dword [esp + 8]
push dword [edi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
call fcn.00426740
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
cmp eax, 1
jne 0x433680
mov eax, dword [edi]
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x14]
mov dword [ecx], eax
or dword [edi + 0x18], 2
jmp 0x433691
cmp eax, 2
jne 0x43368d
mov ecx, dword [esi + 0xc]
mov al, byte [edi]
mov byte [ecx + 0x4c], al
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 8]
cmp dword [eax + 4], 1
jne 0x436746
mov ecx, edi
call fcn.0042e200
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 8]
and dword [esi + 0x58], 0xfffffff7
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4336d8
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x20]
cmp eax, dword [ecx + 8]
je 0x433911
mov esi, dword [esp + 0x10]
mov cl, byte [esp + 0x33]
test byte [esi + 0x58], 8
jne 0x436a1a
mov eax, dword [esp + 8]
mov dword [esp + 0x28], 0
mov dword [esp + 0x40], 0
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
shl eax, 4
add eax, dword [edi + 0x10]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], esi
mov edx, dword [eax + 4]
mov dword [esp + 0x38], edx
cmp cl, 0x37
jne 0x43373a
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], 1
mov al, byte [eax + 0x4c]
cmp al, byte [edi + 0x57]
jae 0x433742
mov byte [edi + 0x57], al
jmp 0x433742
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 8]
test byte [edx + 3], 4
je 0x433770
mov ecx, dword [esp + 0x18]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00429100
mov eax, dword [esi]
mov dword [esp + 0x24], eax
cmp eax, 2
jl 0x436a07
mov edx, dword [esp + 8]
mov al, byte [edx + 1]
cmp al, 0xfa
jne 0x43378e
mov eax, dword [edx + 0x10]
mov dword [esp + 0x40], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x433799
cmp al, 0xf2
jne 0x433799
mov eax, dword [edx + 0x10]
mov dword [esp + 0x28], eax
mov edx, dword [edx + 4]
xor esi, esi
mov eax, dword [edi + 0x1c]
sub eax, edx
mov dword [esp + 0x1c], edx
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x28]
lea ecx, [eax*8 + 0x120]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x38]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x4337e8
mov ecx, dword [esp + 0x10]
call fcn.0042b7b0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [eax + ecx*4], esi
mov ecx, dword [esp + 0x20]
cmp dword [edi + 0x18], ecx
jge 0x433801
mov edx, ecx
mov ecx, edi
push 0
call fcn.00428a20
add esp, 4
test eax, eax
jne 0x43385a
jmp 0x43380c
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, dword [edi + 0x10]
push 0x58
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.005cbe10
mov ecx, dword [esp + 0x34]
add esp, 0xc
mov eax, dword [esp + 0x34]
mov byte [esi + 0x18], al
mov word [esi + 0x14], cx
lea eax, [ecx + 0x15]
lea eax, [esi + eax*4]
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x10]
push 0x44
push 0
lea eax, [eax + ecx*8]
add eax, 0x58
push eax
mov dword [esi], eax
call fcn.005cbe10
add esp, 0xc
test esi, esi
je 0x436116
mov ecx, dword [esp + 0x24]
or dword [esi + 0x1c], 8
mov eax, dword [esi]
mov byte [esi + 0x19], 1
mov dword [esi + 0x20], ecx
mov dword [esp + 0x1c], eax
cmp ecx, 1
jge 0x43389f
push 0x63cc14
push 0xe21f
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0040ed50
add esp, 0x10
mov dword [esp + 0xc], 0xb
jmp 0x4338ed
mov edi, dword [esp + 0x38]
cmp byte [edi + 9], 0
je 0x4338c1
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x4338c1
mov ecx, edi
call fcn.0041dde0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push eax
push dword [esp + 0x44]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x34]
call fcn.00421820
add esp, 0xc
mov dword [esp + 0xc], eax
cmp byte [edi + 9], 0
je 0x4338ed
add dword [edi + 0xc], 0xffffffff
jne 0x4338ed
mov ecx, edi
call fcn.0041dda0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
mov dword [esi + 8], eax
xor eax, eax
cmp byte [ecx + 1], 0xfa
setne al
shl eax, 2
xor eax, dword [esi + 0x1c]
and eax, 4
xor dword [esi + 0x1c], eax
mov eax, dword [esp + 8]
mov cl, byte [eax + 3]
mov eax, dword [esi]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x436742
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 8]
mov esi, dword [eax + 4]
mov eax, dword [edi + 0x1c]
sub eax, esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], esi
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x10]
lea ecx, [edx*8 + 0x120]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x43397d
mov ecx, dword [esp + 0x10]
call fcn.0042b7b0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [eax + esi*4], 0
cmp dword [edi + 0x18], ecx
jge 0x43399a
mov edx, ecx
mov ecx, edi
push 0
call fcn.00428a20
add esp, 4
test eax, eax
jne 0x436116
jmp 0x4339a5
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov esi, dword [edi + 0x10]
push 0x58
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.005cbe10
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
lea eax, [ecx + 0x15]
lea eax, [esi + eax*4]
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x10]
push 0x44
push 0
lea eax, [eax + ecx*8]
add eax, 0x58
push eax
mov dword [esi], eax
call fcn.005cbe10
mov eax, dword [esp + 0x14]
lea edi, [esi + 4]
or dword [esi + 0x1c], 1
add esp, 0xc
mov byte [esi + 0x19], 1
xor edx, edx
movzx eax, byte [eax + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x1c]
push edi
push eax
mov ecx, dword [eax]
call fcn.0041f960
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x433b94
mov ecx, dword [edi]
lea edx, [eax + 1]
call fcn.00420800
mov dword [esp + 0xc], eax
test eax, eax
jne 0x433b94
mov ecx, dword [esp + 8]
mov edi, dword [edi]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x433b45
movzx eax, byte [ecx + 3]
or eax, 2
cmp byte [edi + 9], 0
mov dword [esp + 0x2c], eax
je 0x433a7a
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x433a7a
mov ecx, edi
call fcn.0041dde0
mov eax, dword [esp + 0x2c]
push eax
lea edx, [esp + 0xbc]
mov ecx, edi
call fcn.00425f30
add esp, 4
mov dword [esp + 0xc], eax
cmp byte [edi + 9], 0
je 0x433aa7
add dword [edi + 0xc], 0xffffffff
jne 0x433aa7
mov ecx, edi
call fcn.0041dda0
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x433b3f
mov eax, dword [esp + 0x1c]
mov edi, dword [esi + 4]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xb8]
cmp eax, 1
jge 0x433af5
push 0x63cc14
push 0xe21f
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0040ed50
add esp, 0x10
mov dword [esp + 0xc], 0xb
and dword [esi + 0x1c], 0xfffffffb
jmp 0x433b94
cmp byte [edi + 9], 0
je 0x433b12
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x433b12
mov ecx, edi
call fcn.0041dde0
mov eax, dword [esp + 0xb8]
push dword [esp + 0x2c]
mov edx, eax
mov ecx, edi
push dword [esp + 0x20]
push 1
call fcn.00421820
add esp, 0xc
mov dword [esp + 0xc], eax
cmp byte [edi + 9], 0
je 0x433b3f
add dword [edi + 0xc], 0xffffffff
jne 0x433b3f
mov ecx, edi
call fcn.0041dda0
and dword [esi + 0x1c], 0xfffffffb
jmp 0x433b94
cmp byte [edi + 9], 0
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
je 0x433b65
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x433b65
mov ecx, edi
call fcn.0041dde0
mov eax, dword [esp + 0x1c]
push eax
push 0
push 1
mov edx, 1
mov ecx, edi
call fcn.00421820
add esp, 0xc
mov dword [esp + 0xc], eax
cmp byte [edi + 9], 0
je 0x433b90
add dword [edi + 0xc], 0xffffffff
jne 0x433b90
mov ecx, edi
call fcn.0041dda0
or dword [esi + 0x1c], 4
mov ecx, dword [esp + 8]
xor eax, eax
mov edi, dword [esp + 0x14]
cmp byte [ecx + 3], 8
setne al
shl eax, 3
xor eax, dword [esi + 0x1c]
and eax, 8
xor dword [esi + 0x1c], eax
jmp 0x436742
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov edx, dword [eax + 8]
mov esi, dword [eax + 4]
mov eax, dword [edi + 0x1c]
sub eax, esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], esi
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edi, [eax + ecx*8]
mov eax, dword [esp + 0x10]
lea ecx, [edx*8 + 0x120]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x38]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x433c0e
mov ecx, dword [esp + 0x10]
call fcn.0042b7b0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [eax + esi*4], 0
cmp dword [edi + 0x18], ecx
jge 0x433c2b
mov edx, ecx
mov ecx, edi
push 0
call fcn.00428a20
add esp, 4
test eax, eax
jne 0x436116
jmp 0x433c36
mov eax, dword [edi + 0x14]
and word [edi + 8], 0xd
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov esi, dword [edi + 0x10]
push 0x58
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.005cbe10
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], cx
lea eax, [ecx + 0x15]
lea eax, [esi + eax*4]
mov dword [esi + 0x50], eax
mov eax, dword [edi + 0x10]
push 0x44
push 0
lea eax, [eax + ecx*8]
add eax, 0x58
push eax
mov dword [esi], eax
call fcn.005cbe10
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov eax, dword [ecx + 0x10]
mov dword [esi + 8], eax
mov edx, dword [ecx + 0xc]
mov ecx, edi
push esi
call fcn.00438490
add esp, 4
mov dword [esp + 0xc], eax
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov ecx, edi
mov esi, dword [edx + 0x2c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x28], ecx
adc eax, 0
or edi, esi
mov dword [edx + 0x2c], eax
mov eax, dword [esp + 8]
je 0x4310ef
mov edi, dword [esp + 0x14]
jmp 0x436746
mov eax, dword [esp + 8]
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x1c]
sub eax, edi
mov dword [esp + 0x2c], edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x10]
lea ecx, [edx*8 + 0x58]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x38]
mov edx, dword [eax + edi*4]
test edx, edx
je 0x433d2e
mov ecx, dword [esp + 0x10]
call fcn.0042b7b0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [eax + edi*4], 0
cmp dword [esi + 0x18], ecx
jge 0x433d4b
mov edx, ecx
mov ecx, esi
push 0
call fcn.00428a20
add esp, 4
test eax, eax
jne 0x436116
jmp 0x433d56
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esi + 0x10]
push 0x58
push 0
mov eax, dword [eax + 0x38]
push esi
mov dword [eax + edi*4], esi
call fcn.005cbe10
mov eax, dword [esp + 0x38]
add esp, 0xc
mov edi, dword [esp + 0x14]
mov word [esi + 0x14], ax
add eax, 0x15
mov word [esi + 0x18], 0x1ff
lea eax, [esi + eax*4]
mov dword [esi + 0x50], eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
or dword [esi + 0x1c], 4
mov dword [esi + 0x10], eax
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, esi
mov edx, dword [esi + 0x38]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax*4]
call fcn.0042b7b0
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
test byte [esi + 0x1c], 4
mov byte [esi + 0x19], 0
je 0x433e98
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x433e0a
xor edx, edx
mov ecx, edi
call fcn.00430d80
mov ecx, edi
call fcn.00428f50
movzx ecx, word [edi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
test cl, 4
jne 0x433e5a
test cl, 8
je 0x4310eb
mov ecx, eax
call fcn.005ed440
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x433e47
mov eax, dword [esp + 0x28]
test al, 1
jne 0x433e5a
dec eax
jmp 0x433e56
comisd xmm1, xmm0
jbe 0x433e5a
mov eax, dword [esp + 0x28]
test al, 1
je 0x433e5a
inc eax
mov dword [esp + 0x28], eax
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x5c]
mov ecx, dword [esi]
xor edx, edx
push eax
push 0
push dword [esp + 0x2c]
push edi
call fcn.004222c0
mov dword [esp + 0x1c], eax
add esp, 0x10
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x24]
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], eax
jne 0x4344c5
mov edi, dword [esp + 0x14]
jmp 0x433f14
mov eax, dword [esi + 8]
mov ecx, dword [esp + 8]
mov dword [esp + 0x114], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x118], ax
lea eax, [edx - 1]
test al, 1
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x11a], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [esp + 0x11c], ecx
test word [ecx + 8], ax
je 0x433eec
call fcn.00428be0
mov ecx, dword [esi]
lea eax, [esp + 0x5c]
push eax
push 0
push 0
push 0
lea edx, [esp + 0x124]
call fcn.004222c0
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
mov eax, dword [esp + 0x28]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov ecx, dword [esp + 0x5c]
cmp eax, 0x41
jl 0x433f5a
test ecx, ecx
js 0x433f44
jne 0x433f37
cmp eax, 0x42
je 0x433f44
mov dword [esp + 0x5c], 0
jmp 0x436742
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push eax
push dword [esi]
call fcn.00422870
jmp 0x433f8a
test ecx, ecx
jg 0x433f76
jne 0x433f65
cmp eax, 0x3f
je 0x433f76
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [esp + 0x5c], ecx
jmp 0x433f99
lea eax, [esp + 0x5c]
mov dword [esp + 0x5c], 0
push eax
push dword [esi]
call fcn.00422a00
add esp, 8
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
cmp dword [esp + 0x5c], 0
mov eax, dword [esp + 8]
jne 0x4310ef
jmp 0x436746
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov byte [esi + 0x19], 0
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00428f50
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp 0x436742
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x2c], 0
cmp dword [edx + 0x10], 0
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x24], ecx
jle 0x43407f
mov eax, dword [esi + 8]
xor edi, edi
mov dx, word [edx + 0x10]
mov dword [esp + 0x100], eax
xor eax, eax
mov word [esp + 0x104], dx
mov dword [esp + 0x108], ecx
cmp ax, dx
jae 0x434076
xor esi, esi
nop word [eax + eax]
add ecx, esi
mov eax, 0x4000
test word [ecx + 8], ax
je 0x434067
call fcn.00428be0
mov ecx, dword [esp + 0x108]
mov dx, word [esp + 0x104]
mov dword [esp + 0x24], ecx
jmp 0x43406b
mov ecx, dword [esp + 0x24]
inc edi
movzx eax, dx
add esi, 0x28
cmp edi, eax
jl 0x434040
lea edi, [esp + 0x100]
jmp 0x4340d1
mov ecx, dword [esi + 8]
lea eax, [esp + 0x2c]
push eax
push 0xbf
lea edx, [esp + 0x210]
call fcn.0042d150
mov edi, eax
add esp, 8
test edi, edi
je 0x436116
mov esi, dword [esp + 0x24]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4340bb
mov ecx, esi
call fcn.00428be0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov ecx, dword [ecx + 8]
call fcn.0042d1c0
add esp, 8
mov eax, dword [esp + 8]
xor esi, esi
mov byte [edi + 6], 0
cmp byte [eax], 0x44
jne 0x434104
movzx edx, word [edi + 4]
xor ecx, ecx
test edx, edx
jle 0x434104
mov eax, dword [edi + 8]
add eax, 8
test byte [eax], 1
jne 0x4340ff
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4340f0
jmp 0x434104
mov esi, 1
lea eax, [esp + 0xcc]
mov edx, edi
mov edi, dword [esp + 0x1c]
push eax
push 0
push 0
mov ecx, dword [edi]
push 0
call fcn.004222c0
mov edx, dword [esp + 0x3c]
add esp, 0x10
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
call fcn.0040cc10
cmp dword [esp + 0xc], 0
jne 0x431519
mov eax, dword [esp + 0xcc]
xor ecx, ecx
test eax, eax
mov dword [edi + 0xc], eax
mov al, 1
mov byte [edi + 0x1a], 0
sete cl
mov dword [edi + 0x3c], 0
sub al, cl
mov byte [edi + 0x19], al
mov eax, dword [esp + 8]
cmp byte [eax], 0x46
jne 0x434182
test ecx, ecx
jne 0x4310ef
mov edi, dword [esp + 0x14]
add eax, 0x14
mov esi, dword [esp + 0x10]
jmp 0x431082
test esi, esi
jne 0x4310ef
test ecx, ecx
je 0x4310ef
mov edi, dword [esp + 0x14]
add eax, 0x14
mov esi, dword [esp + 0x10]
jmp 0x431082
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x1c], 0
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov ecx, dword [ecx]
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [esp + 0x1c]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.004222c0
mov ecx, dword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
mov word [ecx + 0x19], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0xc], eax
test eax, eax
mov eax, dword [esp + 8]
jne 0x4310ef
mov edi, dword [esp + 0x14]
jmp 0x436746
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x43423a
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x28]
mov dword [esi], eax
mov eax, dword [ecx + 0x2c]
mov dword [esi + 4], eax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x28], 0
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x2c], esi
test word [esi + 8], ax
je 0x4342b8
mov ecx, esi
call fcn.00428e20
mov edx, dword [esp + 0x10]
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edx + 0x38]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x20], edi
test byte [edi + 0x1c], 2
jne 0x4343a3
mov esi, dword [edi]
cmp byte [esi + 0x42], 1
jne 0x4342ee
test byte [esi + 0x40], 8
jne 0x434353
mov ecx, esi
call fcn.00422000
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
cmp byte [esi + 0x42], al
jne 0x43432a
mov edx, dword [esp + 0x10]
mov edi, 1
xor esi, esi
mov dword [esp + 0x28], 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], esi
jmp 0x4343ab
mov ecx, esi
mov dword [esp + 0x28], 0
call fcn.00422200
mov dword [esp + 0xc], eax
test eax, eax
jne 0x434347
or byte [esi + 0x40], 8
jmp 0x434353
and byte [esi + 0x40], 0xf7
test eax, eax
jne 0x4344c5
mov esi, dword [edi]
mov ecx, esi
call fcn.00421a50
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], esi
mov dword [esp + 0xc], 0
cmp esi, 0x7fffffff
jl 0x43438f
jg 0x434381
cmp edi, 0xffffffff
jb 0x43438f
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
or dword [eax + 0x1c], 2
jmp 0x4343ab
mov edx, dword [esp + 0x10]
add edi, 1
mov dword [esp + 0x50], edi
adc esi, 0
mov dword [esp + 0x54], esi
jmp 0x4343ab
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x434444
mov edx, dword [edx + 0xb0]
test edx, edx
je 0x4343e4
mov eax, dword [edx + 4]
test eax, eax
je 0x4343d9
nop dword [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4343d0
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x4343ee
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x24], ecx
call fcn.00429100
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x434411
cmp edx, 0x7fffffff
je 0x4344bd
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 2
mov eax, dword [esp + 0x24]
jne 0x4344bd
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x43443f
jl 0x434433
cmp edi, ecx
jae 0x43443f
mov edi, ecx
mov esi, edx
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 2
je 0x4344e9
mov dword [esp + 0x1c], 0
nop word [eax + eax]
lea eax, [esp + 0x50]
push eax
push 8
call fcn.0040ed90
mov esi, dword [esp + 0x5c]
lea eax, [esp + 0x30]
mov edi, dword [esp + 0x58]
and esi, 0x3fffffff
push eax
mov eax, dword [esp + 0x2c]
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x60], edi
push esi
mov ecx, dword [eax]
xor edx, edx
push edi
mov dword [esp + 0x6c], esi
call fcn.004222c0
add esp, 0x18
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344e5
cmp dword [esp + 0x28], eax
jne 0x4344e5
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, 0x64
jl 0x434460
mov dword [esp + 0xc], 0xd
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x41], 0
je 0x436a2d
mov eax, 7
mov dword [esp + 0xc], eax
jmp 0x436a3c
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0x2c]
mov dword [eax], edi
mov edi, dword [esp + 0x14]
mov dword [eax + 4], esi
jmp 0x436742
cmp byte [esp + 0x33], 0x54
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x20], edx
mov eax, dword [ecx + 0xc]
jne 0x434547
mov edi, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x18]
mov edi, dword [edi + eax*8]
mov eax, dword [edx + eax*8 + 4]
mov dword [esp + 0x24], eax
jmp 0x434550
cdq
mov edi, eax
mov dword [esp + 0x24], edx
mov eax, edx
test byte [ecx + 3], 1
mov edx, dword [esp + 0x20]
je 0x434565
mov eax, dword [esp + 0x10]
inc dword [eax + 0x5c]
mov eax, dword [esp + 0x24]
test byte [ecx + 3], 2
je 0x434581
mov edx, dword [esp + 0x14]
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], eax
mov dword [edx + 0x20], edi
mov dword [edx + 0x24], eax
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
movzx eax, word [eax + esi*8 + 8]
test al, 1
je 0x4345a6
mov edx, dword [esp + 0x18]
mov dword [edx + esi*8 + 0x10], 0
mov dword [edx + esi*8 + 0xc], 0
mov edx, dword [esp + 0x20]
mov cl, byte [ecx + 3]
mov byte [esp + 0x33], cl
test cl, 0x10
je 0x4345b7
mov edx, dword [edx + 0xc]
jmp 0x4345b9
xor edx, edx
test eax, 0x4000
je 0x4345c9
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + esi*8]
jmp 0x4345cb
xor ecx, ecx
movzx eax, byte [esp + 0x33]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2c]
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov esi, dword [esp + 0x38]
mov ecx, dword [ecx]
push esi
push edi
call fcn.00425a80
mov ecx, dword [esp + 0x3c]
add esp, 0x1c
mov dword [esp + 0xc], eax
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
test eax, eax
jne 0x431519
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xd4]
mov eax, dword [esp + 8]
test edx, edx
je 0x4311e7
mov eax, dword [eax + 0x10]
test eax, eax
je 0x431519
movsx ecx, byte [ecx + 0x18]
push esi
push edi
mov edi, dword [esp + 0x1c]
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x18]
mov ecx, 0x17
test byte [eax + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [edi + 0xd0]
call edx
add esp, 0x18
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.00425cb0
mov dword [esp + 0xc], eax
mov dword [esi + 0x3c], 0
test eax, eax
jne 0x4346ce
mov edx, dword [edi + 0xd4]
test edx, edx
je 0x4346ce
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4346ce
test byte [esi + 0x1c], 4
je 0x4346ce
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
add ecx, ecx
push eax
mov eax, dword [edi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [edi + 0xd0]
call edx
add esp, 0x18
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test byte [eax + 8], 1
je 0x43674e
inc dword [esi + 0x5c]
jmp 0x43674e
mov eax, dword [esi + 0x5c]
add dword [edi + 0x54], eax
mov dword [edi + 0x50], eax
mov eax, dword [esp + 8]
mov dword [esi + 0x5c], 0
jmp 0x43674a
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x40], 0
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0xc]
push dword [eax + 0x10]
call fcn.0043a880
add esp, 8
mov dword [esp + 0xc], eax
cmp dword [esp + 0x40], 0
mov eax, dword [esp + 8]
jne 0x4310ef
jmp 0x43674a
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.0043a7e0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 8]
jmp 0x43674a
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x1c], eax
test byte [eax + 0x1c], 4
mov esi, dword [eax]
mov ecx, esi
jne 0x4347de
call fcn.00421a50
mov eax, dword [esp + 0x14]
mov edi, dword [esi + 0x10]
mov eax, dword [eax + 0x58]
cdq
cmp dword [esi + 0x14], edx
jg 0x436ad2
jl 0x4347f3
cmp edi, eax
jmp 0x4347ed
call fcn.00421a50
mov eax, dword [esp + 0x14]
mov edi, dword [esi + 0x1c]
cmp edi, dword [eax + 0x58]
ja 0x436ad2
mov ecx, dword [esp + 0x28]
mov edx, 0x20
cmp edi, edx
cmova edx, edi
call fcn.00428b50
test eax, eax
jne 0x436116
mov ecx, dword [esp + 0x28]
mov edx, 0xbe10
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx + 0xc], edi
or ax, 0x10
mov word [ecx + 8], ax
mov eax, dword [esp + 0x1c]
test byte [eax + 0x1c], 4
jne 0x43483a
push 0
push dword [ecx + 0x10]
jmp 0x434876
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], eax
mov al, byte [esi + 0x42]
test al, al
jne 0x43485d
mov edi, dword [esp + 0x14]
mov dword [esp + 0xc], 4
mov byte [ecx + 0xa], 1
jmp 0x436742
cmp al, 3
jb 0x434870
mov ecx, esi
call fcn.0041e430
mov dword [esp + 0xc], eax
test eax, eax
jne 0x434887
push 0
push dword [esp + 0x20]
push edi
xor edx, edx
mov ecx, esi
call fcn.00421c50
mov dword [esp + 0x18], eax
add esp, 0xc
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov byte [ecx + 0xa], 1
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x4348ba
mov ecx, edi
call fcn.00428e20
mov eax, 4
mov word [edi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x4348e8
mov eax, 1
mov word [edi + 8], ax
mov edi, dword [esp + 0x14]
jmp 0x436742
cmp byte [esi + 0x1a], 0
je 0x434900
mov ecx, dword [esi + 0x30]
mov dword [esp + 0xa0], ecx
mov eax, dword [esi + 0x34]
jmp 0x4349b3
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x43494d
mov esi, dword [ecx]
lea edx, [esp + 0xa0]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
add esp, 8
mov dword [esp + 0xc], eax
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0042e2d0
mov ecx, dword [esp + 0xa0]
mov dword [edi], ecx
mov eax, dword [esp + 0xa4]
mov dword [edi + 4], eax
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x43674a
mov eax, dword [esi]
cmp byte [eax + 0x42], 1
je 0x43496a
mov ecx, esi
call fcn.0042cd70
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
jmp 0x434972
mov dword [esp + 0xc], 0
cmp byte [esi + 0x19], 0
je 0x434995
mov esi, dword [esp + 0x10]
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
add eax, 0x14
jmp 0x431082
mov esi, dword [esi]
mov ecx, esi
call fcn.00421a50
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xa0], ecx
mov eax, dword [esi + 0x14]
mov dword [esp + 0xc], 0
mov esi, dword [esp + 0x10]
mov dword [esp + 0xa4], eax
mov dword [edi], ecx
mov eax, dword [esp + 0xa4]
mov dword [edi + 4], eax
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
test ecx, ecx
je case.0x4310af.62
call fcn.0041e260
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov esi, dword [edi]
cmp byte [esi + 0x42], 1
jne 0x434a2e
test byte [esi + 0x40], 8
je 0x434a2e
mov dword [esp + 0xc], ecx
jmp 0x434a72
mov ecx, esi
call fcn.00422000
mov dword [esp + 0xc], eax
test eax, eax
jne 0x434a6e
cmp byte [esi + 0x42], al
jne 0x434a47
lea ecx, [eax + 1]
jmp 0x434a72
mov ecx, esi
mov dword [esp + 0x28], 0
call fcn.00422200
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x434a68
or byte [esi + 0x40], 8
jmp 0x434a72
and byte [esi + 0x40], 0xf7
jmp 0x434a72
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 8]
mov byte [edi + 0x19], cl
mov byte [edi + 0x1a], 0
mov dword [edi + 0x3c], 0
mov eax, dword [eax + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
jle 0x4311e7
test ecx, ecx
jne 0x4310ef
mov edi, dword [esp + 0x14]
jmp 0x436746
inc dword [esi + 0x74]
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
cmp dword [esi + 0x38], 0
je 0x434ae1
lea edx, [esp + 0x34]
mov ecx, esi
call fcn.0043a720
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
jmp 0x434b22
mov edi, dword [esi]
mov ecx, edi
call fcn.00422000
mov dword [esp + 0xc], eax
test eax, eax
jne 0x434b0f
cmp byte [edi + 0x42], al
jne 0x434afe
mov eax, 1
jmp 0x434b13
xor eax, eax
mov ecx, edi
call fcn.00422150
mov dword [esp + 0xc], eax
xor eax, eax
jmp 0x434b13
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov byte [esi + 0x19], al
test eax, eax
mov eax, dword [esp + 8]
jne 0x4310ef
jmp 0x436746
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
mov dword [esp + 0x68], 0
mov esi, dword [edi + 0x38]
cmp byte [esi + 0x38], 0
je 0x434b94
cmp byte [esi + 0x39], 0
je 0x434b7e
mov ecx, dword [esi + 0x10]
call fcn.00438140
mov dword [esp + 0xc], eax
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x10]
cmp dword [eax + 0x18], ecx
sete cl
mov dword [esp + 0x68], ecx
jmp 0x434c0c
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x68]
call fcn.00439440
mov esi, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jmp 0x434c0c
mov edx, dword [esi + 0x24]
mov eax, dword [edx + 4]
mov dword [esi + 0x24], eax
mov dword [edx + 4], 0
cmp dword [esi + 0x28], 0
jne 0x434bb3
mov ecx, dword [esp + 0x14]
call fcn.00438630
xor eax, eax
mov dword [esp + 0xc], 0
cmp dword [esi + 0x24], eax
mov esi, dword [esp + 0x10]
sete al
mov dword [esp + 0x68], eax
jmp 0x434c0c
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
cmp dword [eax + ecx*4], 0
je case.0x4310af.62
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x68]
push eax
push dword [edi]
mov eax, dword [ecx + 0x10]
call eax
add esp, 8
mov dword [esp + 0xc], eax
mov dword [edi + 0x3c], 0
cmp dword [esp + 0x68], 0
jne 0x434c2f
mov eax, dword [esp + 8]
mov byte [edi + 0x19], 0
movzx eax, byte [eax + 3]
inc dword [esi + eax*4 + 0x6c]
jmp 0x436425
mov byte [edi + 0x19], 1
mov edi, dword [esp + 0x14]
cmp dword [edi + 0xf0], 0
jne 0x436c24
mov ecx, dword [edi + 0x124]
test ecx, ecx
je 0x436742
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x84]
jb 0x436742
mov esi, dword [edi + 0x12c]
xor edx, edx
div esi
push dword [edi + 0x128]
sub esi, edx
add esi, dword [esp + 0x70]
mov dword [esp + 0x88], esi
call ecx
add esp, 4
test eax, eax
je 0x436742
mov eax, 9
mov dword [esp + 0xc], eax
jmp 0x436761
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
test byte [edx + 3], 1
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x434cc2
mov eax, dword [esp + 0x10]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x434ce4
mov ecx, esi
call fcn.00428be0
mov dword [esp + 0xc], eax
test eax, eax
jne 0x431519
mov edx, dword [esp + 8]
cmp byte [edx], 0x6e
jne 0x434cff
mov edx, esi
mov ecx, edi
call fcn.00439710
mov edi, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jmp 0x436742
test byte [edx + 3], 0x10
je 0x434d0a
mov eax, dword [edi + 0xc]
jmp 0x434d0c
xor eax, eax
mov ecx, dword [edi]
push eax
push dword [edx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
cdq
push 0x6381a8
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.00425a80
mov dword [edi + 0x3c], 0
add esp, 0x1c
mov edi, dword [esp + 0x14]
mov dword [esp + 0xc], eax
jmp 0x436742
mov edx, dword [esp + 8]
mov eax, dword [esi + 0x38]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov dword [esp + 0x128], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x12c], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x128]
mov byte [esp + 0x12e], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x130], eax
lea eax, [esp + 0xe0]
push eax
push 0
push 0
push 0
call fcn.004222c0
add esp, 0x10
mov dword [esp + 0xc], eax
test eax, eax
jne 0x434dbc
cmp dword [esp + 0xe0], eax
jne 0x434dbc
mov ecx, edi
call fcn.00425cb0
mov dword [esp + 0xc], eax
mov edi, dword [esp + 0x14]
mov dword [esi + 0x3c], 0
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x434dee
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + ecx*4]
mov eax, 1
mov ecx, dword [edi]
mov word [esi + 8], ax
mov eax, dword [edi]
mov dword [esp + 0x1c], ecx
cmp byte [eax + 0x42], 1
je 0x434e38
mov ecx, edi
call fcn.0042cd70
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
mov ecx, dword [esp + 0x1c]
jmp 0x434e40
mov dword [esp + 0xc], 0
cmp byte [edi + 0x19], 0
mov edi, dword [esp + 0x14]
jne 0x434e92
lea eax, [esp + 0x88]
xorps xmm0, xmm0
mov edx, ecx
movlpd qword [esp + 0x88], xmm0
push eax
mov ecx, edi
call fcn.0042dfc0
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4344c5
mov eax, dword [esp + 0x88]
mov dword [esi], eax
mov eax, dword [esp + 0x8c]
mov dword [esi + 4], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x10]
add eax, 0x14
jmp 0x431082
mov eax, dword [esp + 8]
cmp byte [esp + 0x33], 0x74
mov dword [esp + 0x24], 0
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 8]
mov eax, dword [edx + 8]
mov dword [esp + 0x13c], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x140], ax
sbb al, al
mov byte [esp + 0x142], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x144], eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x140]
push eax
call fcn.0042e100
mov dword [esp + 0x14], eax
add esp, 8
mov eax, dword [esp + 8]
test byte [eax], 1
mov eax, dword [esp + 0x24]
jne 0x434f1f
neg eax
jmp 0x434f20
inc eax
test eax, eax
mov eax, dword [esp + 8]
jg 0x4310ef
jmp 0x43674a
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x434f53
mov ecx, edi
call fcn.00428e20
mov edx, dword [esp + 0x14]
mov eax, 1
mov word [edi + 8], ax
mov eax, dword [edx + 0xa4]
inc eax
cmp dword [edx + 0x98], eax
jg 0x436a57
mov eax, dword [esp + 8]
mov dword [esp + 0x38], 0
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x24], ecx
shl ecx, 4
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x2c], ecx
mov esi, dword [ecx + eax + 4]
cmp byte [esi + 9], 0
je 0x434fb1
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x434fb1
mov ecx, esi
call fcn.0041dde0
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x38]
push eax
mov ecx, esi
call fcn.004264b0
add esp, 4
mov dword [esp + 0xc], eax
cmp byte [esi + 9], 0
je 0x434fdb
add dword [esi + 0xc], 0xffffffff
jne 0x434fdb
mov ecx, esi
call fcn.0041dda0
cmp dword [esp + 0xc], 0
mov eax, 4
mov esi, dword [esp + 0x38]
mov word [edi + 8], ax
mov eax, esi
cdq
mov dword [edi], eax
mov eax, dword [esp + 8]
mov dword [edi + 4], edx
jne 0x4311e7
test esi, esi
je 0x4311e7
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x2c]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x435031
nop
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x1c], esi
jne 0x43502b
mov dword [ecx + 0x1c], edx
mov eax, dword [eax]
test eax, eax
jne 0x435020
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x435051
nop dword [eax + eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x28], esi
jne 0x43504b
mov dword [ecx + 0x28], edx
mov eax, dword [eax]
test eax, eax
jne 0x435040
mov al, byte [esp + 0x24]
mov edi, dword [esp + 0x14]
inc al
mov byte [esp + 0x5b], al
jmp 0x436742
mov edx, dword [esp + 8]
lea eax, [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x3c], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004263f0
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
cmp dword [eax + 0xc], 0
je 0x43674a
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x3c]
add dword [esi + 0x5c], eax
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jle case.0x4310af.62
mov edi, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x14]
adc dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x4350fe
mov ecx, edi
call fcn.00438990
mov eax, dword [esp + 8]
jmp 0x43674a
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx]
call fcn.004263f0
mov dword [esp + 0x10], eax
add esp, 4
mov eax, dword [esp + 8]
jmp 0x43674a
mov edx, dword [esp + 8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea edi, [eax + ecx*8]
mov eax, 0x2460
test word [edi + 8], ax
je 0x435142
mov ecx, edi
call fcn.00428e20
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov eax, 4
mov word [edi + 8], ax
mov eax, dword [edx + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [edx], 0x7a
mov dword [esp + 0x44], 0
setne cl
mov esi, dword [eax + 4]
inc ecx
mov dword [esp + 0x1c], ecx
cmp byte [esi + 9], 0
je 0x43518a
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43518a
mov ecx, esi
call fcn.0041dde0
mov ecx, dword [esp + 0x1c]
push ecx
lea edx, [esp + 0x48]
mov ecx, esi
call fcn.00425f30
add esp, 4
mov dword [esp + 0xc], eax
cmp byte [esi + 9], 0
je 0x4351b0
add dword [esi + 0xc], 0xffffffff
jne 0x4351b0
mov ecx, esi
call fcn.0041dda0
mov eax, dword [esp + 0x44]
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
mov edi, dword [esp + 0x14]
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, str.sqlite_temp_master
mov dword [esp + 0xf0], edi
mov edx, dword [eax + 4]
cmp edx, 1
mov eax, str.sqlite_master
mov dword [esp + 0xf8], edx
cmovne ecx, eax
lea eax, [esi + 0x2c]
mov dword [esp + 0xf4], eax
add edx, edx
mov eax, dword [esp + 8]
push dword [eax + 0x10]
mov eax, dword [edi + 0x10]
push ecx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.0040eab0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x435220
mov dword [esp + 0xc], 7
jmp 0x435271
push 0
lea eax, [esp + 0xf4]
mov byte [edi + 0x91], 1
push eax
push fcn.0045c320
push esi
push edi
mov dword [esp + 0x110], 0
call fcn.00458220
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0xfc]
mov dword [esp + 0xc], eax
call fcn.0040cc10
mov eax, dword [esp + 0xc]
mov byte [edi + 0x91], 0
test eax, eax
je 0x43527c
mov ecx, edi
call fcn.00447210
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
cmp eax, 7
je 0x436c6b
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.004454f0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
jmp 0x43674a
mov edx, dword [esp + 8]
mov eax, dword [edi + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 0xc]
lea eax, [esp + 0xe4]
push eax
lea ecx, [esi + 8]
call fcn.00411130
add esp, 4
test eax, eax
je 0x4352f0
push dword [esp + 0xe4]
mov edi, dword [eax + 8]
lea ecx, [esi + 8]
mov edx, eax
call fcn.00411210
add esp, 4
jmp 0x4352f2
xor edi, edi
mov edx, edi
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.00447470
or dword [edi + 0x18], 2
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.00446fc0
mov eax, dword [esp + 0xc]
add esp, 4
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, edi
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.00468410
mov eax, dword [esp + 0xc]
add esp, 4
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
push 0
mov edi, dword [eax + 8]
mov dword [esp + 0x20], edi
lea eax, [edi*4 + 4]
push eax
call fcn.0040ce90
mov edx, eax
add esp, 8
mov dword [esp + 0x2c], edx
test edx, edx
je 0x436c5f
mov eax, dword [esp + 8]
xor esi, esi
mov ecx, dword [eax + 0xc]
lea eax, [ecx + ecx*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov dword [esp + 0x24], eax
test edi, edi
jle 0x4353bc
mov edi, eax
nop dword [eax]
mov ecx, edi
call fcn.00428f50
mov edx, dword [esp + 0x2c]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
cmp esi, dword [esp + 0x1c]
jl 0x4353a0
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x44]
mov dword [edx + esi*4], 0
mov esi, dword [esp + 0x18]
push dword [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x10]
push edi
movzx eax, byte [eax + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00427360
mov edx, dword [esp + 0x38]
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.0040cc10
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x70]
cdq
sub dword [esi + ecx*8], eax
mov eax, esi
sbb dword [eax + ecx*8 + 4], edx
mov ecx, dword [esp + 0x24]
call fcn.00429350
mov esi, dword [esp + 0x70]
test esi, esi
je 0x435444
test edi, edi
je 0x436116
mov ecx, dword [esp + 0x24]
mov edx, edi
push fcn.0040cb60
push 1
push 0xffffffffffffffff
call fcn.004295b0
add esp, 0xc
movzx edx, byte [esp + 0x4c]
mov ecx, dword [esp + 0x24]
call fcn.00428a00
mov edi, dword [esp + 0x14]
jmp 0x436742
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x43548a
mov ecx, esi
call fcn.004293f0
test byte [esi + 8], 0x20
je 0x436116
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.00416520
mov edi, dword [esp + 0x1c]
add esp, 8
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea edi, [ecx + eax*8]
je 0x435523
mov esi, dword [edi]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x4354de
test al, 1
jne 0x4354d9
mov ecx, dword [esi + 8]
call fcn.00416630
mov dword [esi + 8], eax
or word [esi + 0x1a], 2
mov eax, dword [esi + 8]
test eax, eax
je 0x435523
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x1c], ecx
mov dword [esi + 8], eax
test eax, eax
jne 0x435503
mov ecx, esi
call fcn.00416490
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 8]
push ecx
mov ecx, dword [esp + 0x1c]
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004293b0
add esp, 8
jmp 0x434c33
mov ecx, edi
call fcn.00429350
jmp 0x436425
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x1c], eax
jne 0x43556d
mov ecx, esi
call fcn.004293f0
test byte [esi + 8], 0x20
je 0x436116
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
test eax, eax
je 0x435592
push dword [edx + edi*8 + 4]
mov ecx, dword [esi]
push dword [edx + edi*8]
mov edx, eax
call fcn.00416970
add esp, 8
test eax, eax
jne 0x4310eb
mov eax, dword [esp + 0x1c]
test eax, eax
js 0x431519
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.00416520
mov edi, dword [esp + 0x1c]
add esp, 8
jmp 0x436742
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x24], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 8]
mov dword [esp + 0x28], ecx
cmp byte [eax + 3], 0
je 0x435604
mov eax, dword [esi + 0xb0]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x435600
nop dword [eax]
cmp dword [eax + 0x1c], ecx
je case.0x4310af.62
mov eax, dword [eax + 4]
test eax, eax
jne 0x4355f0
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x436a70
test byte [ecx + 8], 0x40
jne 0x4357b0
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
mov ecx, edi
cdq
push edx
push eax
call fcn.0040ce60
mov edi, eax
add esp, 8
mov dword [esp + 0x1c], edi
test edi, edi
je 0x436116
mov ecx, dword [esp + 0x28]
call fcn.00428f30
mov eax, dword [esp + 0x28]
mov ecx, 0x40
mov word [eax + 8], cx
mov dword [eax], edi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
sub ecx, dword [esp + 0x48]
mov dword [edi], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x3c], esi
mov eax, dword [eax + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x28], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x1c], eax
mov eax, dword [ecx + 0xc8]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x43570c
mov esi, dword [esp + 0x14]
mov edi, 0x80
mov word [eax + 8], di
mov dword [eax + 0x20], esi
add eax, 0x28
cmp eax, ecx
jne 0x4356f6
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
inc dword [esi + 0xb8]
lea ecx, [edi + 0x28]
mov eax, dword [esi + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x60]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x64]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x5c]
mov dword [edi + 0x44], eax
mov eax, dword [esi]
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0x50]
mov dword [edi + 0x48], eax
mov dword [esi + 8], ecx
mov dword [esi + 0x5c], 0
mov dword [esi + 0xb0], edi
mov eax, dword [edi + 0x3c]
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esi + 0x38], ecx
mov edi, dword [edx]
mov dword [esi + 4], edi
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x48], edi
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc8], ecx
mov eax, dword [edx + 0x10]
lea edx, [edi - 0x14]
push eax
push 0
push ecx
mov dword [esi + 0xc4], eax
mov dword [esp + 0x14], edx
call fcn.005cbe10
mov eax, dword [esp + 0x14]
add esp, 0xc
mov edi, dword [esp + 0x14]
jmp 0x43674a
mov edi, dword [ecx]
jmp 0x435710
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x4357d9
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x10]
push 0x1000
mov edx, dword [eax + 0xb0]
mov eax, dword [edx + 0x2c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.004294f0
add esp, 4
jmp 0x436742
test dword [edi + 0x18], 0x1000000
mov eax, dword [esp + 8]
je 0x435843
mov eax, dword [eax + 8]
cdq
add dword [edi + 0x200], eax
mov eax, dword [esp + 8]
adc dword [edi + 0x204], edx
jmp 0x43674a
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0xc]
cdq
je 0x435866
add dword [edi + 0x1f8], eax
mov eax, dword [esp + 8]
adc dword [edi + 0x1fc], edx
jmp 0x43674e
add dword [esi + 0x90], eax
mov eax, dword [esp + 8]
adc dword [esi + 0x94], edx
jmp 0x43674e
mov eax, dword [esp + 8]
cmp dword [eax + 4], 0
je 0x4358b2
mov eax, dword [edi + 0x1f8]
or eax, dword [edi + 0x1fc]
jne case.0x4310af.62
mov eax, dword [edi + 0x200]
or eax, dword [edi + 0x204]
mov eax, dword [esp + 8]
je 0x4310ef
jmp 0x43674a
mov eax, dword [esi + 0x90]
or eax, dword [esi + 0x94]
jmp 0x435891
mov edx, dword [esi + 0xb0]
test edx, edx
je 0x4358ec
mov eax, dword [edx + 4]
test eax, eax
je 0x4358da
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4358d1
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x4358fd
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00429100
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00429100
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x431519
jl 0x435934
cmp dword [edi], eax
jae 0x431519
mov dword [edi], eax
mov dword [edi + 4], ecx
mov edi, dword [esp + 0x14]
jmp 0x436742
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
cmp dword [edx + eax*8 + 4], 0
jg 0x4310eb
jl case.0x4310af.62
cmp dword [edx + eax*8], 0
ja 0x4310eb
mov eax, dword [esp + 8]
jmp 0x43674a
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x18]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
cdq
add dword [esi + ecx*8], eax
mov eax, esi
adc dword [eax + ecx*8 + 4], edx
mov edx, esi
mov esi, dword [esp + 0x10]
cmp dword [edx + ecx*8 + 4], 0
jl 0x4310eb
jg case.0x4310af.62
cmp dword [edx + ecx*8], 0
jb 0x4310eb
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov esi, dword [edx + ecx*8]
mov eax, esi
mov edi, dword [edx + ecx*8 + 4]
or eax, edi
mov eax, dword [esp + 8]
je 0x4311e7
mov eax, dword [eax + 0xc]
cdq
add eax, esi
mov esi, dword [esp + 0x18]
adc edx, edi
mov dword [esi + ecx*8], eax
mov dword [esi + ecx*8 + 4], edx
jmp 0x4310eb
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
add dword [edx + ecx*8], 0xffffffff
mov eax, dword [edx + ecx*8]
adc dword [edx + ecx*8 + 4], 0xffffffff
or eax, dword [edx + ecx*8 + 4]
jmp 0x4358a3
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov edi, dword [eax + esi*8]
mov ecx, edi
mov edx, dword [eax + esi*8 + 4]
add ecx, 1
mov dword [esp + 0x1c], edx
mov eax, edx
mov edx, dword [esp + 0x18]
adc eax, 0
or edi, dword [esp + 0x1c]
mov dword [edx + esi*8], ecx
mov ecx, edx
mov dword [ecx + esi*8 + 4], eax
mov eax, dword [esp + 8]
je 0x4310ef
mov edi, dword [esp + 0x14]
jmp 0x436746
mov eax, dword [esp + 8]
mov ecx, edi
push 0
movzx eax, byte [eax + 3]
mov dword [esp + 0x20], eax
lea eax, [eax*4 + 0x1c]
push eax
call fcn.0040ce90
mov esi, eax
add esp, 8
test esi, esi
je 0x436c67
mov eax, dword [esp + 8]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x48]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x1a], al
mov eax, dword [esp + 8]
mov word [eax], 0xec90
mov dword [eax + 0x10], esi
jmp 0x435ad3
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [esp + 0x2c], edi
cmp dword [esi + 8], edi
je 0x435b2e
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], edi
js 0x435b2e
mov edi, dword [esp + 8]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x18]
lea edx, [edx + ecx*4]
nop word [eax + eax]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x435b10
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
inc dword [edi + 0xc]
mov eax, 1
mov edi, dword [esp + 0x14]
mov word [esp + 0x1d8], ax
lea eax, [esp + 0x1d0]
mov dword [esp + 0x1f0], edi
mov dword [esp + 0x1e8], 0
mov ecx, dword [esi + 4]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0x10]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x435bb9
cmp dword [esi + 0x14], 0
je 0x435bad
lea eax, [esp + 0x1d0]
push eax
call fcn.0042e830
add esp, 4
push eax
push 0x638dac
push dword [esp + 0x18]
call fcn.00429e70
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x1d0]
call fcn.00428f30
cmp byte [esi + 0x18], 0
mov eax, dword [esp + 8]
je 0x436746
mov eax, dword [eax - 0x10]
test eax, eax
je 0x436742
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.004293b0
add esp, 8
jmp 0x436742
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.00428d80
mov dword [esp + 0xc], eax
test eax, eax
je 0x435c2b
push esi
call fcn.0042e830
add esp, 4
push eax
push 0x638dac
push dword [esp + 0x18]
call fcn.00429e70
add esp, 0xc
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.00428a00
movzx eax, word [esi + 8]
test al, 0x12
je 0x436742
mov edx, dword [esi + 0xc]
test eax, 0x4000
je 0x435c4f
add edx, dword [esi]
mov eax, dword [esi + 0x20]
xor ecx, ecx
mov esi, dword [esp + 0x10]
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x436ad6
mov eax, dword [esp + 8]
jmp 0x43674a
lea eax, [esp + 0x204]
mov dword [esp + 0x1fc], 0
push eax
lea eax, [esp + 0x204]
mov dword [esp + 0x208], 0xffffffff
push eax
mov eax, dword [esp + 0x10]
mov ecx, edi
mov dword [esp + 0x208], 0xffffffff
push dword [eax + 8]
mov edx, dword [eax + 4]
call fcn.0047c650
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xc], ecx
cmp ecx, 5
jne 0x435cd2
mov dword [esp + 0xc], 0
mov dword [esp + 0x1fc], 1
mov eax, dword [esp + 8]
xor esi, esi
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x1fc]
mov ecx, edi
cdq
push edx
push eax
call fcn.004293b0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x435ce5
mov edi, dword [esp + 0x14]
jmp 0x436742
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x2c], esi
test word [esi + 8], ax
je 0x435d31
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov esi, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx edx, byte [edi + 5]
cmove esi, edx
mov dword [esp + 0x20], edx
cmp byte [edi + 0x10], 3
jae 0x435d80
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x435d82
cmp dword [edi + 0x4c], 0
jl 0x435d82
jg 0x435d80
cmp dword [edi + 0x48], 0
jbe 0x435d82
mov esi, edx
cmp byte [edi + 0xf], 0
mov ecx, 0x6381a8
jne 0x435d93
mov ecx, dword [edi + 0xa8]
cmp esi, 5
jne 0x435dc3
call fcn.0040f7d0
test eax, eax
je 0x435db7
cmp byte [edi + 4], 0
mov eax, dword [edi + 0x3c]
mov eax, dword [eax]
jne 0x435dbf
cmp dword [eax], 2
jl 0x435db7
cmp dword [eax + 0x34], 0
jne 0x435dbf
mov eax, dword [esp + 0x20]
mov esi, eax
jmp 0x435e3d
mov edx, dword [esp + 0x20]
cmp esi, edx
je 0x435e39
cmp edx, 5
je 0x435dd1
cmp esi, 5
jne 0x435e39
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3f], 0
je 0x436a97
cmp dword [eax + 0x98], 1
jg 0x436a97
cmp edx, 5
jne 0x435e0b
mov ecx, edi
call fcn.0041b860
mov dword [esp + 0xc], eax
test eax, eax
jne 0x435e46
mov edx, esi
mov ecx, edi
call fcn.0041b5f0
jmp 0x435e23
cmp edx, 4
jne 0x435e1c
mov edx, 2
mov ecx, edi
call fcn.0041b5f0
cmp dword [esp + 0xc], 0
jne 0x435e46
mov ecx, dword [esp + 0x1c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00427a80
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0xc], 0
je 0x435e4c
jmp 0x435e4a
mov eax, dword [esp + 0x20]
mov esi, eax
mov edx, esi
mov ecx, edi
call fcn.0041b5f0
mov esi, dword [esp + 0x2c]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x435e6b
xor ecx, ecx
jmp 0x435e72
mov ecx, dword [eax*4 + 0x63dfa8]
mov dword [esi + 0x10], ecx
call fcn.0040f7d0
movzx edx, byte [esp + 0x4c]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.00428a00
mov edi, dword [esp + 0x14]
jmp 0x436742
lea ecx, [esi + 0x2c]
mov edx, edi
call fcn.0046b250
mov dword [esp + 0xc], eax
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00421100
mov dword [esp + 0xc], eax
cmp eax, 0x65
mov eax, dword [esp + 8]
jne 0x43674a
mov dword [esp + 0xc], 0
jmp 0x4310ef
mov eax, dword [esp + 8]
cmp dword [eax + 4], 0
jne 0x435efa
mov ecx, edi
call fcn.0042e200
mov eax, dword [esp + 8]
jmp 0x43674a
or dword [esi + 0x58], 8
jmp 0x43674a
mov eax, dword [esp + 8]
mov al, byte [eax + 0xc]
mov byte [esp + 0xbc], al
test al, al
jne 0x435f22
test dword [edi + 0x18], 0x4000
jne case.0x4310af.62
mov eax, dword [esp + 8]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 8]
push dword [esp + 0xbc]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00427950
add esp, 4
mov dword [esp + 0xc], eax
cmp al, 6
mov eax, dword [esp + 8]
jne 0x43674a
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.00429e70
mov eax, dword [esp + 0x14]
add esp, 0xc
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, edi
mov esi, dword [eax + 0x10]
mov edx, esi
call fcn.0046c9a0
mov dword [esp + 0xc], eax
test esi, esi
je 0x436742
mov edx, dword [esi + 8]
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0042e2d0
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x18]
movq qword [esp + 0x1a0], xmm0
movaps xmmword [esp + 0x180], xmm0
mov eax, dword [eax + 8]
movaps xmmword [esp + 0x190], xmm0
mov dword [esp + 0x1a0], edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
lea ecx, [esp + 0x180]
call fcn.00429540
mov dword [esp + 0xc], eax
lea eax, [esp + 0x180]
push eax
call fcn.0042e830
add esp, 4
test eax, eax
je 0x436017
lea ecx, [esi + 0x2c]
push ecx
push eax
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.0046c430
add esp, 8
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x180]
call fcn.00428f30
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, edi
inc dword [edi + 0xa4]
push dword [eax + 0x10]
mov edx, dword [eax + 4]
call fcn.0046c760
add esp, 4
mov dword [esp + 0xc], eax
dec dword [edi + 0xa4]
mov eax, dword [esp + 8]
jmp 0x43674a
mov eax, dword [esp + 8]
mov dword [esp + 0x20], 0
mov eax, dword [eax + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x436af2
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x436af2
mov eax, dword [eax + 0x18]
lea ecx, [esp + 0x20]
push ecx
push edi
call eax
add esp, 8
mov dword [esp + 0xc], eax
mov edx, edi
mov ecx, esi
call fcn.0042e2d0
cmp dword [esp + 0xc], 0
jne 0x431def
mov eax, dword [esp + 0x20]
mov dword [eax], edi
mov eax, dword [esp + 8]
mov edx, dword [eax + 4]
mov eax, dword [esi + 0x1c]
sub eax, edx
mov dword [esp + 0x1c], edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x4360eb
call fcn.0042b7b0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [eax + ecx*4], 0
cmp dword [esi + 0x18], 0x58
jge 0x43611f
push 0
mov edx, 0x58
mov ecx, esi
call fcn.00428a20
add esp, 4
test eax, eax
je 0x43612a
mov eax, dword [esp + 0x2c]
push dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
mov edi, dword [esp + 0x14]
jmp 0x436c67
mov eax, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esi + 0x10]
push 0x58
mov eax, dword [eax + 0x38]
push 0
push esi
mov dword [eax + ecx*4], esi
call fcn.005cbe10
xor eax, eax
mov byte [esi + 0x18], 0xff
mov word [esi + 0x14], ax
add esp, 0xc
lea eax, [esi + 0x54]
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x24], eax
inc dword [edi + 4]
mov edi, dword [esp + 0x14]
jmp 0x436742
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0x18]
add edi, 0x28
mov dword [esp + 0x34], 0
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x38]
mov esi, dword [edi + edx*8]
lea edi, [edi + edx*8]
movd xmm0, edi
mov dword [esp + 0x2c], edi
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x38], eax
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x1c], edx
test esi, esi
jle 0x43627b
cmp esi, 8
jb 0x436261
cmp dword [0x676444], 2
jl 0x436261
movaps xmm2, xmmword [0x6472d0]
mov eax, esi
and eax, 0x80000007
jns 0x4361fe
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edi, esi
sub edi, eax
nop dword [eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x20]
paddd xmm0, xmm2
add ecx, 8
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x20], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx - 0x10], xmm0
cmp ecx, edi
jl 0x436210
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
cmp ecx, esi
jge 0x43627b
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
nop
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x436270
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x28]
push edx
push esi
push dword [eax + 0x10]
mov esi, dword [esp + 0x4c]
push dword [esp + 0x30]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [esp + 0x34]
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc], eax
call fcn.0042e2d0
cmp dword [esp + 0xc], 0
jne 0x4362bc
mov eax, dword [edi + 0x28]
push esi
call eax
add esp, 4
jmp 0x4362c0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
test eax, eax
mov eax, dword [esp + 8]
mov byte [ecx + 0x19], 0
jne 0x4310ef
mov edi, dword [esp + 0x14]
jmp 0x436746
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x18]
cmp byte [edx + 0x19], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x436315
mov ecx, edi
call fcn.00429350
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x43674a
mov eax, dword [edx + 0x24]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movaps xmmword [esp + 0x1b0], xmm0
movaps xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0x1b0], edi
mov ax, word [edi + 8]
and ax, word [esp + 0xc0]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [esp + 8]
push dword [eax + 8]
lea eax, [esp + 0x1b4]
push eax
push dword [edx + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
add esp, 0xc
mov dword [esp + 0xc], eax
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0042e2d0
mov eax, dword [esp + 0x1c4]
test eax, eax
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x4c]
cmovne ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, edi
call fcn.00428a00
movzx eax, word [edi + 8]
test al, 0x12
je 0x431def
mov edx, dword [edi + 0xc]
test eax, 0x4000
je 0x4363ad
add edx, dword [edi]
mov eax, dword [edi + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x436ad6
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x43674a
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 0x19], 0
jne 0x431def
mov eax, dword [edi + 0x24]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, esi
mov dword [esp + 0xc], eax
call fcn.0042e2d0
cmp dword [esp + 0xc], 0
jne 0x436425
mov eax, dword [esp + 0x1c]
push dword [edi + 0x24]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x434c33
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 0xffffffec
mov dword [esp + 8], ecx
jmp 0x434c37
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 2
lea esi, [ecx + eax*8]
je 0x43647f
cmp byte [esi + 0xa], 1
je 0x43647f
mov dl, 1
mov ecx, esi
call fcn.0040f110
mov dword [esp + 0xc], eax
test eax, eax
jne 0x431519
mov eax, dword [edi]
push dword [esi + 0x10]
push edi
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [esp + 0x18]
add esp, 8
mov edx, edi
mov dword [esp + 0xc], eax
mov ecx, esi
call fcn.0042e2d0
and dword [esi + 0x58], 0xfffffff7
mov eax, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp 0x43674a
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov dword [esp + 0x2c], edx
test edx, edx
je 0x436af2
mov eax, dword [edx]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x436af2
cmp dword [eax + 0x34], 0
mov esi, dword [esp + 8]
mov esi, dword [esi + 8]
je 0x436742
mov al, byte [edi + 0x45]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x43651b
nop dword [eax]
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x436510
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov al, byte [eax + 3]
mov byte [ecx + 0x45], al
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x20]
push edi
push esi
push edx
mov eax, dword [eax + 0x34]
call eax
mov edi, dword [esp + 0x24]
add esp, 0x10
mov esi, dword [esp + 0x10]
mov ecx, esi
mov edx, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x33]
mov byte [edi + 0x45], al
call fcn.0042e2d0
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 8]
jne 0x43658b
cmp dword [eax + 4], 0
je 0x43658b
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
mov ecx, dword [esp + 0xc]
cmp cl, 0x13
jne 0x4365e0
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x4365e0
mov eax, dword [esp + 8]
mov al, byte [eax + 3]
cmp al, 4
jne 0x4365bc
mov eax, dword [esp + 8]
mov dword [esp + 0xc], 0
add eax, 0x14
jmp 0x431082
cmp al, 5
jne 0x4365d1
mov eax, 2
mov byte [esi + 0x56], al
mov eax, dword [esp + 8]
jmp 0x43674e
movzx eax, al
mov byte [esi + 0x56], al
mov eax, dword [esp + 8]
jmp 0x43674e
inc dword [esi + 0x5c]
mov eax, dword [esp + 8]
jmp 0x43674e
mov eax, dword [esp + 8]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
test word [esi + 8], ax
je 0x43660e
mov ecx, esi
call fcn.00428e20
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [esi], eax
mov dword [esi + 4], 0
jmp 0x436742
mov edx, dword [esp + 8]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 8]
lea esi, [eax + ecx*8]
mov eax, 0x2460
mov dword [esp + 0x1c], esi
test word [esi + 8], ax
je 0x436665
mov ecx, esi
call fcn.00428e20
mov edx, dword [esp + 8]
mov eax, 4
mov word [esi + 8], ax
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
xor edi, edi
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x43668e
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x4366a4
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4366a4
mov ecx, esi
call fcn.0041dde0
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x4366b3
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x4366cc
add dword [esi + 0xc], 0xffffffff
jne 0x4366cc
mov ecx, esi
call fcn.0041dda0
mov ecx, dword [esp + 0x1c]
mov eax, edi
mov edi, dword [esp + 0x14]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x436742
cmp dword [edi + 0xb0], 0
je 0x43672d
test dword [esi + 0x58], 0x200
jne 0x43672d
mov edx, dword [esp + 8]
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x436705
mov edx, dword [esi + 0xa8]
test edx, edx
je 0x43672d
mov ecx, esi
call fcn.004308b0
mov ecx, dword [edi + 0xb0]
mov esi, eax
push esi
push dword [edi + 0xb4]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.0040cc10
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 8]
cmp dword [eax + 8], 0
je 0x43674a
jmp 0x4310ef
mov edi, esi
jmp 0x436742
mov edi, ecx
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
add eax, 0x14
mov dword [esp + 8], eax
test ecx, ecx
je 0x431086
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x10]
sub esi, dword [esp + 0x48]
push dword [ecx + 0x2c]
mov dword [ecx + 0x50], eax
mov eax, 0x66666667
push dword [ecx + 0xa8]
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [esp + 0x1c]
call fcn.0040ed50
mov esi, dword [esp + 0x24]
add esp, 0x14
mov ecx, esi
call fcn.0042c4f0
cmp dword [esp + 0xc], 0xc0a
mov eax, dword [esp + 0x14]
jne 0x4367b9
mov byte [eax + 0x41], 1
mov cl, byte [esp + 0x5b]
mov edi, 1
test cl, cl
je 0x4367f7
mov eax, dword [eax + 0x10]
movzx esi, cl
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0044d460
add esp, 4
cmp esi, edi
je 0x4367f3
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.0044d460
add esp, 4
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x60]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x6c]
add dword [esi + 0x7c], eax
cmp dword [esi + 0x64], 0
je 0x43681d
mov ecx, esi
call fcn.0042ae70
mov ecx, dword [esp + 0x2cc]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.005c8b9d
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov dword [edi + 0x50], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
test ecx, ecx
je 0x4368b6
mov al, byte [edx + 3]
test al, al
je 0x436878
movzx eax, al
mov eax, dword [eax*4 + 0x640444]
test eax, eax
je 0x43687a
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x43687a
push ecx
push eax
push str._s_constraint_failed:__s
push edi
call fcn.00429e70
add esp, 0x10
jmp 0x436898
xor eax, eax
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x436889
push ecx
push 0x638dac
jmp 0x43688f
push eax
push str._s_constraint_failed
push edi
call fcn.00429e70
add esp, 0xc
push dword [edi + 0x2c]
mov eax, dword [esp + 0xc]
push dword [edi + 0xa8]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.0040ed50
add esp, 0x14
mov esi, edi
mov ecx, esi
call fcn.0042c4f0
cmp eax, 5
jne 0x4368ce
mov edi, eax
mov dword [esi + 0x50], edi
jmp 0x4367f7
cmp dword [esi + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x4367f7
mov eax, dword [esi + 0x48]
xor edi, edi
mov ecx, dword [esp + 8]
add eax, 2
mov edx, dword [esp + 0x18]
or eax, 1
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x14], esi
cmp dword [ecx + 8], edi
jle 0x43693e
nop
mov eax, 0x1000
test word [esi + 8], ax
je 0x43692a
mov ecx, esi
call fcn.00428b70
test eax, eax
jne 0x436116
mov ecx, esi
call fcn.00428c80
mov ecx, dword [esp + 8]
inc edi
add esi, 0x28
cmp edi, dword [ecx + 8]
jl 0x436910
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
cmp byte [edi + 0x41], 0
jne 0x436c6b
sub ecx, dword [esp + 0x48]
mov eax, 0x66666667
imul ecx
mov edi, 0x64
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x4c], eax
jmp 0x4367f7
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [esp + 0x14]
call fcn.00429e70
mov esi, dword [esp + 0x10]
mov eax, 5
add esp, 8
mov dword [esp + 0xc], eax
add esi, 0x14
jmp 0x436765
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x436978
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x48]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov byte [edi + 0x3f], 0
mov edi, 5
mov dword [esi + 0x50], edi
jmp 0x4367f7
mov dword [esp + 0xc], 8
jmp 0x4344c9
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x48]
mov edi, 5
mov esi, dword [esp + 0x10]
imul ecx
mov dword [esi + 0x50], edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
jmp 0x4367f7
mov ecx, 0x126b4
call fcn.0047da10
mov dword [esp + 0xc], eax
jmp 0x4344c5
add dword [esp + 8], 0x14
mov eax, 0x204
mov dword [esp + 0xc], eax
jmp 0x436761
mov eax, dword [esp + 0xc]
cmp eax, 0xc0a
je 0x436761
mov ecx, eax
call fcn.0047bbb0
push eax
push 0x638dac
push esi
call fcn.00429e70
add esp, 0xc
jmp 0x43675d
mov byte [esi + 0x56], 2
mov eax, 6
mov esi, dword [esp + 8]
mov dword [esp + 0xc], eax
add esi, 0x14
jmp 0x436765
push str.too_many_levels_of_trigger_recursion
push esi
mov dword [esp + 0x14], 1
call fcn.00429e70
mov esi, dword [esp + 0x10]
add esp, 8
add esi, 0x14
mov eax, 1
jmp 0x436765
mov ecx, str.out_of
mov dword [esp + 0xc], 1
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [esp + 0x18]
call fcn.00429e70
mov esi, dword [esp + 0x14]
add esp, 0xc
add esi, 0x14
mov eax, 1
jmp 0x436765
mov esi, dword [esp + 0x10]
push str.string_or_blob_too_big
push esi
call fcn.00429e70
mov eax, 0x12
add esp, 8
mov dword [esp + 0xc], eax
jmp 0x436761
mov esi, dword [esp + 8]
mov eax, 6
mov dword [esp + 0xc], eax
add esi, 0x14
jmp 0x436765
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
mov dword [esp + 0x70], ecx
test ecx, ecx
je 0x436b36
cmp byte [edi + 0x3f], 0
jne 0x436b36
test edx, edx
jne 0x436b36
cmp dword [edi + 0x9c], edx
jle 0x436b36
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
jmp 0x43697c
movzx eax, byte [edi + 0x3f]
cmp ecx, eax
jne 0x436b94
test ecx, ecx
jne 0x436b66
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.00429e70
mov esi, dword [esp + 0x10]
mov eax, 1
add esp, 8
mov dword [esp + 0xc], eax
add esi, 0x14
jmp 0x436765
test edx, edx
mov ecx, str.cannot_commit___no_transaction_is_active
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, ecx
push eax
push esi
call fcn.00429e70
mov esi, dword [esp + 0x10]
mov eax, 1
add esp, 8
mov dword [esp + 0xc], eax
add esi, 0x14
jmp 0x436765
test edx, edx
je 0x436bc5
mov edx, 0x204
mov ecx, edi
call fcn.0047ba60
mov byte [edi + 0x3f], 1
mov ecx, edi
call fcn.0047b2e0
cmp dword [esi + 0x50], 0
mov edi, 1
mov eax, 0x65
cmove edi, eax
jmp 0x4367f7
mov edx, 1
mov ecx, esi
call fcn.0042c480
mov edi, eax
test edi, edi
jne 0x4367f7
mov edi, dword [esp + 0x14]
mov ecx, esi
mov eax, dword [esp + 0x70]
mov byte [edi + 0x3f], al
call fcn.0042c4f0
cmp eax, 5
jne 0x436ba8
mov ecx, dword [esp + 8]
mov eax, 0x66666667
sub ecx, dword [esp + 0x48]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x70]
mov byte [edi + 0x3f], al
mov edi, 5
mov dword [esi + 0x50], edi
jmp 0x4367f7
mov esi, dword [esp + 0x10]
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
test eax, eax
mov dword [esp + 0xc], 9
mov dword [esi + 0x50], 9
cmovne ecx, eax
push ecx
push 0x638dac
push esi
call fcn.00429e70
add esp, 0xc
mov eax, 9
jmp 0x436761
mov edi, dword [esp + 0x14]
jmp 0x436c6b
mov edi, eax
mov esi, dword [esp + 0x10]
push 0x639348
push esi
mov byte [edi + 0x41], 1
call fcn.00429e70
mov eax, 7
add esp, 8
mov dword [esp + 0xc], eax
jmp 0x436761