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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2d8
mov eax, dword [0x4fc00c]
xor eax, esp
mov dword [esp + 0x2d4], eax
mov edx, ecx
mov dword [esp + 0x24], 0
push esi
xor esi, esi
mov dword [esp + 0x1c], edx
push edi
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x10], 0
mov byte [esp + 0x5b], 0
mov dword [esp + 0x90], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x1c], esi
mov al, byte [eax + 0x4d]
mov byte [esp + 0x4c], al
mov eax, dword [edx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x24]
mov ecx, edx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x64], eax
call fcn.0042b6d0
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0x50], 7
je 0x4374e6
mov dword [ecx + 0x50], esi
mov dword [ecx + 0x88], esi
mov dword [ecx + 0x8c], esi
mov dword [ecx + 0x14], esi
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1c4], esi
cmp dword [ecx + 0xf0], esi
jne 0x4374a5
cmp dword [ecx + 0x124], esi
je 0x4318e3
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x7c]
test eax, eax
jne 0x4318d7
mov eax, dword [ecx + 0x12c]
mov dword [esp + 0x78], eax
jmp 0x4318e3
xor edx, edx
div dword [ecx + 0x12c]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], 0xbe01
mov edi, dword [edx + 0x4c]
mov dword [esp + 0x2c], edi
mov edx, dword [esp + 0x18]
nop word [eax + eax]
cmp byte [ecx + 0x40], 0
jne 0x4374ea
inc dword [esp + 0x74]
lea edi, [edi + edi*4]
test byte [edx + edi*4 + 2], 2
mov dword [esp + 0x50], edi
je 0x431951
mov eax, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x2460
mov dword [esp + 0x1c], esi
test word [esi + 8], ax
je 0x431948
mov ecx, esi
call fcn.004298e0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, 4
mov word [esi + 8], ax
mov dl, byte [edx + edi*4]
movzx eax, dl
dec eax
mov byte [esp + 0x1b8], dl
cmp eax, 0x98
ja case.default.0x43196a
jmp dword [eax*4 + 0x437514]
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp 0x436d4d
mov eax, dword [esp + 0x18]
mov edx, 4
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*8 + 8], dx
mov eax, dword [esp + 0x2c]
cdq
mov dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x50]
mov dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov edx, dword [edi + eax*8]
mov dword [esp + 0x2c], edx
mov edx, 0x80
mov word [edi + eax*8 + 8], dx
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
dec eax
mov dword [esp + 0x1c], esi
cdq
mov dword [esi], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
mov eax, dword [eax + edi*4 + 8]
test eax, eax
je case.default.0x43196a
lea edx, [eax - 1]
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*8]
lea eax, [eax + eax*4]
mov edx, dword [edx + eax*4 + 8]
mov eax, dword [esp + 0x24]
dec edx
mov dword [esp + 0x2c], edx
mov edx, 0x80
mov word [eax + ecx*8 + 8], dx
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
mov edi, dword [esp + 0x24]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8]
mov word [edi + esi*8 + 8], ax
mov eax, dword [esp + 0x2c]
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov ecx, dword [esp + 0x14]
je case.default.0x43196a
jmp 0x431ac1
mov edx, dword [esp + 0x18]
cmp dword [edx + edi*4 + 4], 0
jne 0x43708a
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x43708a
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
dec dword [edx + 0xb8]
mov dword [edx + 0xb0], eax
mov eax, dword [edx + 0x5c]
mov edx, dword [esp + 0x14]
add dword [edx + 0x54], eax
mov dword [edx + 0x50], eax
call fcn.0042c100
mov edx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
cmp dword [eax + edi*4 + 8], 4
jne 0x431b39
mov eax, dword [esp + 0x20]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov edx, dword [eax + ecx*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 4]
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 0x10]
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esi + 4], eax
jmp case.default.0x43196a
mov eax, 8
mov word [esi + 8], ax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
movsd xmm0, qword [eax]
movsd qword [esi], xmm0
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + edi*4 + 0x10]
mov byte [edx + edi*4], 0x1b
call fcn.00410c20
cmp byte [esp + 0x4c], 1
mov dword [edx + edi*4 + 4], eax
je 0x431c2a
push 0
push 1
mov edx, ecx
mov ecx, esi
push 0xffffffffffffffff
call fcn.0042a040
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, 0x12
je 0x43736a
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.00429490
test eax, eax
jne 0x4374e6
mov edx, dword [esp + 0x18]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [edx + edi*4 + 1], 0xff
jne 0x431c17
mov edx, dword [edx + edi*4 + 0x10]
mov ecx, dword [esp + 0x14]
call fcn.0040e0e0
mov edx, dword [esp + 0x18]
mov byte [edx + edi*4 + 1], 0xff
mov eax, dword [esi + 0x10]
mov dword [edx + edi*4 + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [edx + edi*4 + 4], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + edi*4 + 4]
cmp eax, dword [ecx + 0x58]
jg 0x43736e
jmp 0x431c41
mov edx, dword [esp + 0x18]
mov eax, 0xa02
mov word [esi + 8], ax
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edx + edi*4 + 4]
mov dword [esi + 0xc], eax
mov al, byte [esp + 0x4c]
mov byte [esi + 0xa], al
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov eax, 1
mov esi, dword [edx + edi*4 + 0xc]
sub esi, dword [edx + edi*4 + 8]
cmp dword [edx + edi*4 + 4], 0
mov edx, 0x101
cmovne eax, edx
mov edx, dword [esp + 0x1c]
movzx edi, ax
mov word [edx + 8], di
test esi, esi
jle 0x434db8
add edx, 0x28
mov ecx, edx
mov dword [esp + 0x1c], edx
call fcn.00429e10
mov edx, dword [esp + 0x1c]
dec esi
mov word [edx + 8], di
test esi, esi
jg 0x431c95
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, 0xff7f
mov ax, word [esi + 8]
and ax, dx
mov dword [esp + 0x1c], esi
or ax, 1
mov word [esi + 8], ax
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, esi
push 0
push 0
push dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 0x10]
call fcn.0042a040
mov al, byte [esp + 0x58]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov byte [esi + 0xa], al
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [edx - 5]
mov eax, dword [eax + 0x3c]
lea edx, [eax + edx*8]
movzx eax, word [edx + 8]
test al, 0x12
je 0x431d55
mov esi, dword [edx + 0xc]
test eax, 0x4000
je 0x431d3e
add esi, dword [edx]
mov eax, dword [edx + 0x20]
xor ecx, ecx
cmp esi, dword [eax + 0x58]
setg cl
test ecx, ecx
jne 0x43736a
mov esi, dword [esp + 0x1c]
push 0x800
mov ecx, esi
call fcn.00429f80
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 1
mov edx, 0x2460
nop
test word [edi + 8], dx
jne 0x431dac
cmp dword [edi + 0x18], 0
je 0x431dc1
mov ecx, edi
call fcn.00429950
mov ecx, dword [esp + 0x28]
mov eax, 1
mov edx, 0x2460
movups xmm0, xmmword [esi]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [edi + 0x10], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [edi + 0x20], xmm0
add edi, 0x28
mov word [esi + 8], ax
mov dword [esi + 0x18], 0
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x28], ecx
jne 0x431da0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], edi
jmp 0x434db8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
push 0x1000
mov edx, esi
mov dword [esp + 0x20], edi
mov ecx, edi
call fcn.00429f80
mov eax, 0x1000
add esp, 4
test word [edi + 8], ax
je 0x431e53
mov ecx, edi
call fcn.00429600
test eax, eax
jne 0x4374e6
mov ecx, dword [esp + 0x28]
mov eax, ecx
dec ecx
mov dword [esp + 0x28], ecx
test eax, eax
je 0x431a94
add edi, 0x28
add esi, 0x28
jmp 0x431e24
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
push 0x1000
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 4]
mov ecx, esi
mov dword [esp + 0x20], esi
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
call fcn.00429f80
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x43196a
mov eax, dword [ecx + 0x124]
test eax, eax
je 0x431ecd
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x78]
jb 0x431ecd
push dword [ecx + 0x128]
call eax
add esp, 4
test eax, eax
jne 0x437149
mov ecx, dword [esp + 0x20]
xor edx, edx
call fcn.0042cd20
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4319bf
mov ecx, dword [esp + 0x20]
lea edx, [eax + 1]
call fcn.0042cc00
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x437157
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov edi, dword [esp + 0x28]
lea eax, [eax + eax*4]
movzx ecx, word [edi + 8]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov al, byte [esi + 8]
or al, cl
test al, 1
je 0x431f5c
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.00429e10
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
test ecx, 0x4000
je 0x431f73
mov ecx, edi
call fcn.00429670
test eax, eax
jne 0x4374e6
mov eax, 0x4000
test word [esi + 8], ax
je 0x431f8d
mov ecx, esi
call fcn.00429670
test eax, eax
jne 0x4374e6
test byte [edi + 8], 0x12
jne 0x431fab
mov dl, byte [esp + 0x4c]
mov ecx, edi
push 0
call fcn.00429730
add esp, 4
test eax, eax
jne 0x4374e6
test byte [esi + 8], 0x12
jne 0x431fc9
mov dl, byte [esp + 0x4c]
mov ecx, esi
push 0
call fcn.00429730
add esp, 4
test eax, eax
jne 0x4374e6
mov eax, dword [esi + 0xc]
add eax, dword [edi + 0xc]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x43736a
jl 0x431fee
cmp edi, eax
ja 0x43736a
mov ecx, dword [esp + 0x1c]
lea edx, [edi + 2]
xor eax, eax
cmp ecx, esi
sete al
push eax
call fcn.004294b0
add esp, 4
test eax, eax
jne 0x4374e6
mov ecx, dword [esp + 0x1c]
mov edx, 0xbe02
mov ax, word [ecx + 8]
and ax, dx
or ax, 2
mov word [ecx + 8], ax
cmp ecx, esi
je 0x43203e
push dword [esi + 0xc]
push dword [esi + 0x10]
push dword [ecx + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov eax, dword [esp + 0x28]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [ecx + 0x10]
add eax, dword [esi + 0xc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x10]
mov byte [edi + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + edi + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x4c]
mov dword [esi + 0xc], edi
mov byte [esi + 0xa], al
jmp case.default.0x43196a
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
movzx ecx, word [edx + 8]
mov eax, ecx
mov dword [esp + 0x1b4], edx
and eax, 0xc
je 0x4320b0
mov dword [esp + 0x44], eax
jmp 0x4320cd
test cl, 0x12
je 0x4320c5
mov ecx, edx
call fcn.004317a0
movzx eax, ax
mov dword [esp + 0x44], eax
jmp 0x4320cd
mov dword [esp + 0x44], 0
mov eax, dword [esi + edi*4 + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
movzx ecx, word [edx + 8]
mov eax, ecx
mov dword [esp + 0x38], edx
and eax, 0xc
je 0x4320f0
mov dword [esp + 0x48], eax
jmp 0x432111
test cl, 0x12
je 0x432109
mov ecx, edx
call fcn.004317a0
mov edx, dword [esp + 0x38]
movzx eax, ax
mov dword [esp + 0x48], eax
jmp 0x432111
mov dword [esp + 0x48], 0
mov eax, dword [esi + edi*4 + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x1c], eax
mov al, byte [edx + 8]
or al, byte [ecx + 8]
test al, 1
jne 0x431f48
mov al, byte [esp + 0x48]
and al, byte [esp + 0x44]
test al, 4
je 0x43228a
mov eax, ecx
mov byte [esp + 0x1b8], 1
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x38]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x80], esi
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x432189
jmp dword [eax*4 + 0x437778]
push ecx
push edx
lea ecx, [esp + 0x88]
call fcn.00411f80
add esp, 8
test eax, eax
jne 0x432294
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
jmp 0x432262
test edx, edx
jne 0x4321eb
cmp ecx, 0x80000000
jne 0x4321eb
mov eax, dword [esp + 0xd8]
test eax, eax
jg 0x432294
jl 0x4321e1
test esi, esi
jae 0x432294
add esi, 0
adc eax, 0x80000000
jmp 0x432262
neg edx
adc ecx, 0
neg ecx
jmp case.0x432189.89
push ecx
push edx
lea ecx, [esp + 0x88]
call fcn.00412020
jmp 0x43219e
mov eax, edx
or eax, ecx
je 0x431f48
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
mov eax, dword [esp + 0xd8]
jne 0x432229
test esi, esi
jne 0x432229
cmp eax, 0x80000000
je 0x432294
push ecx
push edx
push eax
push esi
call fcn.004c3f70
jmp 0x43225e
mov eax, edx
or eax, ecx
je 0x431f48
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x43224e
mov edx, 1
xor ecx, ecx
mov eax, dword [esp + 0xd8]
push ecx
push edx
push eax
push esi
call fcn.004c4060
mov esi, eax
mov eax, edx
mov ecx, dword [esp + 0x1c]
mov dword [ecx], esi
mov esi, ecx
mov ecx, 0xbe04
mov dword [esi + 4], eax
mov ax, word [esi + 8]
and ax, cx
mov ecx, dword [esp + 0x14]
or ax, 4
mov word [esi + 8], ax
jmp case.default.0x43196a
mov byte [esp + 0x1b8], 0
jmp 0x43229b
mov ecx, dword [esp + 0x1b4]
call fcn.00429ac0
mov ecx, dword [esp + 0x38]
movsd qword [esp + 0x30], xmm0
call fcn.00429ac0
mov eax, dword [esp + 0x18]
movaps xmm1, xmm0
movsd qword [esp + 0x68], xmm1
movzx eax, byte [eax + edi*4]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x4322c8
jmp dword [eax*4 + 0x437788]
addsd xmm1, qword [esp + 0x30]
jmp 0x43234b
subsd xmm1, qword [esp + 0x30]
jmp 0x43234b
mulsd xmm1, qword [esp + 0x30]
jmp 0x43234b
movsd xmm0, qword [esp + 0x30]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x431f48
divsd xmm1, xmm0
jmp 0x43234b
movsd xmm0, qword [esp + 0x30]
call fcn.004c45ff
movsd xmm0, qword [esp + 0x68]
mov esi, eax
mov edi, edx
call fcn.004c45ff
mov ecx, esi
or ecx, edi
je 0x431f48
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x432338
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.004c4060
mov ecx, eax
call fcn.004c4750
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.00410be0
test eax, eax
jne 0x431f48
mov edi, dword [esp + 0x1c]
mov ecx, 0xbe08
mov ax, word [edi + 8]
and ax, cx
movsd qword [edi], xmm1
or ax, 8
mov word [edi + 8], ax
mov eax, dword [esp + 0x48]
or al, byte [esp + 0x44]
test al, 8
jne 0x431a94
cmp byte [esp + 0x1b8], 0
jne 0x431a94
mov ecx, edi
call fcn.00429b20
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
test eax, eax
je case.default.0x43196a
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.00429e70
mov ecx, dword [esp + 0x1c]
add esp, 8
jmp case.default.0x43196a
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
movzx ecx, byte [esi + edi*4 + 3]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + edi*4 + 0xc]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x40], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esi + edi*4 + 8]
mov esi, edx
mov edx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x3c], eax
test ecx, ecx
je 0x432462
nop
mov edi, 0x1000
mov dword [edx + eax*4], esi
test word [esi + 8], di
mov edi, dword [esp + 0x50]
je 0x43244d
mov ecx, esi
call fcn.00429600
test eax, eax
jne 0x4374e6
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
inc eax
add esi, 0x28
mov dword [esp + 0x3c], eax
cmp eax, ecx
jl 0x432420
mov esi, dword [esp + 0xdc]
jmp 0x432466
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
push edx
push ecx
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xf0], eax
mov ax, word [esi + 8]
and ax, word [esp + 0x64]
or ax, 1
mov word [esi + 8], ax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
mov byte [esp + 0xfd], 0
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 0x24], eax
lea eax, [esp + 0xe4]
push eax
mov eax, dword [esp + 0xec]
mov eax, dword [eax + 0xc]
call eax
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp byte [esp + 0xf5], 0
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x64], eax
je 0x43253a
cmp dword [esp + 0xf0], 0
je 0x432522
push dword [esp + 0xdc]
call fcn.0042f240
add esp, 4
push eax
mov eax, dword [esp + 0x24]
push 0x4e518c
add eax, 0x2c
push esi
push eax
call fcn.0040e600
mov eax, dword [esp + 0x100]
add esp, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
push dword [eax + edi*4 + 4]
call fcn.0042d230
add esp, 4
movzx edx, byte [esp + 0x4c]
mov ecx, dword [esp + 0xdc]
call fcn.00429490
mov eax, dword [esp + 0xdc]
movzx ecx, word [eax + 8]
test cl, 0x12
je 0x434db6
mov edx, dword [eax + 0xc]
test ecx, 0x4000
je 0x43256c
add edx, dword [eax]
mov eax, dword [eax + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, esi
jne 0x43736e
jmp 0x434db8
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [esi + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esi + edi*4 + 0xc]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edx + 8]
or al, byte [ecx + 8]
mov dword [esp + 0x1c], esi
test al, 1
je 0x4325d2
mov ecx, esi
call fcn.00429e10
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov ecx, edx
call fcn.00429a10
mov ecx, dword [esp + 0x30]
mov esi, edx
mov dword [esp + 0xd8], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], esi
call fcn.00429a10
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov al, byte [eax + edi*4]
mov byte [esp + 0x1b8], al
cmp al, 0x55
jne 0x432621
mov edi, dword [esp + 0xd8]
and edi, ecx
and esi, edx
jmp 0x432713
cmp al, 0x56
jne 0x432635
mov edi, dword [esp + 0xd8]
or edi, ecx
or esi, edx
jmp 0x432713
mov eax, ecx
or eax, edx
je 0x43270c
test edx, edx
jg 0x43266b
jl 0x432649
test ecx, ecx
jae 0x43266b
mov al, 0xaf
sub al, byte [esp + 0x1b8]
cmp edx, 0xffffffff
jl 0x43267d
jg 0x43265e
cmp ecx, 0xffffffc0
jbe 0x43267d
neg ecx
mov dword [esp + 0x28], ecx
adc edx, 0
neg edx
jmp 0x432672
mov al, byte [esp + 0x1b8]
test edx, edx
jl 0x4326ab
jg 0x43267d
cmp ecx, 0x40
jb 0x4326ab
test esi, esi
jg 0x432698
jl 0x43268d
cmp dword [esp + 0xd8], 0
jae 0x432698
cmp al, 0x57
je 0x432698
or edi, 0xffffffff
or esi, edi
jmp 0x432713
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
jmp 0x432713
movq xmm1, qword [esp + 0xb8]
movd xmm0, ecx
cmp al, 0x57
jne 0x4326d0
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
jmp 0x432713
psrlq xmm1, xmm0
movq qword [esp + 0x30], xmm1
test esi, esi
jg 0x4326c6
jl 0x4326ea
cmp dword [esp + 0xd8], 0
jae 0x4326c6
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x28]
or edx, 0xffffffff
call fcn.004c42a0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
or edi, eax
or esi, edx
jmp 0x432713
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0x1c]
mov ecx, 0xbe04
mov dword [eax + 4], esi
mov esi, eax
mov dword [eax], edi
mov ax, word [esi + 8]
and ax, cx
mov ecx, dword [esp + 0x14]
or ax, 4
mov word [esi + 8], ax
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00429bc0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x434db8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x4327ca
test al, 8
jne 0x43279b
test al, 2
je 0x4327a6
mov edx, 1
mov ecx, esi
call fcn.00431610
jmp 0x4327a2
mov ecx, esi
call fcn.00429b20
mov ecx, dword [esp + 0x18]
movzx eax, word [esi + 8]
test al, 4
jne 0x4327ca
mov eax, dword [ecx + edi*4 + 8]
test eax, eax
je 0x4371eb
lea ecx, [eax - 1]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov ecx, dword [esp + 0x14]
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je 0x4319bf
call fcn.00429bf0
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x432834
mov ecx, esi
call fcn.00429670
mov dword [esp + 0x10], eax
jmp 0x43283c
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x18]
mov ecx, esi
push dword [esp + 0x4c]
mov dl, byte [eax + edi*4 + 8]
call fcn.00429d40
mov ecx, dword [esp + 0x18]
add esp, 4
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esp + 0xd8], ecx
movzx ecx, word [ecx + 8]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 8]
lea esi, [esi + eax*8]
mov eax, ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x48], eax
mov al, dl
or al, cl
test al, 1
je 0x432925
mov ecx, dword [esp + 0x18]
mov al, byte [ecx + edi*4 + 3]
test al, al
jns 0x4328d4
mov eax, edx
xor ecx, ecx
and eax, dword [esp + 0x48]
bt ax, cx
mov ecx, dword [esp + 0x18]
jae 0x4328ca
test edx, 0x100
jne 0x4328ca
xor edx, edx
jmp 0x432a04
mov edx, 1
jmp 0x432a04
test al, 0x20
je 0x432907
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, 0xbe01
mov ax, word [esi + 8]
and ax, cx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x14]
or ax, 1
mov word [esi + 8], ax
jmp case.default.0x43196a
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
test al, 0x10
je 0x43291c
mov ecx, dword [ecx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov eax, dword [esp + 0x18]
mov al, byte [eax + edi*4 + 3]
and al, 0x47
cmp al, 0x43
jb 0x43295d
and cl, 0xe
cmp cl, 2
jne 0x432949
mov ecx, dword [esp + 0xd8]
xor edx, edx
call fcn.00431610
mov al, byte [esi + 8]
and al, 0xe
cmp al, 2
jne 0x43299c
xor edx, edx
mov ecx, esi
call fcn.00431610
jmp 0x43299c
cmp al, 0x42
jne 0x43299c
test cl, 2
jne 0x432980
test cl, 0xc
je 0x432980
mov dl, byte [esp + 0x4c]
mov ecx, dword [esp + 0xd8]
push 1
call fcn.00429730
add esp, 4
movzx eax, word [esi + 8]
test al, 2
jne 0x43299c
test al, 0xc
je 0x43299c
mov dl, byte [esp + 0x4c]
mov ecx, esi
push 1
call fcn.00429730
add esp, 4
mov eax, dword [esp + 0xd8]
mov ecx, 0x4000
test word [eax + 8], cx
je 0x4329bd
mov ecx, eax
call fcn.00429670
and dword [esp + 0x48], 0xbfff
mov eax, 0x4000
test word [esi + 8], ax
je 0x4329d7
mov ecx, esi
call fcn.00429670
and dword [esp + 0x38], 0xbfff
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x40], 0
jne 0x4374ea
mov eax, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [esp + 0xd8]
push dword [eax + edi*4 + 0x10]
call fcn.0042ddf0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov edx, eax
movzx ecx, byte [ecx + edi*4]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x432a10
jmp dword [ecx*4 + 0x437798]
xor eax, eax
test edx, edx
sete al
jmp 0x432a46
xor eax, eax
test edx, edx
setne al
jmp 0x432a46
mov eax, edx
jmp 0x432a43
xor eax, eax
test edx, edx
setle al
jmp 0x432a46
xor eax, eax
test edx, edx
setg al
jmp 0x432a46
mov eax, edx
not eax
shr eax, 0x1f
mov ecx, dword [esp + 0x18]
test byte [ecx + edi*4 + 3], 0x20
je 0x432a7f
mov ecx, dword [ecx + edi*4 + 8]
mov edx, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov edx, 0xbe04
mov cx, word [edi + 8]
and cx, dx
mov dword [esp + 0x1c], edi
cdq
or cx, 4
mov word [edi + 8], cx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x432a8c
test eax, eax
je 0x432a8c
mov eax, dword [ecx + edi*4 + 8]
dec eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x48]
mov word [eax + 8], cx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov word [esi + 8], ax
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
mov dword [esp + 0x7c], eax
jmp case.default.0x43196a
mov esi, dword [esp + 0x18]
mov eax, 0
mov edx, dword [esi + edi*4 + 0x10]
test byte [esi + edi*4 + 3], 1
mov ecx, dword [esi + edi*4 + 0xc]
mov esi, dword [esi + edi*4 + 4]
cmovne eax, dword [esp + 0x7c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x40], ecx
mov esi, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x30], esi
xor esi, esi
test ecx, ecx
jle 0x432b78
test eax, eax
je 0x432b0b
mov ecx, dword [eax + esi*4]
jmp 0x432b0d
mov ecx, esi
mov eax, dword [edx + 0x10]
push dword [edx + esi*4 + 0x14]
mov edx, dword [esp + 0x28]
movzx edi, byte [eax + esi]
mov eax, dword [esp + 0x34]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x40]
add eax, ecx
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0042ddf0
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
jne 0x432b6b
mov eax, dword [esp + 0x7c]
inc esi
mov edx, dword [esp + 0x28]
cmp esi, dword [esp + 0x40]
jl 0x432b02
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], 0
jmp 0x434db8
test edi, edi
je 0x432b78
neg eax
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x7c], 0
jmp 0x434db8
mov eax, dword [esp + 0x90]
test eax, eax
mov eax, dword [esp + 0x18]
jns 0x432ba6
mov edx, dword [eax + edi*4 + 4]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
jne 0x432bb6
mov edx, dword [eax + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
mov edx, dword [eax + edi*4 + 0xc]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x432be4
mov esi, 2
jmp 0x432bf6
call fcn.00429a10
or eax, edx
je 0x432bf4
mov esi, 1
jmp 0x432bf6
xor esi, esi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x432c16
mov eax, 2
jmp 0x432c28
call fcn.00429a10
or eax, edx
je 0x432c26
mov eax, 1
jmp 0x432c28
xor eax, eax
mov ecx, dword [esp + 0x18]
lea eax, [eax + esi*2]
cmp byte [ecx + edi*4], 0x48
jne 0x432c3e
mov al, byte [esi + eax + 0x4d3bcc]
jmp 0x432c45
mov al, byte [esi + eax + 0x4d40cc]
mov edx, dword [esp + 0x24]
movzx ecx, al
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov edx, dword [esp + 0x10]
mov ax, word [edi + 8]
mov esi, edi
mov dword [esp + 0x1c], edi
cmp ecx, 2
jne 0x432c86
mov ecx, 0xbe01
and ax, cx
mov ecx, dword [esp + 0x14]
or ax, 1
mov word [edi + 8], ax
jmp 0x434dc0
mov dword [edi], ecx
mov ecx, 0xbe04
and ax, cx
mov dword [edi + 4], 0
mov ecx, dword [esp + 0x14]
or ax, 4
mov word [edi + 8], ax
jmp 0x434dc0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov ecx, edi
mov dword [esp + 0x1c], edi
call fcn.00429e10
test byte [esi + 8], 1
jne 0x431a94
mov eax, 4
mov ecx, esi
mov word [edi + 8], ax
call fcn.00429a10
or eax, edx
jne 0x432d02
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi], eax
jmp 0x434db8
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi], eax
jmp 0x434db8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov ecx, edi
mov dword [esp + 0x1c], edi
call fcn.00429e10
test byte [esi + 8], 1
jne 0x431a94
mov eax, 4
mov ecx, esi
mov word [edi + 8], ax
call fcn.00429a10
mov ecx, dword [esp + 0x14]
not eax
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x434db8
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc8]
mov ecx, dword [edx + edi*4 + 4]
cmp byte [eax + ecx], 0
je 0x432d9e
mov ecx, dword [edx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov byte [eax + ecx], 1
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea ecx, [ecx + eax*8]
je 0x432dca
mov eax, dword [edx + edi*4 + 0xc]
jmp 0x432df2
call fcn.00429ac0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x432de3
mov eax, 1
jmp 0x432de5
xor eax, eax
mov edx, dword [esp + 0x18]
cmp byte [edx + edi*4], 0x2e
jne 0x432df2
xor eax, 1
test eax, eax
je 0x4319bf
mov ecx, dword [edx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 8], 1
mov esi, dword [esp + 0x1c]
je case.default.0x43196a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
mov ecx, dword [esp + 0x14]
jne case.default.0x43196a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
mov dword [esp + 0xd8], esi
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x1b8], edx
cmp byte [edx + 0x1a], 0
mov eax, dword [edx + 0x50]
mov ecx, dword [edx]
mov dword [esp + 0x48], eax
mov dword [esp + 0x1b4], ecx
je 0x432eb9
mov ecx, edx
call fcn.0042d5a0
jmp 0x432eca
test ecx, ecx
je 0x432ee8
cmp byte [ecx + 0x49], 1
je 0x432ee8
mov ecx, edx
call fcn.0042d600
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x434bcd
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x1b4]
jmp 0x432ef0
mov dword [esp + 0x10], 0
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0x3c]
cmp eax, dword [edi + 0x48]
mov edi, dword [esp + 0x50]
je 0x4330f5
cmp byte [edx + 0x19], 0
je 0x432f3e
test ecx, ecx
jne 0x432f2e
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edx + 0x44], esi
mov dword [edx + 0x40], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edx + 0x4c], eax
jmp 0x433063
mov edi, dword [esp + 0x44]
mov ecx, edi
call fcn.00429e10
jmp 0x4333e9
test byte [edx + 0x1c], 4
jne 0x432fd2
cmp word [ecx + 0x2c], 0
jne 0x432fa1
movsx eax, word [ecx + 0x4c]
mov edi, dword [ecx + eax*4 + 0x78]
movzx esi, word [ecx + eax*2 + 0x4e]
mov eax, dword [esp + 0x1b4]
add eax, 0x18
mov ecx, dword [edi + 0x40]
push eax
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.0041f9f0
mov ecx, dword [esp + 0x1b8]
add esp, 4
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x1b8]
or byte [ecx + 0x48], 2
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x1d0], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x1b4]
movzx ecx, word [ecx + 0x28]
mov eax, dword [eax + 0x20]
mov dword [edx + 0x4c], eax
mov eax, dword [esp + 0x1d0]
mov dword [edx + 0x40], eax
jmp 0x433042
cmp word [ecx + 0x2c], 0
jne 0x43302b
movsx eax, word [ecx + 0x4c]
mov edi, dword [ecx + eax*4 + 0x78]
movzx esi, word [ecx + eax*2 + 0x4e]
mov eax, dword [esp + 0x1b4]
add eax, 0x18
mov ecx, dword [edi + 0x40]
push eax
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.0041f9f0
mov ecx, dword [esp + 0x1b8]
add esp, 4
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x1b8]
or byte [ecx + 0x48], 2
mov eax, dword [ecx + 0x24]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x1b4]
movzx ecx, word [ecx + 0x28]
mov eax, dword [eax + 0x20]
mov dword [edx + 0x4c], eax
mov eax, ecx
movzx esi, ax
mov eax, dword [edx + 0x40]
cmp eax, esi
ja 0x433053
mov dword [edx + 0x44], eax
jmp 0x433056
mov dword [edx + 0x44], esi
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
ja 0x43736e
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x4c]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x3c], eax
mov al, byte [ecx]
cmp al, 0x80
jae 0x433087
movzx ecx, al
mov eax, 1
mov dword [esp + 0x94], ecx
jmp 0x4330a4
lea edx, [esp + 0x94]
call fcn.00411de0
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x1b8]
movzx eax, al
movzx eax, al
mov dword [edx + 0x48], eax
xor eax, eax
mov word [edx + 0x16], ax
mov eax, dword [esp + 0x48]
mov dword [eax], ecx
cmp ecx, 0x18003
ja 0x4330de
cmp ecx, dword [edx + 0x40]
ja 0x4330de
cmp esi, ecx
mov esi, dword [esp + 0xd8]
jae 0x433101
mov dword [edx + 0x4c], 0
mov dword [edx + 0x44], 0
jmp 0x433101
mov ecx, 0x116df
call fcn.0047bb70
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x434db8
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x4332d9
mov ecx, dword [esp + 0x48]
mov eax, dword [edx + 0x48]
cmp eax, dword [ecx]
jae 0x4332a6
mov eax, dword [edx + 0x4c]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x433182
xorps xmm0, xmm0
lea eax, [esp + 0x180]
push eax
movaps xmmword [esp + 0x184], xmm0
movaps xmmword [esp + 0x194], xmm0
movq qword [esp + 0x1a4], xmm0
mov eax, dword [edx + 0x1c]
xor edx, edx
shr eax, 2
not eax
and eax, 1
push eax
push dword [ecx]
mov ecx, dword [esp + 0x1c0]
call fcn.0042a250
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x431a94
mov eax, dword [esp + 0x190]
mov edx, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], eax
movzx edx, word [edx + 0x16]
mov dword [esp + 0x30], edx
mov eax, dword [ecx + edx*4]
mov ecx, dword [ecx]
add ecx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0x28], ecx
mov esi, dword [eax + 0x48]
lea eax, [eax + edx*4]
add esi, dword [esp + 0x38]
add eax, 0x54
mov dword [esp + 0x40], eax
mov al, byte [esi]
cmp al, 0x80
jae 0x4331ca
movzx ecx, al
mov eax, 1
mov dword [esp + 0x8c], ecx
jmp 0x4331e6
lea edx, [esp + 0x8c]
mov ecx, esi
call fcn.00411de0
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x30]
movzx eax, al
add esi, eax
mov eax, dword [esp + 0x40]
mov dword [eax], ecx
call fcn.0042d760
mov ecx, dword [esp + 0x3c]
add ecx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x94], ecx
cmp ecx, eax
jb 0x43322a
mov eax, dword [esp + 0x48]
inc edx
add dword [esp + 0x40], 4
mov dword [esp + 0x30], edx
mov dword [eax + edx*4], ecx
cmp edx, dword [esp + 0xd8]
jg 0x43322f
cmp esi, dword [esp + 0x28]
jb 0x4331b3
jmp 0x43322f
mov esi, dword [esp + 0x28]
inc esi
mov eax, dword [esp + 0x1b8]
mov word [eax + 0x16], dx
mov eax, esi
mov edx, dword [esp + 0x1b8]
sub eax, dword [esp + 0x38]
cmp dword [edx + 0x4c], 0
mov dword [edx + 0x48], eax
jne 0x433274
lea ecx, [esp + 0x180]
call fcn.004299f0
mov ecx, dword [esp + 0x3c]
mov eax, 1
mov edx, dword [esp + 0x1b8]
mov word [esp + 0x188], ax
mov eax, dword [esp + 0x28]
cmp esi, eax
jb 0x433283
ja 0x433288
cmp ecx, dword [edx + 0x40]
jne 0x433288
cmp ecx, dword [edx + 0x40]
jbe 0x43329f
mov ecx, 0x11733
call fcn.0047bb70
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x434db8
mov esi, dword [esp + 0xd8]
movzx eax, word [edx + 0x16]
cmp eax, esi
jg 0x4332d9
mov eax, dword [esp + 0x18]
cmp byte [eax + edi*4 + 1], 0xf8
jne 0x432f2e
mov edx, dword [eax + edi*4 + 0x10]
mov edi, dword [esp + 0x44]
mov ecx, edi
push 0x800
call fcn.00429f80
add esp, 4
jmp 0x4333e9
mov eax, dword [esp + 0x44]
mov ecx, 0x2460
test word [eax + 8], cx
je 0x4332f6
mov ecx, eax
call fcn.00429e10
mov edx, dword [esp + 0x1b8]
mov edx, dword [edx + esi*4 + 0x54]
mov esi, dword [esp + 0x1b8]
mov edi, dword [esp + 0xd8]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x30], edx
mov eax, dword [esi + 0x44]
mov dword [esp + 0x8c], edx
cmp eax, dword [ecx + edi*4 + 4]
mov edi, dword [esp + 0x50]
jb 0x433347
mov ecx, dword [esi + 0x4c]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0x44]
push edi
add ecx, dword [eax + esi*4]
call fcn.0042d880
add esp, 4
jmp 0x4333e2
mov eax, dword [esp + 0x18]
mov al, byte [eax + edi*4 + 3]
test al, 0xc0
je 0x433361
cmp edx, 0xc
jb 0x43335d
test dl, 1
je 0x43336e
test al, al
js 0x43336e
mov ecx, edx
call fcn.0042d760
mov ecx, eax
test ecx, ecx
jne 0x43338c
mov edi, dword [esp + 0x44]
lea ecx, [esp + 0x1d0]
xor eax, eax
cmp edx, 0xd
push edi
cmova ecx, eax
call fcn.0042d880
add esp, 4
jmp 0x4333e2
mov eax, dword [esi + 0x1c]
mov edi, dword [esp + 0x44]
shr eax, 2
not eax
and eax, 1
push edi
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0xe4]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x1c0]
call fcn.0042a250
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x431a94
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x10]
push edi
call fcn.0042d880
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 0x431a94
mov eax, dword [edi + 0x10]
mov dword [esp + 0x30], eax
test eax, eax
je 0x431a94
mov edi, dword [edi + 0xc]
and esi, 0x12
mov ecx, dword [esp + 0x44]
lea edx, [edi + 2]
call fcn.004295e0
test eax, eax
jne 0x4374e6
mov eax, dword [esp + 0x44]
push edi
push dword [esp + 0x34]
push dword [eax + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x50]
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 word [ecx + 8], si
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov esi, dword [eax + edi*4 + 0x10]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov al, byte [esi]
test al, al
je 0x434db8
nop dword [eax]
push dword [esp + 0x4c]
mov dl, al
lea esi, [esi + 1]
mov ecx, edi
call fcn.004316a0
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x433480
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov edx, dword [esp + 0x18]
xor eax, eax
mov ecx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [esp + 0x50], eax
mov dword [esp + 0x3c], eax
mov eax, dword [edx + edi*4 + 4]
mov esi, dword [edx + edi*4 + 0x10]
movlpd qword [esp + 0x68], xmm0
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x1b4], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
movzx edx, byte [eax + 0x57]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov eax, dword [eax + edi*4 + 0xc]
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [esp + 0x1c], eax
test esi, esi
je 0x433531
mov al, byte [esi]
mov edi, ecx
push dword [esp + 0x4c]
mov dl, al
mov ecx, edi
call fcn.004316a0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x433510
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x28], edi
mov dword [esp + 0x44], eax
nop dword [eax]
mov ecx, edi
call fcn.0042d650
mov esi, eax
mov ecx, esi
mov dword [edi + 0x1c], esi
call fcn.0042d760
mov edi, eax
mov ecx, 0x4000
mov eax, dword [esp + 0x28]
test word [eax + 8], cx
je 0x43358f
mov ecx, dword [esp + 0x44]
or ecx, dword [esp + 0x38]
je 0x433587
mov ecx, eax
call fcn.00429670
jmp 0x43358f
mov eax, dword [eax]
add dword [esp + 0x3c], eax
sub edi, eax
mov eax, edi
cdq
add dword [esp + 0x44], eax
adc dword [esp + 0x38], edx
cmp esi, 0x7f
ja 0x4335a6
mov edx, 1
jmp 0x4335c3
xor ecx, ecx
xor edx, edx
nop word [eax + eax]
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
je 0x4335c3
cmp edx, 9
jl 0x4335b0
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x50]
sub edi, 0x28
add eax, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x50], eax
cmp edi, dword [esp + 0x1b4]
jae 0x433550
cmp eax, 0x7e
jle 0x433630
cdq
xor edi, edi
mov ecx, eax
shrd ecx, edx, 7
inc edi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x433606
cmp edi, 9
jl 0x4335f3
mov eax, dword [esp + 0x50]
add eax, edi
xor esi, esi
mov dword [esp + 0x50], eax
cdq
mov ecx, eax
shrd ecx, edx, 7
inc esi
shr edx, 7
mov eax, ecx
or eax, edx
je 0x433628
cmp esi, 9
jl 0x433615
mov eax, dword [esp + 0x50]
cmp edi, esi
jge 0x433635
inc eax
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x38]
cdq
mov edi, eax
mov esi, edx
mov eax, dword [esp + 0x14]
add dword [esp + 0x44], edi
adc ecx, esi
mov eax, dword [eax + 0x58]
cdq
cmp ecx, edx
jg 0x43736a
mov edx, dword [esp + 0x44]
jl 0x433662
cmp edx, eax
ja 0x43736a
mov ecx, dword [esp + 0x1c]
call fcn.004295e0
test eax, eax
jne 0x4374e6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
cmp eax, 0x80
jae 0x433696
mov edi, dword [esp + 0x28]
mov byte [edi], al
mov eax, 1
jmp 0x4336a6
push esi
push edi
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.00411c00
add esp, 8
mov edx, dword [esp + 0x1b4]
movzx esi, al
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x30], ecx
cmp ecx, 0x80
jae 0x4336c9
mov byte [esi + edi], cl
mov eax, 1
jmp 0x4336e2
push 0
push ecx
lea ecx, [esi + edi]
call fcn.00411c00
mov ecx, dword [esp + 0x38]
add esp, 8
mov edx, dword [esp + 0x1b4]
add edi, dword [esp + 0x50]
movzx eax, al
add esi, eax
lea eax, [ecx - 1]
mov dword [esp + 0x30], esi
cmp eax, 6
ja 0x433738
mov eax, dword [esp + 0x1b4]
mov edx, dword [edx]
mov eax, dword [eax + 4]
cmp ecx, 7
je 0x433714
cmp ecx, 0xc
jb 0x433714
add ecx, 0xfffffff4
shr ecx, 1
jmp 0x43371b
movzx ecx, byte [ecx + 0x4d2cd8]
mov esi, ecx
nop dword [eax]
dec ecx
mov byte [ecx + edi], dl
shrd edx, eax, 8
shr eax, 8
test ecx, ecx
jne 0x433720
mov edx, dword [esp + 0x1b4]
jmp 0x433758
cmp ecx, 0xc
jb 0x433756
mov esi, dword [edx + 0xc]
push esi
push dword [edx + 0x10]
push edi
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esp + 0x1c0]
add esp, 0xc
jmp 0x433758
xor esi, esi
add dword [esp + 0x50], esi
add edx, 0x28
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x1b4], edx
cmp edx, dword [esp + 0x40]
jbe 0x4336b0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov dword [edi + 0xc], eax
mov eax, 0x10
mov word [edi + 8], ax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x43379f
mov dword [edi], eax
mov eax, 0x4010
mov word [edi + 8], ax
mov ecx, dword [esp + 0x14]
mov byte [edi + 0xa], 1
jmp 0x434db8
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x50]
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
call fcn.00427300
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x50]
mov dword [esi], eax
mov eax, dword [esp + 0x54]
mov dword [esi + 4], eax
jmp case.default.0x43196a
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 4]
mov edi, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0xd8], eax
test eax, eax
jne 0x4338f1
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x9c], eax
jg 0x4371f8
mov ecx, edi
call fcn.00410c20
mov ecx, dword [edx + 0x1f4]
mov esi, eax
add ecx, dword [edx + 0x1f0]
xor edx, edx
push ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], esi
call fcn.0046bd60
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x434bd1
lea eax, [esi + 0x21]
push 0
push eax
call fcn.0040e360
mov esi, eax
add esp, 8
test esi, esi
je 0x4338dc
mov ecx, dword [esp + 0x30]
lea edx, [esi + 0x20]
inc ecx
mov dword [esi], edx
push ecx
push edi
push edx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp byte [eax + 0x3e], 0
je 0x43388e
mov byte [eax + 0x3e], 0
mov byte [eax + 0x45], 1
jmp 0x433894
inc dword [eax + 0x1f0]
mov eax, dword [eax + 0x1e8]
mov ecx, dword [esp + 0x14]
inc dword [esp + 0x2c]
mov edi, dword [esp + 0x2c]
mov dword [esi + 0x18], eax
mov eax, dword [ecx + 0x1f8]
mov dword [ecx + 0x1e8], esi
mov dword [esi + 8], eax
mov eax, dword [ecx + 0x1fc]
mov dword [esi + 0xc], eax
mov eax, dword [ecx + 0x200]
mov dword [esi + 0x10], eax
mov eax, dword [ecx + 0x204]
mov dword [esi + 0x14], eax
mov esi, dword [esp + 0x1c]
jmp 0x4318f6
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
jmp 0x4318f6
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x1b4], ecx
mov esi, dword [eax + 0x1e8]
mov dword [esp + 0x28], esi
test esi, esi
je 0x433931
nop dword [eax]
push edi
push dword [esi]
call fcn.00410f30
add esp, 8
test eax, eax
je 0x43395e
mov esi, dword [esi + 0x18]
inc dword [esp + 0x1b4]
mov dword [esp + 0x28], esi
test esi, esi
jne 0x433910
mov eax, dword [esp + 0x20]
push edi
mov edi, dword [esp + 0x18]
add eax, 0x2c
push str.no_such_savepoint:__s
push edi
push eax
call fcn.0040e600
mov ecx, 1
add esp, 0x10
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x434dd9
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xd8]
cmp dword [eax + 0x9c], 0
jle 0x43397b
cmp edx, 1
je 0x437220
cmp dword [esi + 0x18], 0
jne 0x4339d5
cmp byte [eax + 0x45], 0
je 0x4339d5
mov dword [esp + 0x3c], 1
cmp edx, 1
jne 0x4339dd
mov ecx, dword [esp + 0x20]
call fcn.0042cd20
mov edi, eax
test edi, edi
jne 0x434e50
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov byte [edi + 0x3e], 1
call fcn.0042cd90
cmp eax, 5
mov eax, dword [esp + 0x20]
je 0x437248
mov byte [edi + 0x45], 0
mov eax, dword [eax + 0x50]
mov dword [esp + 0x10], eax
jmp 0x433ac8
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 0x1f0]
sub eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x14]
dec eax
mov dword [esp + 0x1b4], eax
cmp edx, 2
jne 0x433af3
mov eax, dword [ecx + 0x18]
xor edi, edi
shr eax, 1
and eax, 1
mov dword [esp + 0x30], eax
cmp dword [ecx + 0x14], edi
jle 0x433a5b
xor eax, 1
xor esi, esi
mov dword [esp + 0x40], eax
nop dword [eax + eax]
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.004226c0
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x434bd1
mov eax, dword [esp + 0x40]
inc edi
add esi, 0x10
cmp edi, dword [ecx + 0x14]
jl 0x433a20
mov edx, dword [esp + 0xd8]
mov eax, dword [esp + 0x1b4]
xor edi, edi
cmp dword [ecx + 0x14], edi
jle 0x433aa9
xor esi, esi
nop dword [eax + eax]
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [esi + ecx + 4]
call fcn.00422930
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x434bd1
mov eax, dword [esp + 0x1b4]
inc edi
mov edx, dword [esp + 0xd8]
add esi, 0x10
cmp edi, dword [ecx + 0x14]
jl 0x433a70
cmp dword [esp + 0x30], 0
mov edi, dword [esp + 0x14]
je 0x433ac4
mov ecx, edi
call fcn.0042ecc0
call fcn.00447410
or dword [edi + 0x18], 2
mov esi, dword [esp + 0x28]
cmp dword [edi + 0x1e8], esi
je 0x433b3d
cmp dword [edi + 0x208], 0
mov ecx, dword [edi + 0x1e8]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1e8], eax
je 0x433b00
mov edx, ecx
mov ecx, edi
call fcn.0040e0a0
jmp 0x433b2f
mov dword [esp + 0x30], 0
jmp 0x433a62
cmp ecx, dword [edi + 0x114]
jb 0x433b26
cmp ecx, dword [edi + 0x118]
jae 0x433b26
mov eax, dword [edi + 0x110]
mov dword [ecx], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], ecx
jmp 0x433b2f
push ecx
call fcn.0040e000
add esp, 4
dec dword [edi + 0x1f0]
cmp dword [edi + 0x1e8], esi
jne 0x433ad0
mov edi, dword [esp + 0xd8]
mov ecx, dword [esp + 0x14]
cmp edi, 1
jne 0x433b72
mov eax, dword [esi + 0x18]
mov edx, esi
mov dword [ecx + 0x1e8], eax
mov esi, ecx
call fcn.0040e0e0
cmp dword [esp + 0x3c], 0
jne 0x434db6
dec dword [esi + 0x1f0]
jmp 0x433ba3
cmp dword [esp + 0x3c], 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
jne 0x434db8
mov esi, ecx
mov ecx, dword [esp + 0x1b4]
mov edx, edi
push ecx
mov ecx, esi
call fcn.0046bd60
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x434bd1
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 8]
test edx, edx
je 0x433be7
test dword [ecx + 0x18], 0x2000000
jne 0x437260
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x433d43
mov ecx, esi
call fcn.00421730
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp ecx, 5
je 0x43726d
test ecx, ecx
jne 0x434bcd
mov eax, dword [esp + 0x18]
cmp dword [eax + edi*4 + 8], ecx
je 0x433d0b
mov edx, dword [esp + 0x20]
test byte [edx + 0x58], 0x80
je 0x433d0b
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x3e], 0
je 0x433c51
cmp dword [ecx + 0x98], 1
jle 0x433d0b
cmp dword [edx + 0x68], 0
jne 0x433c6c
mov eax, dword [ecx + 0x1f0]
inc dword [ecx + 0x1f4]
add eax, dword [ecx + 0x1f4]
mov dword [edx + 0x68], eax
mov eax, dword [edx + 0x68]
xor edx, edx
dec eax
push eax
call fcn.0046bd60
mov edx, eax
add esp, 4
mov dword [esp + 0x10], edx
test edx, edx
jne 0x433cd3
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 4]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x68]
mov dword [esp + 0x30], eax
cmp byte [esi + 9], dl
je 0x433cb3
inc dword [esi + 0xc]
cmp byte [esi + 0xa], dl
jne 0x433cb3
mov ecx, esi
call fcn.0041f0a0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov edx, eax
call fcn.0041c270
cmp byte [esi + 9], 0
mov dword [esp + 0x10], eax
je 0x433cd3
add dword [esi + 0xc], 0xffffffff
jne 0x433cd3
mov ecx, esi
call fcn.0041f060
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov eax, dword [ecx + 0x1f8]
mov dword [edx + 0x98], eax
mov eax, dword [ecx + 0x1fc]
mov dword [edx + 0x9c], eax
mov eax, dword [ecx + 0x200]
mov dword [edx + 0xa0], eax
mov eax, dword [ecx + 0x204]
mov dword [edx + 0xa4], eax
lea eax, [esp + 0x98]
mov edx, 1
push eax
mov ecx, esi
call fcn.004271d0
mov eax, dword [esp + 0x1c]
add esp, 4
mov esi, dword [esp + 0x98]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x433d4e
xor esi, esi
xor eax, eax
mov dword [esp + 0x98], esi
mov ecx, dword [esp + 0x18]
cmp byte [ecx + edi*4 + 3], 0
je 0x431a94
cmp esi, dword [ecx + edi*4 + 0xc]
jne 0x433d6d
cmp eax, dword [ecx + edi*4 + 0x10]
je 0x431a94
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x2c]
call fcn.0040e0e0
mov ecx, dword [esp + 0x14]
mov edx, str.database_schema_has_changed
call fcn.0040e560
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 4]
mov ecx, edx
mov edi, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x433db4
mov ecx, edi
call fcn.004473d0
mov ecx, dword [esp + 0x20]
mov edx, 0x11
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x11
or dword [ecx + 0x58], 0x20
mov ecx, edi
jmp 0x434dc0
mov edx, dword [esp + 0x18]
lea eax, [esp + 0xa0]
mov ecx, dword [ecx + 0x10]
push eax
mov eax, dword [edx + edi*4 + 4]
mov edx, dword [edx + edi*4 + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004271d0
mov eax, dword [esp + 0xa4]
add esp, 4
mov ecx, dword [esp + 0x14]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4 + 4]
mov eax, dword [eax + edi*4 + 0xc]
shl esi, 4
add esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, eax
mov dword [esp + 0x28], eax
call fcn.00429bc0
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 4]
push dword [eax]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + edi*4 + 8]
call fcn.00427240
mov edx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x10], eax
mov eax, dword [edx + edi*4 + 8]
cmp eax, 1
jne 0x433e75
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0x18], 2
jmp 0x433e8a
cmp eax, 2
jne 0x433e86
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0xc]
mov al, byte [eax]
mov byte [ecx + 0x4c], al
mov eax, dword [esp + 0x14]
cmp dword [edx + edi*4 + 4], 1
jne 0x431a94
mov ecx, eax
call fcn.0042ecc0
mov ecx, dword [esp + 0x20]
and dword [ecx + 0x58], 0xffffffdf
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x433eda
mov eax, dword [eax + 0x20]
cmp eax, dword [ecx + edi*4 + 8]
je 0x4319bf
jmp 0x433eda
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test byte [eax + 0x58], 0x20
jne 0x437298
mov eax, dword [ecx + edi*4 + 0xc]
mov esi, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xd8], eax
shl eax, 4
mov dword [esp + 0x38], 0
add eax, dword [ecx + 0x10]
mov dword [esp + 0x40], 0
mov dword [esp + 0x28], esi
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
cmp dl, 0x37
jne 0x433f3d
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], 1
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x57]
jae 0x433f45
mov byte [ecx + 0x57], al
jmp 0x433f45
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x18]
test byte [edx + edi*4 + 3], 2
je 0x433f74
mov ecx, dword [esp + 0x24]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00429bc0
mov eax, dword [esi]
mov dword [esp + 0x28], eax
cmp eax, 2
jl 0x437285
mov edx, dword [esp + 0x18]
mov al, byte [edx + edi*4 + 1]
cmp al, 0xfa
jne 0x433f90
mov eax, dword [edx + edi*4 + 0x10]
mov dword [esp + 0x40], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x433f9e
cmp al, 0xf2
jne 0x433f9a
mov ecx, dword [edx + edi*4 + 0x10]
jmp 0x433f9e
mov ecx, dword [esp + 0x38]
mov edx, dword [edx + edi*4 + 4]
push 1
push dword [esp + 0xdc]
push ecx
mov ecx, dword [esp + 0x2c]
call fcn.004314f0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4374e6
mov eax, dword [esp + 0x28]
or dword [esi + 0x1c], 8
mov dword [esi + 0x20], eax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov byte [esi + 0x19], 1
cmp byte [eax + 9], 0
je 0x433ff5
inc dword [eax + 0xc]
cmp byte [eax + 0xa], 0
jne 0x433ff5
mov ecx, eax
call fcn.0041f0a0
mov eax, dword [esp + 0x3c]
push dword [esp + 0x38]
mov edx, dword [esp + 0x2c]
mov ecx, eax
push dword [esp + 0x44]
push dword [esp + 0x38]
call fcn.004229e0
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [ecx + 9], 0
je 0x434028
add dword [ecx + 0xc], 0xffffffff
jne 0x434028
call fcn.0041f060
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
mov dword [esi + 8], eax
mov eax, dword [esi]
mov cl, byte [edx + edi*4 + 3]
and cl, 1
mov byte [eax + 0x4a], cl
xor ecx, ecx
cmp byte [edx + edi*4 + 1], 0xfa
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 1
push 0xffffffffffffffff
push dword [eax + edi*4 + 8]
mov edx, dword [eax + edi*4 + 4]
call fcn.004314f0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x28], esi
test esi, esi
je 0x4374e6
mov eax, dword [esp + 0x18]
lea ecx, [esi + 4]
or dword [esi + 0x1c], 1
xor edx, edx
mov byte [esi + 0x19], 1
push 0x41e
movzx eax, byte [eax + edi*4 + 3]
or eax, 5
mov dword [esp + 0x34], ecx
push eax
mov eax, dword [esp + 0x1c]
push ecx
push eax
mov ecx, dword [eax]
call fcn.004207a0
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
jne 0x434210
mov ecx, dword [esi + 4]
lea edx, [eax + 1]
call fcn.00421730
mov dword [esp + 0x10], eax
test eax, eax
jne 0x434210
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4341bb
movzx eax, byte [ecx + edi*4 + 3]
or eax, 2
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
cmp byte [esi + 9], 0
je 0x43411e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43411e
mov ecx, esi
call fcn.0041f0a0
push dword [esp + 0x40]
lea edx, [esp + 0xa8]
mov ecx, esi
call fcn.00426aa0
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x43414e
add dword [esi + 0xc], 0xffffffff
jne 0x43414e
mov ecx, esi
call fcn.0041f060
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4341b1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
cmp byte [esi + 9], 0
je 0x43417f
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43417f
mov ecx, esi
call fcn.0041f0a0
push dword [esp + 0x40]
mov edx, dword [esp + 0xa8]
mov ecx, esi
push dword [esp + 0x40]
push 1
call fcn.004229e0
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x4341b1
add dword [esi + 0xc], 0xffffffff
jne 0x4341b1
mov ecx, esi
call fcn.0041f060
mov esi, dword [esp + 0x28]
and dword [esi + 0x1c], 0xfffffffb
jmp 0x434210
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov dword [esp + 0x30], eax
cmp byte [esi + 9], 0
je 0x4341da
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4341da
mov ecx, esi
call fcn.0041f0a0
push dword [esp + 0x30]
mov edx, 1
mov ecx, esi
push 0
push 1
call fcn.004229e0
add esp, 0xc
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x434208
add dword [esi + 0xc], 0xffffffff
jne 0x434208
mov ecx, esi
call fcn.0041f060
mov esi, dword [esp + 0x28]
or dword [esi + 0x1c], 4
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp byte [eax + edi*4 + 3], 8
mov eax, 8
cmovne ecx, eax
mov eax, dword [esi + 0x1c]
and eax, 0xfffffff7
or ecx, eax
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 1
push 0xffffffffffffffff
push dword [eax + edi*4 + 8]
mov edx, dword [eax + edi*4 + 4]
call fcn.004314f0
add esp, 0xc
test eax, eax
je 0x4374e6
mov edx, dword [esp + 0x18]
push eax
mov ecx, dword [edx + edi*4 + 0x10]
mov dword [eax + 8], ecx
mov edx, dword [edx + edi*4 + 0xc]
mov ecx, dword [esp + 0x18]
call fcn.004389e0
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 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 esi, dword [esp + 0x1c]
mov dword [edx + 0x2c], eax
mov edx, dword [esp + 0x10]
jne 0x43291c
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + eax*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
push 0
push 0xffffffffffffffff
push dword [eax + edi*4 + 0xc]
mov edx, dword [eax + edi*4 + 4]
call fcn.004314f0
add esp, 0xc
test eax, eax
je 0x4374e6
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x19], 1
mov ecx, dword [ecx + edi*4 + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x43437e
mov eax, dword [esp + 0x20]
mov edx, esi
mov ecx, dword [eax]
call fcn.00439040
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x434347
call fcn.00420ec0
jmp 0x43437e
mov ecx, dword [esi]
test ecx, ecx
je 0x434354
call fcn.00422a80
jmp 0x43437e
mov edx, dword [esi + 0x24]
test edx, edx
je 0x43437e
mov eax, dword [edx]
mov esi, dword [esp + 0x20]
push edx
mov ecx, dword [eax]
mov eax, dword [esi + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [esi + 0x58], eax
mov eax, dword [ecx + 0x1c]
call eax
mov eax, esi
add esp, 4
and dword [eax + 0x58], 0xfffffff3
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov dword [eax + ecx*4], 0
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x18]
test byte [esi + 0x1c], 4
movzx edx, byte [eax + edi*4]
mov dword [esp + 0xd8], edx
mov byte [esi + 0x19], 0
je 0x4344a3
mov eax, dword [eax + edi*4 + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov al, byte [ecx + 8]
and al, 0xe
mov dword [esp + 0x28], ecx
cmp al, 2
jne 0x4343f2
xor edx, edx
call fcn.00431610
mov ecx, dword [esp + 0x28]
call fcn.00429a10
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
movzx ecx, word [ecx + 8]
test cl, 4
jne 0x434476
test cl, 8
jne 0x434427
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
call fcn.004c4750
mov eax, dword [esp + 0x28]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x43445d
mov ecx, dword [esp + 0xd8]
test cl, 1
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [esp + 0xd8], ecx
jmp 0x434476
comisd xmm1, xmm0
jbe 0x434476
mov eax, dword [esp + 0xd8]
test al, 1
jne 0x434476
inc eax
mov dword [esp + 0xd8], eax
mov ecx, dword [esi]
lea eax, [esp + 0x1c0]
push eax
push 0
push dword [esp + 0x48]
xor edx, edx
push dword [esp + 0x48]
call fcn.00423460
mov ecx, eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x34], eax
jmp 0x434514
mov ecx, dword [eax + edi*4 + 0x10]
test dl, 1
mov eax, dword [esi + 8]
mov dword [esp + 0x14c], eax
sete al
mov word [esp + 0x150], cx
mov ecx, dword [esp + 0x24]
lea eax, [eax*2 - 1]
mov byte [esp + 0x152], al
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, 0x4000
mov dword [esp + 0x154], ecx
test word [ecx + 8], ax
je 0x4344f6
call fcn.00429670
mov ecx, dword [esi]
lea eax, [esp + 0x1c0]
push eax
push 0
push 0
push 0
lea edx, [esp + 0x15c]
call fcn.00423460
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x434bcd
mov eax, dword [esp + 0xd8]
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov ecx, dword [esp + 0x1c0]
cmp eax, 0x40
jl 0x43457c
test ecx, ecx
js 0x434560
jne 0x43454c
cmp eax, 0x41
je 0x434560
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c0], 0
jmp 0x434db8
lea eax, [esp + 0x1c0]
mov dword [esp + 0x1c0], 0
push eax
push dword [esi]
call fcn.00423a30
jmp 0x4345b5
test ecx, ecx
jg 0x43459b
jne 0x434587
cmp eax, 0x3e
je 0x43459b
mov eax, dword [esi]
xor ecx, ecx
cmp byte [eax + 0x49], 1
setne cl
mov dword [esp + 0x1c0], ecx
jmp 0x4345c6
lea eax, [esp + 0x1c0]
mov dword [esp + 0x1c0], 0
push eax
push dword [esi]
call fcn.00423be0
mov ecx, eax
add esp, 8
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x434bcd
cmp dword [esp + 0x1c0], 0
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
je 0x43291c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov byte [esi + 0x19], 0
mov eax, dword [edx + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00429a10
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x40], 0
cmp dword [edx + edi*4 + 0x10], 0
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x28], ecx
jle 0x4346eb
mov eax, dword [esi + 8]
xor esi, esi
mov dword [esp + 0x114], eax
mov ax, word [edx + edi*4 + 0x10]
xor edx, edx
mov word [esp + 0x1b8], ax
mov word [esp + 0x118], ax
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x30], edx
cmp si, ax
jae 0x4346e2
mov di, ax
nop
add ecx, esi
mov eax, 0x4000
test word [ecx + 8], ax
je 0x4346cb
call fcn.00429670
mov ecx, dword [esp + 0x11c]
mov di, word [esp + 0x118]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
jmp 0x4346cf
mov ecx, dword [esp + 0x28]
inc edx
movzx eax, di
add esi, 0x28
mov dword [esp + 0x30], edx
cmp edx, eax
jl 0x4346a0
mov edi, dword [esp + 0x50]
lea esi, [esp + 0x114]
jmp 0x43472b
mov ecx, dword [esi + 8]
lea eax, [esp + 0x40]
push eax
push 0xbf
lea edx, [esp + 0x220]
call fcn.0042da40
mov esi, eax
add esp, 8
test esi, esi
je 0x4374e6
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
push esi
push dword [edx + 0x10]
mov edx, dword [edx + 0xc]
mov ecx, dword [ecx + 8]
call fcn.0042dab0
add esp, 8
mov eax, dword [esp + 0x18]
mov byte [esi + 6], 0
cmp byte [eax + edi*4], 0x43
jne 0x43476d
movzx edx, word [esp + 0x118]
xor ecx, ecx
test edx, edx
je 0x43476d
mov eax, dword [esp + 0x11c]
add eax, 8
test byte [eax], 1
jne 0x434760
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x434751
jmp 0x43476d
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xa8]
mov edx, esi
mov esi, dword [esp + 0x3c]
push eax
push 0
push 0
mov ecx, dword [esi]
push 0
call fcn.00423460
mov edx, dword [esp + 0x28]
add esp, 0x10
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp dword [edx + edi*4 + 0x10], 0
jne 0x4347b1
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
call fcn.0040e0e0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test ecx, ecx
jne 0x431a94
mov eax, dword [esp + 0xa8]
test eax, eax
mov dword [esi + 0xc], eax
mov al, 1
sete cl
mov byte [esi + 0x1a], 0
sub al, cl
mov dword [esi + 0x3c], 0
mov byte [esi + 0x19], al
cmp byte [edx + edi*4], 0x45
jne 0x434819
test ecx, ecx
je 0x4347ff
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x431900
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x431900
test ecx, ecx
jne 0x4347ff
mov ecx, dword [edx + edi*4 + 8]
mov esi, dword [esp + 0x1c]
dec ecx
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x431900
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], 0
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x28], 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 + 0x30]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.00423460
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov dword [ecx + 0x30], esi
mov dword [ecx + 0x34], edi
mov word [ecx + 0x19], 0
mov dword [ecx + 0x3c], 0
test edx, edx
je 0x4348b1
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x18]
mov esi, dword [esi + eax*4 + 8]
dec esi
mov dword [esp + 0x2c], esi
mov dword [ecx + 0xc], edx
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
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 + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
xorps xmm0, xmm0
mov edx, dword [esp + 0x20]
movlpd qword [esp + 0x1b8], xmm0
mov dword [esp + 0x38], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [edx + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x1b4], ecx
mov esi, dword [ecx]
test esi, esi
je 0x434c0d
test byte [ecx + 0x1c], 2
jne 0x434a67
cmp byte [esi + 0x49], 1
jne 0x434946
test byte [esi + 0x48], 8
jne 0x4349bc
mov ecx, esi
call fcn.00423220
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x434bcd
cmp byte [esi + 0x49], al
jne 0x43498a
mov edx, dword [esp + 0x20]
mov eax, 1
xor esi, esi
mov dword [esp + 0x38], 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], esi
jmp 0x434a75
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004233f0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4349a9
or byte [esi + 0x48], 8
jmp 0x4349b5
and byte [esi + 0x48], 0xf7
test ecx, ecx
jne 0x434bcd
mov ecx, dword [esp + 0x1b4]
mov edx, dword [ecx]
mov dword [esp + 0x30], edx
cmp word [edx + 0x2c], 0
jne 0x434a11
movsx eax, word [edx + 0x4c]
mov edi, dword [edx + eax*4 + 0x78]
movzx esi, word [edx + eax*2 + 0x4e]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.0041f9f0
mov edx, dword [esp + 0x34]
add esp, 4
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x1b4]
or byte [edx + 0x48], 2
mov esi, dword [edx + 0x1c]
mov eax, dword [edx + 0x18]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x10], 0
cmp esi, 0x7fffffff
jl 0x434a4d
jg 0x434a43
cmp eax, 0xffffffff
jb 0x434a4d
or dword [ecx + 0x1c], 2
mov edx, dword [esp + 0x20]
jmp 0x434a7c
mov edx, dword [esp + 0x20]
add eax, 1
mov dword [esp + 0x1b8], eax
adc esi, 0
mov dword [esp + 0x1bc], esi
jmp 0x434a75
mov esi, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 0xc]
test ecx, ecx
je 0x434b36
mov edx, dword [edx + 0xb0]
test edx, edx
je 0x434ab4
mov eax, dword [edx + 4]
test eax, eax
je 0x434aa9
nop dword [eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x434aa0
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea edi, [eax + ecx*8]
jmp 0x434abe
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea edi, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x30], edi
call fcn.00429bc0
mov eax, dword [edi]
mov ecx, dword [edi + 4]
cmp eax, 0xffffffff
jne 0x434adf
cmp ecx, 0x7fffffff
je 0x434bc5
mov edx, dword [esp + 0x1b4]
test byte [edx + 0x1c], 2
jne 0x434bc5
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x434b24
jl 0x434b07
mov edi, dword [esp + 0xd8]
cmp edi, eax
jae 0x434b2b
mov edi, eax
mov esi, ecx
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x1bc], esi
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x434b44
mov edi, dword [esp + 0xd8]
mov eax, dword [esp + 0x30]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x434b44
mov edi, dword [esp + 0xd8]
mov edx, dword [esp + 0x1b4]
test byte [edx + 0x1c], 2
je 0x434bf0
mov dword [esp + 0x30], 0
lea eax, [esp + 0x1b8]
push eax
push 8
call fcn.00410210
mov esi, dword [esp + 0x1c4]
lea eax, [esp + 0x40]
mov edi, dword [esp + 0x1c0]
and esi, 0x3fffffff
push eax
mov eax, dword [esp + 0x1c0]
add edi, 1
push 0
adc esi, 0
mov dword [esp + 0x1c8], edi
push esi
mov ecx, dword [eax]
xor edx, edx
push edi
mov dword [esp + 0x1d4], esi
call fcn.00423460
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x434be9
cmp dword [esp + 0x38], eax
jne 0x434be9
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, 0x64
jl 0x434b56
mov dword [esp + 0x10], 0xd
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x40], 0
je 0x4372aa
mov ecx, 7
mov dword [esp + 0x10], ecx
jmp 0x4372ba
mov edx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov byte [edx + 0x1a], 0
mov dword [edx + 0x3c], 0
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x434db8
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x1bc]
mov edi, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x14]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x434db8
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x28], eax
cmp dl, 0x4b
jne 0x434c77
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 0xc]
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
jmp 0x434c90
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
cdq
mov ecx, eax
mov dword [esp + 0x30], eax
mov eax, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x18]
test byte [edx + edi*4 + 3], 1
je 0x434ca2
mov eax, dword [esp + 0x20]
inc dword [eax + 0x5c]
mov eax, dword [esp + 0x38]
test byte [edx + edi*4 + 3], 2
je 0x434cbf
mov edx, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov dword [edx + 0x20], ecx
mov dword [edx + 0x24], eax
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + esi*8 + 8]
test al, 1
je 0x434cdc
mov dword [ecx + esi*8 + 0x10], 0
mov dword [ecx + esi*8 + 0xc], 0
mov cl, byte [edx + edi*4 + 3]
mov byte [esp + 0x1b8], cl
test cl, 0x10
je 0x434cf5
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 0xc]
jmp 0x434cf7
xor edx, edx
test eax, 0x4000
je 0x434d07
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + esi*8]
jmp 0x434d09
xor ecx, ecx
movzx eax, byte [esp + 0x1b8]
push edx
shr eax, 3
xor edx, edx
and eax, 1
push eax
mov eax, dword [esp + 0x2c]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x4c]
mov esi, dword [esp + 0x48]
push esi
mov ecx, dword [eax]
call fcn.00426610
mov ecx, dword [esp + 0x44]
mov edx, eax
add esp, 0x1c
mov dword [esp + 0x10], eax
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
test edx, edx
jne 0x437076
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x437083
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x431a94
push dword [esp + 0x38]
movsx ecx, byte [ecx + 0x18]
push esi
mov esi, dword [esp + 0x1c]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
mov eax, dword [esp + 0x28]
mov ecx, 0x17
test byte [eax + edi*4 + 3], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [esi + 0xcc]
call edx
add esp, 0x18
mov ecx, esi
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
inc edi
mov dword [esp + 0x2c], edi
test edx, edx
je 0x4318f6
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
push dword [edx + 0x2c]
mov dword [edx + 0x50], ecx
push dword [edx + 0xa8]
push dword [esp + 0x34]
push str.statement_aborts_at__d:___s___s
push ecx
call fcn.004101d0
mov ecx, dword [esp + 0x34]
add esp, 0x14
call fcn.0042cd90
cmp dword [esp + 0x10], 0xc0a
jne 0x434e12
mov byte [edi + 0x40], 1
mov al, byte [esp + 0x5b]
mov edi, 1
test al, al
je 0x434e50
movzx esi, al
mov eax, dword [esp + 0x14]
dec esi
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
push dword [eax + ecx*8 + 0xc]
call fcn.0044d5e0
add esp, 4
cmp esi, edi
je 0x434e50
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
push dword [eax + 0x1c]
call fcn.0044d5e0
add esp, 4
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 + 0x20]
mov ecx, dword [esp + 0x74]
add dword [eax + 0x7c], ecx
mov ecx, eax
call fcn.0042b740
mov ecx, dword [esp + 0x2dc]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.004bde8e
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi]
call fcn.00426830
mov ecx, eax
mov dword [esi + 0x3c], 0
mov dword [esp + 0x10], ecx
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x434efa
mov edx, dword [ecx + 0xd0]
test edx, edx
je 0x434efa
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0x10]
test eax, eax
je 0x434efa
test byte [esi + 0x1c], 4
je 0x434efa
push dword [esi + 0x34]
movsx ecx, byte [esi + 0x18]
push dword [esi + 0x30]
mov esi, dword [esp + 0x1c]
add ecx, ecx
push eax
mov eax, dword [esi + 0x10]
push dword [eax + ecx*8]
push 9
push dword [esi + 0xcc]
call edx
add esp, 0x18
mov ecx, esi
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
test byte [eax + edi*4 + 8], 1
je case.default.0x43196a
mov edx, dword [esp + 0x20]
inc dword [edx + 0x5c]
jmp case.default.0x43196a
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x5c]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov dword [edx + 0x5c], 0
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], 0
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + edi*4 + 0x10]
call fcn.0043ab70
add esp, 8
mov dword [esp + 0x10], eax
cmp dword [esp + 0x3c], 0
mov edx, eax
je 0x43291c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0x20]
mov edx, esi
mov dword [esp + 0x1c], esi
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
call fcn.0043aad0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 0xc]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x3c], 0
jmp case.default.0x43196a
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
test byte [eax + 0x1c], 4
mov edi, dword [eax]
mov dword [esp + 0x38], edi
jne 0x43507d
cmp word [edi + 0x2c], 0
jne 0x435063
movsx eax, word [edi + 0x4c]
movzx esi, word [edi + eax*2 + 0x4e]
mov edi, dword [edi + eax*4 + 0x78]
mov eax, dword [esp + 0x38]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.0041f9f0
mov edi, dword [esp + 0x3c]
add esp, 4
or byte [edi + 0x48], 2
mov ecx, dword [esp + 0x14]
mov esi, dword [edi + 0x18]
mov eax, dword [ecx + 0x58]
cdq
cmp dword [edi + 0x1c], edx
jg 0x43736e
jl 0x4350d5
cmp esi, eax
jmp 0x4350cf
cmp word [edi + 0x2c], 0
jne 0x4350c5
movsx eax, word [edi + 0x4c]
movzx esi, word [edi + eax*2 + 0x4e]
mov edi, dword [edi + eax*4 + 0x78]
mov eax, dword [esp + 0x38]
add eax, 0x18
push eax
mov ecx, dword [edi + 0x40]
movzx eax, byte [ecx + esi*2]
movzx edx, byte [ecx + esi*2 + 1]
mov ecx, edi
shl eax, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.0041f9f0
mov edi, dword [esp + 0x3c]
add esp, 4
or byte [edi + 0x48], 2
mov ecx, dword [esp + 0x14]
mov esi, dword [edi + 0x24]
cmp esi, dword [ecx + 0x58]
ja 0x43736e
mov ecx, dword [esp + 0x1c]
mov edx, 0x20
cmp esi, edx
cmova edx, esi
call fcn.004295e0
test eax, eax
jne 0x4374e6
mov edx, dword [esp + 0x1c]
mov ecx, 0xbe10
mov ax, word [edx + 8]
and ax, cx
mov dword [edx + 0xc], esi
or ax, 0x10
mov word [edx + 8], ax
mov eax, dword [esp + 0x30]
test byte [eax + 0x1c], 4
jne 0x43511c
push 0
push dword [edx + 0x10]
jmp 0x43515a
mov eax, dword [edx + 0x10]
mov dword [esp + 0x30], eax
mov al, byte [edi + 0x49]
test al, al
jne 0x43513f
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], 4
mov byte [edx + 0xa], 1
jmp 0x434db8
cmp al, 3
jb 0x435154
mov ecx, edi
call fcn.0041f6f0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x43516b
push 0
push dword [esp + 0x34]
push esi
xor edx, edx
mov ecx, edi
call fcn.00422dc0
mov dword [esp + 0x1c], eax
add esp, 0xc
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov byte [edx + 0xa], 1
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
je 0x4351aa
mov esi, dword [esp + 0x1c]
mov eax, 1
mov ecx, dword [esp + 0x14]
mov word [esi + 8], ax
jmp case.default.0x43196a
cmp byte [esi + 0x1a], 0
je 0x4351da
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c8], eax
mov ecx, dword [esi + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1cc], ecx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x434dc0
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x435229
mov esi, dword [ecx]
lea edx, [esp + 0x1c8]
push edx
push ecx
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, esi
mov dword [esp + 0x10], eax
call fcn.0042ed90
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1cc]
mov eax, dword [esp + 0x1c8]
mov edx, dword [esp + 0x10]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x434dc0
mov eax, dword [esi]
cmp byte [eax + 0x49], 1
je 0x43524c
mov ecx, esi
call fcn.0042d600
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x434bcd
mov edx, dword [esp + 0x18]
jmp 0x435254
mov dword [esp + 0x10], 0
cmp byte [esi + 0x19], 0
je 0x435278
mov esi, dword [esp + 0x1c]
mov eax, 1
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov word [esi + 8], ax
jmp 0x431900
mov edx, dword [esi]
mov dword [esp + 0x30], edx
cmp word [edx + 0x2c], 0
jne 0x4352c2
movsx eax, word [edx + 0x4c]
mov edi, dword [edx + eax*4 + 0x78]
movzx esi, word [edx + eax*2 + 0x4e]
lea eax, [edx + 0x18]
push eax
mov ecx, dword [edi + 0x40]
movzx edx, byte [ecx + esi*2]
movzx eax, byte [ecx + esi*2 + 1]
mov ecx, edi
shl edx, 8
or edx, eax
movzx eax, word [edi + 0x14]
and edx, eax
add edx, dword [edi + 0x38]
call fcn.0041f9f0
mov edx, dword [esp + 0x34]
add esp, 4
or byte [edx + 0x48], 2
mov eax, dword [edx + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1c8], eax
mov ecx, dword [edx + 0x1c]
xor edx, edx
mov dword [esp + 0x1cc], ecx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
mov dword [esi], eax
jmp 0x434dc0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 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 0x4319bf
call fcn.0041f520
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
mov esi, dword [ecx]
cmp byte [esi + 0x49], 1
jne 0x435355
test byte [esi + 0x48], 8
je 0x435355
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x4353a3
mov ecx, esi
call fcn.00423220
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x435397
cmp byte [esi + 0x49], al
jne 0x435370
lea eax, [ecx + 1]
jmp 0x43539b
mov ecx, esi
mov dword [esp + 0x38], 0
call fcn.004233f0
mov dword [esp + 0x10], eax
test eax, eax
mov eax, dword [esp + 0x38]
jne 0x435391
or byte [esi + 0x48], 8
jmp 0x43539b
and byte [esi + 0x48], 0xf7
jmp 0x43539b
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x10]
mov byte [ecx + 0x19], al
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + edi*4 + 8]
test ecx, ecx
jle 0x437076
mov esi, dword [esp + 0x1c]
test eax, eax
je 0x43291c
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov eax, dword [esp + 0x20]
inc dword [eax + 0x74]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0xd8], eax
mov esi, dword [ecx + 0x38]
test esi, esi
je 0x435471
cmp byte [esi + 0x38], 0
mov dword [esp + 0x10], 0
jne 0x43543d
cmp dword [esi + 0x24], 0
lea edx, [esi + 0x24]
je 0x435464
xor eax, eax
lea ecx, [esi + 0x40]
mov dword [esp + 0xd8], eax
call fcn.00439340
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
jmp 0x4354b8
mov ecx, esi
call fcn.00439a60
mov edx, eax
mov ecx, esi
call fcn.00438cb0
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x43546b
mov ecx, esi
call fcn.0043a8b0
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0x28]
jmp 0x4354b8
mov esi, dword [ecx]
mov ecx, esi
call fcn.00423220
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4354a9
cmp byte [esi + 0x49], al
jne 0x435495
mov eax, 1
mov dword [esp + 0xd8], eax
jmp 0x4354a9
xor eax, eax
mov ecx, esi
mov dword [esp + 0xd8], eax
call fcn.00423370
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
mov eax, dword [esp + 0xd8]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov byte [ecx + 0x19], al
test eax, eax
je 0x43291c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x30], esi
mov esi, dword [esi + 0x38]
cmp byte [esi + 0x38], 0
je 0x43555b
cmp byte [esi + 0x39], 0
je 0x43553f
mov ecx, dword [esi + 0x10]
call fcn.00438940
mov dword [esp + 0x10], eax
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x30]
cmp dword [eax + 0x18], ecx
sete cl
mov dword [esp + 0x1c4], ecx
jmp 0x4355e6
mov ecx, dword [esi + 0x14]
lea edx, [esp + 0x1c4]
call fcn.00439890
mov esi, dword [esp + 0x30]
mov dword [esp + 0x10], eax
jmp 0x4355e6
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 0x43557a
mov ecx, dword [esp + 0x14]
call fcn.00438b40
xor eax, eax
mov dword [esp + 0x10], 0
cmp dword [esi + 0x24], eax
mov esi, dword [esp + 0x30]
sete al
mov dword [esp + 0x1c4], eax
jmp 0x4355e6
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
cmp dword [eax + ecx*4], 0
je 0x4319bf
jmp 0x4355b6
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov dword [esp + 0x1c4], eax
lea eax, [esp + 0x1c4]
push eax
push dword [esi]
mov eax, dword [edx + edi*4 + 0x10]
call eax
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
cmp dword [esp + 0x1c4], 0
jne 0x43561a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov byte [esi + 0x19], 0
mov edx, dword [eax + edi*4 + 8]
movzx eax, byte [eax + edi*4 + 3]
dec edx
mov dword [esp + 0x2c], edx
inc dword [ecx + eax*4 + 0x6c]
jmp 0x436d4d
mov byte [esi + 0x19], 1
jmp 0x436d4d
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
test byte [edx + edi*4 + 3], 1
mov eax, dword [eax + 0x38]
mov ecx, dword [edx + edi*4 + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 8]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx]
mov dword [esp + 0x28], eax
je 0x43565b
mov eax, dword [esp + 0x20]
inc dword [eax + 0x5c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x435683
mov ecx, esi
call fcn.00429670
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x431a94
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
cmp dword [ecx + 0x38], 0
je 0x43569d
mov edx, esi
call fcn.00439b70
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp 0x434db8
test byte [edx + edi*4 + 3], 0x10
je 0x4356a9
mov eax, dword [ecx + 0xc]
jmp 0x4356ab
xor eax, eax
mov ecx, dword [esp + 0x28]
push eax
push dword [edx + edi*4 + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
cdq
push 0x4d29ba
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.00426610
mov ecx, dword [esp + 0x30]
add esp, 0x1c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 0x3c], 0
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
mov ecx, dword [esi]
mov dword [esp + 0x138], eax
mov ax, word [edx + edi*4 + 0xc]
mov word [esp + 0x13c], ax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov byte [esp + 0x13e], 0
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x140], eax
lea edx, [esp + 0x138]
lea eax, [esp + 0xac]
push eax
push 0
push 0
push 0
call fcn.00423460
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x43576f
cmp dword [esp + 0xac], eax
jne 0x43576f
mov ecx, dword [esp + 0x30]
call fcn.00426830
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x3c], 0
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, 1
mov eax, dword [esp + 0x1c]
mov edi, dword [esi]
mov word [eax + 8], cx
mov eax, dword [esi]
cmp byte [eax + 0x49], cl
je 0x4357be
mov ecx, esi
call fcn.0042d600
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x434bcd
jmp 0x4357c6
mov dword [esp + 0x10], 0
cmp byte [esi + 0x19], 0
jne 0x435821
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x68]
xorps xmm0, xmm0
mov edx, edi
push eax
movlpd qword [esp + 0x6c], xmm0
call fcn.0042ea20
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x434bcd
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x68]
inc dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov dword [esi], eax
mov eax, dword [esp + 0x6c]
mov dword [esi + 4], eax
mov eax, 4
mov word [esi + 8], ax
jmp 0x4318f6
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x4318f6
mov eax, dword [esp + 0x18]
cmp byte [esp + 0x1b8], 0x73
mov dword [esp + 0x28], 0
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + 8]
mov dword [esp + 0xc4], eax
mov ax, word [ecx + edi*4 + 0x10]
mov word [esp + 0xc8], ax
sbb al, al
mov byte [esp + 0xca], al
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xcc], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.0042eb90
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
test byte [ecx + edi*4], 1
je 0x4358c0
neg eax
jmp 0x4358c1
inc eax
mov edx, dword [esp + 0x10]
test eax, eax
jle 0x43291c
mov ecx, dword [ecx + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov eax, dword [ecx + 4]
xor edx, edx
test eax, eax
je 0x43591a
nop dword [eax + eax]
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x435913
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x435913
and cl, 0xc
cmp cl, 8
jae 0x435913
cmp dword [eax + 0x4c], 0
jl 0x435913
inc edx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x4358f0
mov eax, 1
mov word [esi + 8], ax
cmp edx, eax
jg 0x4372e3
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], 0
mov ecx, dword [eax + edi*4 + 0xc]
mov eax, dword [eax + edi*4 + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
shl ecx, 4
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx + 4]
cmp byte [esi + 9], 0
je 0x43596f
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43596f
mov ecx, esi
call fcn.0041f0a0
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.00426fa0
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x435999
add dword [esi + 0xc], 0xffffffff
jne 0x435999
mov ecx, esi
call fcn.0041f060
cmp dword [esp + 0x10], 0
mov eax, 4
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov word [ecx + 8], ax
mov eax, esi
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne 0x431a94
test esi, esi
je 0x431a94
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x28]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4359f3
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x20], esi
jne 0x4359ed
mov dword [ecx + 0x20], edx
mov eax, dword [eax]
test eax, eax
jne 0x4359e2
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x435a11
nop dword [eax]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x435a0b
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x435a00
mov al, byte [esp + 0x3c]
mov ecx, dword [esp + 0x14]
add al, 1
mov byte [esp + 0x5b], al
jmp 0x434db8
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x1b4]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x30], 0
mov dword [esp + 0x1b4], 0
cmp dword [edx + edi*4 + 0xc], 0
cmove eax, dword [esp + 0x30]
push eax
mov eax, dword [edx + edi*4 + 8]
mov edx, dword [edx + edi*4 + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00426f00
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x10], eax
cmp dword [ecx + edi*4 + 0xc], 0
je 0x4319bf
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1b4]
add dword [edx + 0x5c], eax
mov ecx, dword [ecx + edi*4 + 0xc]
test ecx, ecx
jle 0x4319bf
mov edi, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
adc dword [edi + ecx*8 + 4], edx
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx + 0x38]
test edx, edx
je 0x435ad6
mov ecx, dword [esp + 0x14]
call fcn.00438ed0
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov ecx, dword [ecx]
push 0
mov edx, dword [ecx + 0x3c]
mov ecx, dword [ecx]
call fcn.00426f00
mov ecx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x10], eax
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], 0
mov eax, dword [eax + edi*4 + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp dl, 0x79
setne cl
mov esi, dword [eax + 4]
inc ecx
mov dword [esp + 0x30], ecx
cmp byte [esi + 9], 0
je 0x435b34
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x435b34
mov ecx, esi
call fcn.0041f0a0
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x48]
mov ecx, esi
call fcn.00426aa0
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [esi + 9], 0
je 0x435b5a
add dword [esi + 0xc], 0xffffffff
jne 0x435b5a
mov ecx, esi
call fcn.0041f060
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x43196a
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
add eax, 0x2c
mov dword [esp + 0x12c], eax
mov eax, str.sqlite_master
mov ecx, dword [esi + edi*4 + 4]
cmp ecx, 1
push dword [esi + edi*4 + 0x10]
mov esi, str.sqlite_temp_master
mov dword [esp + 0x134], ecx
cmove eax, esi
mov dword [esp + 0x12c], edx
push eax
mov eax, dword [edx + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edx
call fcn.0040fde0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x435bd8
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], 7
jmp 0x435c2f
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x128]
push 0
push eax
push fcn.0045bdf0
push esi
push edi
mov byte [edi + 0x91], 1
mov dword [esp + 0x148], 0
call fcn.00458060
add esp, 0x14
mov edx, esi
test eax, eax
mov ecx, edi
cmove eax, dword [esp + 0x134]
mov dword [esp + 0x10], eax
call fcn.0040e0e0
mov edx, dword [esp + 0x10]
mov ecx, edi
mov byte [ecx + 0x91], 0
test edx, edx
je 0x435c3c
call fcn.00447410
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp edx, 7
je 0x4374ea
mov esi, dword [esp + 0x1c]
jmp 0x434dc0
mov eax, dword [esp + 0x18]
mov edx, dword [eax + edi*4 + 4]
call fcn.00445780
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov edx, dword [edx + edi*4 + 0x10]
mov esi, dword [eax + ecx*8 + 0xc]
lea eax, [esp + 0xb0]
push eax
lea ecx, [esi + 8]
call fcn.004124c0
add esp, 4
test eax, eax
je 0x435cb1
push dword [esp + 0xb0]
mov edi, dword [eax + 8]
lea ecx, [esi + 8]
mov edx, eax
call fcn.00412580
add esp, 4
jmp 0x435cb3
xor edi, edi
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.00447670
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x18], 2
jmp 0x434db8
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.004471c0
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.00467820
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x43196a
mov esi, dword [esp + 0x18]
push 0
mov eax, dword [esi + edi*4 + 8]
mov dword [esp + 0x34], eax
lea eax, [eax*4 + 4]
push eax
call fcn.0040e360
mov edx, eax
add esp, 8
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4374e6
mov ecx, dword [esi + edi*4 + 0xc]
lea eax, [ecx + ecx*4]
mov ecx, dword [esi + edi*4 + 4]
mov dword [esp + 0x40], eax
xor esi, esi
mov eax, dword [esp + 0x24]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x28], ecx
test eax, eax
jle 0x435d7e
mov edi, ecx
nop word [eax + eax]
mov ecx, edi
call fcn.00429a10
mov edx, dword [esp + 0x3c]
add edi, 0x28
mov dword [edx + esi*4], eax
inc esi
mov eax, dword [esp + 0x30]
cmp esi, eax
jl 0x435d60
mov edi, dword [esp + 0x50]
mov dword [edx + esi*4], 0
lea ecx, [esp + 0x9c]
mov esi, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x44]
push dword [esi + ecx*8]
mov esi, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x10]
movzx eax, byte [eax + edi*4 + 3]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.00427ee0
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, esi
mov edi, eax
call fcn.0040e0e0
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x9c]
cdq
sub dword [esi + ecx*8], eax
mov eax, esi
sbb dword [eax + ecx*8 + 4], edx
mov ecx, dword [esp + 0x28]
call fcn.00429e10
mov esi, dword [esp + 0x9c]
test esi, esi
je 0x435e10
test edi, edi
je 0x4374e6
mov ecx, dword [esp + 0x28]
mov edx, edi
push fcn.0040e000
push 1
push 0xffffffffffffffff
call fcn.0042a040
add esp, 0xc
mov al, byte [esp + 0x4c]
mov ecx, dword [esp + 0x28]
movzx edx, al
call fcn.00429490
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 8]
lea edi, [eax + eax*4]
jne 0x435e5a
mov ecx, esi
call fcn.00429eb0
test byte [esi + 8], 0x20
je 0x4374e6
mov eax, dword [esp + 0x24]
mov ecx, dword [esi]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.00417560
mov ecx, dword [esp + 0x1c]
add esp, 8
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea ecx, [ecx + eax*8]
mov dword [esp + 0x30], ecx
je 0x435f05
mov esi, dword [ecx]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x435eb7
test al, 1
jne 0x435eb2
mov ecx, dword [esi + 8]
call fcn.00417690
mov ecx, dword [esp + 0x30]
mov dword [esi + 8], eax
or word [esi + 0x1a], 2
mov eax, dword [esi + 8]
test eax, eax
je 0x435f05
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edx
mov dword [esi + 8], eax
test eax, eax
jne 0x435ee4
mov ecx, esi
call fcn.004174d0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
push edx
push ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00429e70
add esp, 8
jmp 0x436d4d
call fcn.00429e10
jmp 0x436d40
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 0x20
lea esi, [edx + eax*8]
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
mov dword [esp + 0x28], eax
jne 0x435f58
mov ecx, esi
call fcn.00429eb0
test byte [esi + 8], 0x20
je 0x4374e6
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x24]
test ecx, ecx
je 0x435f7d
push dword [edx + eax*8 + 4]
push dword [edx + eax*8]
mov edx, ecx
mov ecx, dword [esi]
call fcn.004178c0
add esp, 8
test eax, eax
jne 0x434411
mov ecx, dword [esp + 0x30]
test ecx, ecx
js 0x431a94
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push dword [ecx + eax*8 + 4]
push dword [ecx + eax*8]
mov ecx, dword [esi]
call fcn.00417560
mov ecx, dword [esp + 0x1c]
add esp, 8
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [eax + edi*4 + 0x10]
mov eax, dword [eax + edi*4 + 0xc]
mov dword [esp + 0x30], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
cmp byte [eax + edi*4 + 3], 0
je 0x435ff4
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xb0]
test eax, eax
je 0x435ff0
nop
cmp dword [eax + 0x18], ecx
je 0x4319bf
mov eax, dword [eax + 4]
test eax, eax
jne 0x435fe0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, dword [eax + 0xb8]
cmp eax, dword [edi + 0x80]
jge 0x4372fd
test byte [ecx + 8], 0x40
jne 0x4360ec
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
mov ecx, edi
add eax, 0x48
cdq
push edx
push eax
call fcn.0040e330
mov edi, eax
add esp, 8
mov dword [esp + 0x28], edi
test edi, edi
je 0x4374e6
mov ecx, dword [esp + 0x38]
call fcn.004299f0
mov eax, dword [esp + 0x38]
mov ecx, 0x40
mov edx, dword [esp + 0x30]
mov word [eax + 8], cx
mov ecx, dword [esp + 0x20]
mov dword [eax], edi
mov dword [edi], ecx
mov dword [edi + 0x3c], esi
mov eax, dword [edx + 0xc]
mov dword [edi + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x14], 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 + 0x18], eax
mov eax, dword [ecx + 0xc8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0xc4]
mov dword [edi + 0x38], eax
lea eax, [esi*4 + 9]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x48]
cmp eax, ecx
je 0x4360ee
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 0x4360d4
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
jmp 0x4360ee
mov edi, dword [ecx]
mov ecx, dword [esp + 0x20]
lea esi, [edi + 0x20]
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 0xffffffff
inc dword [ecx + 0xb8]
mov eax, dword [ecx + 0xb0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [esp + 0x64]
mov dword [esi + 4], eax
mov eax, dword [ecx + 0x5c]
mov dword [edi + 0x44], eax
mov dword [ecx + 8], esi
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0xb0], edi
mov eax, dword [edi + 0x3c]
mov dword [ecx + 0x1c], eax
movzx eax, word [edi + 0x40]
mov dword [ecx + 0x24], eax
mov eax, dword [ecx + 0x1c]
inc eax
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov esi, dword [esp + 0x20]
mov dword [esi + 0x38], ecx
mov eax, dword [edx]
mov dword [esp + 0x18], eax
mov dword [esi + 4], eax
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
lea ecx, [ecx + eax*4]
mov dword [esi + 0xc8], ecx
mov eax, dword [edx + 0x10]
push eax
push 0
push ecx
mov dword [esi + 0xc4], eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x20]
add esp, 0xc
jmp 0x434db8
mov eax, dword [esp + 0x20]
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 + 0x1c]
add eax, dword [ecx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.00429f80
mov ecx, dword [esp + 0x18]
add esp, 4
jmp case.default.0x43196a
test dword [ecx + 0x18], 0x1000000
mov eax, dword [esp + 0x18]
je 0x4361ed
mov eax, dword [eax + edi*4 + 8]
cdq
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
jmp case.default.0x43196a
cmp dword [eax + edi*4 + 4], 0
mov eax, dword [eax + edi*4 + 8]
cdq
je 0x43620a
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.default.0x43196a
mov edi, dword [esp + 0x20]
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
cmp dword [edx + edi*4 + 4], 0
je 0x43625c
mov eax, dword [ecx + 0x1f8]
or eax, dword [ecx + 0x1fc]
jne case.default.0x43196a
mov eax, dword [ecx + 0x200]
or eax, dword [ecx + 0x204]
jne case.default.0x43196a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0x90]
or eax, dword [esi + 0x94]
mov esi, dword [esp + 0x1c]
jmp 0x436236
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xb0]
test edx, edx
je 0x4362ac
mov eax, dword [edx + 4]
test eax, eax
je 0x436299
nop dword [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x436290
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea ecx, [eax + ecx*8]
jmp 0x4362be
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + edi*4 + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x30], ecx
call fcn.00429bc0
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + edi*4 + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00429bc0
mov eax, dword [esp + 0x30]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp dword [eax + 4], edx
jg 0x431a94
jl 0x4362fc
cmp dword [eax], ecx
jae 0x431a94
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], edx
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea eax, [eax + eax*4]
cmp dword [esi + eax*8 + 4], 0
mov esi, dword [esp + 0x1c]
jl case.default.0x43196a
jg 0x43624e
mov esi, dword [esp + 0x24]
cmp dword [esi + eax*8], 0
mov esi, dword [esp + 0x1c]
jbe case.default.0x43196a
mov edx, dword [edx + edi*4 + 8]
dec edx
mov dword [esp + 0x2c], edx
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + edi*4 + 0xc]
cdq
add dword [esi + ecx*8], eax
mov eax, esi
mov esi, dword [esp + 0x1c]
adc dword [eax + ecx*8 + 4], edx
cmp dword [eax + ecx*8 + 4], 0
jg 0x4319bf
jl 0x4319b2
cmp dword [eax + ecx*8], 0
jae 0x4319bf
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi*4 + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + edi*4 + 0xc]
cdq
add dword [esi + ecx*8], eax
mov eax, esi
adc dword [eax + ecx*8 + 4], edx
mov edx, esi
mov eax, dword [eax + ecx*8]
mov esi, dword [esp + 0x1c]
or eax, dword [edx + ecx*8 + 4]
mov edx, dword [esp + 0x10]
jne 0x43291c
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
movzx edx, byte [eax + edi*4 + 3]
mov eax, dword [eax + edi*4 + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0xc]
xor eax, eax
test edx, edx
je 0x43641b
nop
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x436410
mov ecx, dword [esp + 0x18]
push esi
push edx
mov eax, dword [ecx + edi*4 + 0x10]
mov dword [esp + 0x104], eax
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [esp + 0x2c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x108], eax
inc dword [eax + 0xc]
mov eax, 1
mov word [esp + 0x1f0], ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x208], eax
lea eax, [esp + 0x1e8]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x110], eax
lea eax, [esp + 0x100]
push eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x204], 0
mov dword [esp + 0x118], 0
mov byte [esp + 0x11c], 0
mov eax, dword [eax + 0x10]
call eax
add esp, 0xc
cmp dword [esp + 0x10c], 0
je 0x4364f4
lea eax, [esp + 0x1e0]
push eax
call fcn.0042f240
add esp, 4
push eax
mov eax, dword [esp + 0x24]
push 0x4e518c
push dword [esp + 0x1c]
add eax, 0x2c
push eax
call fcn.0040e600
mov eax, dword [esp + 0x11c]
add esp, 0x10
mov dword [esp + 0x10], eax
cmp byte [esp + 0x110], 0
je 0x436520
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 - 0x10]
test eax, eax
je 0x436520
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.00429e70
add esp, 8
lea ecx, [esp + 0x1e0]
call fcn.004299f0
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, dword [ecx + edi*4 + 0x10]
mov ecx, esi
call fcn.00429810
mov dword [esp + 0x10], eax
test eax, eax
je 0x43657d
push esi
call fcn.0042f240
add esp, 4
push eax
mov eax, dword [esp + 0x24]
push 0x4e518c
push dword [esp + 0x1c]
add eax, 0x2c
push eax
call fcn.0040e600
add esp, 0x10
movzx edx, byte [esp + 0x4c]
mov ecx, esi
call fcn.00429490
movzx eax, word [esi + 8]
test al, 0x12
je 0x431a94
mov edx, dword [esi + 0xc]
test eax, 0x4000
je 0x4365a1
add edx, dword [esi]
mov eax, dword [esi + 0x20]
xor ecx, ecx
cmp edx, dword [eax + 0x58]
setg cl
test ecx, ecx
mov ecx, dword [esp + 0x14]
jne 0x43736e
jmp 0x434db8
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x214]
push eax
lea eax, [esp + 0x214]
mov dword [esp + 0x210], 0
push eax
push dword [esi + edi*4 + 8]
mov edx, dword [esi + edi*4 + 4]
mov dword [esp + 0x220], 0xffffffff
mov dword [esp + 0x21c], 0xffffffff
call fcn.0047a700
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x10], ecx
cmp ecx, 5
jne 0x436620
mov dword [esp + 0x10], 0
mov dword [esp + 0x20c], 1
mov eax, dword [esi + edi*4 + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + esi*4 + 0x20c]
mov ecx, edi
cdq
push edx
push eax
call fcn.00429e70
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x436630
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4 + 0xc]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
cmp esi, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
movzx edx, byte [ecx + 5]
cmove esi, edx
mov dword [esp + 0x40], edx
cmp byte [ecx + 0x10], 3
mov dword [esp + 0x30], esi
jb 0x436698
xor eax, eax
jmp 0x4366b7
mov eax, dword [ecx + 0x40]
cmp dword [eax], 0
je 0x4366b2
cmp dword [ecx + 0x4c], 0
jl 0x4366b2
jg 0x4366ae
cmp dword [ecx + 0x48], 0
jbe 0x4366b2
xor eax, eax
jmp 0x4366b7
mov eax, 1
test eax, eax
mov esi, edx
mov eax, 0x4d29ba
cmovne esi, dword [esp + 0x30]
cmp byte [ecx + 0xf], 0
jne 0x4366d1
mov eax, dword [ecx + 0xa8]
cmp esi, 5
jne 0x436700
mov ecx, eax
call fcn.00410c20
test eax, eax
je 0x436748
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 4], 0
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax]
jne 0x4366fb
cmp dword [eax], 2
jl 0x436748
cmp dword [eax + 0x34], 0
je 0x436748
mov esi, 5
cmp esi, edx
je 0x43674a
cmp edx, 5
je 0x43670e
cmp esi, 5
jne 0x43674a
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x3e], 0
je 0x437329
cmp dword [eax + 0x98], 1
jg 0x437329
cmp edx, 5
jne 0x436788
call fcn.0041c9b0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x436750
mov ecx, dword [esp + 0x28]
mov edx, esi
call fcn.0041c750
jmp 0x43679f
mov esi, edx
mov eax, dword [esp + 0x10]
test eax, eax
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x28]
cmove edx, esi
call fcn.0041c750
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [ecx + edi*4 + 8]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*8]
mov ecx, 0xa02
mov dword [esp + 0x1c], edi
mov word [edi + 8], cx
cmp eax, 6
jne 0x4367b7
xor ecx, ecx
jmp 0x4367be
cmp edx, 4
jne 0x436797
mov edx, 2
call fcn.0041c750
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x436750
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.00428600
mov dword [esp + 0x10], eax
jmp 0x43674e
mov ecx, dword [eax*4 + 0x4d3b5c]
mov dword [edi + 0x10], ecx
call fcn.00410c20
mov dword [edi + 0xc], eax
mov ecx, edi
mov al, byte [esp + 0x4c]
movzx edx, al
mov byte [edi + 0xa], 1
call fcn.00429490
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
lea ecx, [ecx + 0x2c]
call fcn.0046a6b0
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00422170
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp ecx, 0x65
jne 0x4319bf
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], 0
mov ecx, dword [eax + edi*4 + 8]
dec ecx
xor edx, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
jmp 0x434dc0
mov eax, dword [esp + 0x18]
cmp dword [eax + edi*4 + 4], 0
jne 0x43685f
call fcn.0042ecc0
jmp case.default.0x43196a
mov edx, dword [esp + 0x20]
or dword [edx + 0x58], 0x20
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov al, byte [edx + edi*4 + 0xc]
mov byte [esp + 0xb4], al
test al, al
jne 0x43688c
test dword [ecx + 0x18], 0x4000
jne case.default.0x43196a
mov eax, dword [edx + edi*4 + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
push dword [esp + 0xb4]
mov edx, dword [edx + edi*4 + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.004284d0
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
cmp cl, 6
jne 0x4319bf
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x24]
push str.database_table_is_locked:__s
push dword [esp + 0x1c]
add eax, 0x2c
push eax
call fcn.0040e600
mov ecx, dword [esp + 0x24]
add esp, 0x10
jmp case.default.0x43196a
mov eax, dword [esp + 0x18]
mov esi, dword [eax + edi*4 + 0x10]
mov edx, esi
call fcn.0046bc70
mov dword [esp + 0x10], eax
test esi, esi
je 0x431a94
mov edx, dword [esi + 8]
mov ecx, dword [esp + 0x20]
call fcn.0042ed90
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x20]
add eax, 0x2c
push eax
mov eax, dword [esp + 0x1c]
push dword [eax + edi*4 + 0x10]
mov edx, dword [eax + edi*4 + 4]
call fcn.0046b7a0
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [esp + 0x10], eax
jmp case.default.0x43196a
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], 0
mov eax, dword [ecx + 0x58]
and eax, 0xfffffffb
or eax, 8
mov dword [ecx + 0x58], eax
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [esi + 0x10]
add ecx, ecx
mov edx, dword [edx + edi*4 + 0x10]
push dword [eax + ecx*8]
mov ecx, esi
call fcn.00446df0
mov esi, eax
add esp, 4
test esi, esi
je 0x4369b8
cmp dword [esi + 0x3c], 0
je 0x4369b8
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.0046ac10
mov edi, eax
mov ecx, dword [edi + 4]
push dword [edi + 8]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x14]
call ecx
mov ecx, eax
add esp, 4
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x4369b8
mov dword [edi + 8], eax
mov ecx, edi
mov dword [esi + 0x3c], eax
call fcn.0046aba0
mov ecx, dword [esp + 0x20]
and dword [ecx + 0x58], 0xfffffff3
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0xd8]
mov dword [esp + 0xd8], 0
push ecx
mov eax, dword [eax + edi*4 + 0x10]
mov esi, dword [eax + 8]
push esi
mov eax, dword [esi]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, esi
mov dword [esp + 0x10], eax
call fcn.0042ed90
cmp dword [esp + 0x10], 0
jne 0x431a94
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x20]
push 0
push 0xffffffffffffffff
mov dword [eax], esi
mov eax, dword [esp + 0x20]
push 0
mov edx, dword [eax + edi*4 + 4]
call fcn.004314f0
add esp, 0xc
test eax, eax
je 0x436a56
mov ecx, dword [esp + 0xd8]
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x14]
jmp 0x4318f6
mov eax, dword [esp + 0x14]
push dword [esp + 0xd8]
mov byte [eax + 0x40], 1
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [esp + 0x18]
add esp, 4
jmp 0x434db8
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
add esi, 0x28
mov eax, dword [ecx + edi*4 + 0xc]
mov ecx, dword [ecx + edi*4 + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea esi, [esi + edx*8]
movd xmm0, esi
mov dword [esp + 0x28], esi
mov eax, dword [eax + 0x38]
mov esi, dword [esi]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0xd8], eax
mov eax, dword [eax + 0x24]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
test esi, esi
jle 0x436b7b
cmp esi, 8
jb 0x436b5b
cmp dword [0x501010], 2
jl 0x436b5b
movaps xmm2, xmmword [0x4ec500]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x436b05
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edi, esi
sub edi, eax
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x436b10
mov edi, dword [esp + 0x50]
cmp ecx, esi
jge 0x436b7b
mov edi, dword [esp + 0x28]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x50]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x436b70
mov ecx, dword [esp + 0x20]
push edx
push esi
mov esi, dword [esp + 0x48]
mov eax, dword [ecx + 0x58]
and eax, 0xfffffff7
or eax, 4
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x20]
push dword [eax + edi*4 + 0x10]
mov eax, dword [esp + 0x3c]
push dword [esp + 0x48]
push esi
mov eax, dword [eax + 0x20]
call eax
mov edx, dword [esp + 0x4c]
add esp, 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov ecx, eax
and dword [eax + 0x58], 0xfffffff3
call fcn.0042ed90
cmp dword [esp + 0x10], 0
jne 0x436be6
mov eax, dword [esp + 0x30]
push esi
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
je 0x436be6
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 8]
dec eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0x14]
mov byte [eax + 0x19], 0
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + edi*4 + 0xc]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
cmp byte [ecx + 0x19], 0
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov dword [esp + 0x28], edx
je 0x436c38
mov ecx, edx
call fcn.00429e10
mov ecx, dword [esp + 0x14]
jmp case.default.0x43196a
mov eax, dword [ecx + 0x24]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movaps xmmword [esp + 0x160], xmm0
movq qword [esp + 0x170], xmm0
mov dword [esp + 0x178], 0
mov dword [esp + 0x160], edx
mov ax, word [edx + 8]
and ax, word [esp + 0x5c]
or ax, 1
mov word [edx + 8], ax
mov eax, dword [esp + 0x18]
push dword [eax + edi*4 + 8]
lea eax, [esp + 0x164]
push eax
mov eax, dword [esp + 0x38]
push dword [eax + 0x24]
mov eax, dword [ecx + 0x2c]
call eax
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov edx, esi
mov dword [esp + 0x10], eax
call fcn.0042ed90
mov eax, dword [esp + 0x174]
test eax, eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x28]
cmovne ecx, eax
mov dword [esp + 0x10], ecx
jmp 0x43657d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x30], ecx
cmp byte [ecx + 0x19], 0
jne 0x4319bf
mov eax, dword [ecx + 0x24]
mov edi, dword [esp + 0x20]
mov esi, dword [eax]
mov eax, dword [esp + 0x20]
mov edx, dword [esi]
mov eax, dword [eax + 0x58]
and eax, 0xfffffff7
mov dword [esp + 0x28], edx
or eax, 4
mov dword [edi + 0x58], eax
push dword [ecx + 0x24]
mov eax, dword [edx + 0x24]
call eax
mov dword [esp + 0x14], eax
add esp, 4
mov eax, edi
mov edx, esi
mov ecx, eax
and dword [eax + 0x58], 0xfffffff3
call fcn.0042ed90
cmp dword [esp + 0x10], 0
mov edi, dword [esp + 0x50]
jne 0x436d40
mov eax, dword [esp + 0x30]
push dword [eax + 0x24]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x436d4d
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 8]
dec ecx
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x14]
cmp dword [edi + 0xf0], 0
jne 0x4374a7
mov ecx, dword [edi + 0x124]
test ecx, ecx
je 0x436d99
mov eax, dword [esp + 0x74]
cmp eax, dword [esp + 0x78]
jb 0x436d99
mov esi, dword [edi + 0x12c]
xor edx, edx
div esi
push dword [edi + 0x128]
sub esi, edx
add esi, dword [esp + 0x78]
mov dword [esp + 0x7c], esi
call ecx
add esp, 4
test eax, eax
jne 0x437392
mov ecx, edi
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [edx + edi*4 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 2
lea esi, [edx + eax*8]
je 0x436de5
cmp byte [esi + 0xa], 1
je 0x436de5
mov dl, 1
mov ecx, esi
call fcn.00410580
mov ecx, eax
mov dword [esp + 0x10], ecx
test ecx, ecx
jne 0x431a94
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
push dword [esi + 0x10]
push ecx
mov eax, dword [eax + 0x4c]
call eax
mov esi, dword [esp + 0x28]
add esp, 8
mov edx, dword [esp + 0x30]
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.0042ed90
and dword [esi + 0x58], 0xffffffdf
mov ecx, dword [esp + 0x14]
jmp 0x434db8
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 0x10]
mov esi, dword [edx + edi*4 + 8]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
cmp dword [eax + 0x34], 0
je 0x434db8
mov al, byte [ecx + 0x44]
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x1b8], al
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + edi*4 + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x436e6b
nop
mov dword [edx + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x436e60
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov al, byte [eax + edi*4 + 3]
mov byte [ecx + 0x44], al
lea eax, [esp + 0x1d8]
push eax
mov eax, dword [esp + 0x2c]
push edx
push esi
mov esi, dword [esp + 0x3c]
mov eax, dword [eax + 0x34]
push esi
call eax
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x10], eax
mov edx, esi
mov al, byte [esp + 0x1b8]
mov byte [ecx + 0x44], al
mov ecx, dword [esp + 0x20]
call fcn.0042ed90
cmp dword [esp + 0x10], 0
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
jne 0x436ee4
cmp dword [esi + edi*4 + 4], 0
je 0x436ee4
mov eax, dword [esp + 0x1d8]
mov edx, dword [esp + 0x1dc]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [esp + 0x10]
cmp dl, 0x13
jne 0x436f44
mov eax, dword [esi + edi*4 + 0x10]
cmp byte [eax + 0x10], 0
je 0x436f44
mov al, byte [esi + edi*4 + 3]
cmp al, 4
jne 0x436f18
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], 0
jmp 0x4318f6
cmp al, 5
jne 0x436f31
mov esi, dword [esp + 0x20]
mov eax, 2
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x434dc0
mov esi, dword [esp + 0x20]
movzx eax, al
mov byte [esi + 0x56], al
mov esi, dword [esp + 0x1c]
jmp 0x434dc0
mov esi, dword [esp + 0x20]
inc dword [esi + 0x5c]
mov esi, dword [esp + 0x1c]
jmp 0x434dc0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x2c]
mov dword [esi], eax
mov dword [esi + 4], 0
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + edi*4 + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + edi*4 + 0xc]
test ecx, ecx
je 0x436fab
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x2c]
cmp edi, ecx
cmovb edi, ecx
jmp 0x436fad
xor edi, edi
cmp byte [esi + 9], 0
je 0x436fc3
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x436fc3
mov ecx, esi
call fcn.0041f0a0
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
jle 0x436fd2
mov dword [eax + 0x9c], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0x9c]
je 0x436feb
add dword [esi + 0xc], 0xffffffff
jne 0x436feb
mov ecx, esi
call fcn.0041f060
mov esi, dword [esp + 0x1c]
mov eax, edi
mov ecx, dword [esp + 0x14]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.default.0x43196a
mov edx, dword [esp + 0x18]
mov eax, dword [edx + edi*4 + 8]
test eax, eax
je 0x437011
dec eax
mov dword [esp + 0x2c], eax
cmp dword [ecx + 0xac], 0
je case.default.0x43196a
mov eax, dword [esp + 0x20]
test dword [eax + 0x58], 0x800
jne case.default.0x43196a
mov edx, dword [edx + edi*4 + 0x10]
mov edi, eax
test edx, edx
jne 0x437047
mov edx, dword [edi + 0xa8]
test edx, edx
je case.default.0x43196a
mov ecx, edi
call fcn.00431040
mov edi, dword [esp + 0x14]
mov esi, eax
push esi
push dword [edi + 0xb0]
mov ecx, dword [edi + 0xac]
call ecx
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.0040e0e0
mov ecx, edi
jmp 0x434db8
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
jmp 0x434dc0
mov ecx, eax
jmp 0x434db8
mov esi, dword [esp + 0x20]
mov ecx, dword [edx + edi*4 + 4]
mov dword [esi + 0x50], ecx
mov al, byte [edx + edi*4 + 8]
mov byte [esi + 0x56], al
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x4c], eax
test ecx, ecx
je 0x43712f
mov al, byte [edx + edi*4 + 3]
test al, al
je 0x4370e2
movzx eax, al
mov eax, dword [eax*4 + 0x4d30bc]
test eax, eax
je 0x4370e4
mov ecx, dword [edx + edi*4 + 0x10]
test ecx, ecx
je 0x4370e4
push ecx
push eax
push str._s_constraint_failed:__s
push dword [esp + 0x20]
add esi, 0x2c
push esi
call fcn.0040e600
add esp, 0x14
jmp 0x43710a
xor eax, eax
mov ecx, dword [edx + edi*4 + 0x10]
add esi, 0x2c
test ecx, ecx
je 0x4370f7
push ecx
push 0x4e518c
jmp 0x4370fd
push eax
push str._s_constraint_failed
push dword [esp + 0x1c]
push esi
call fcn.0040e600
add esp, 0x10
push dword [esi]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
push dword [esi + 0xa8]
push dword [esp + 0x34]
push str.abort_at__d_in___s_:__s
push dword [eax + edi*4 + 4]
call fcn.004101d0
add esp, 0x14
mov ecx, esi
call fcn.0042cd90
cmp eax, 5
jne 0x437441
mov edi, eax
mov dword [esi + 0x50], edi
jmp 0x434e50
mov ecx, 9
mov dword [esp + 0x10], ecx
jmp 0x434dd5
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x5c], 0
mov eax, dword [edx + 0x48]
add eax, 2
or eax, 1
mov dword [edx + 0x48], eax
mov eax, dword [ecx + edi*4 + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [edx + 0x14], esi
cmp dword [ecx + edi*4 + 8], 0
jle 0x4371cb
nop dword [eax + eax]
mov eax, 0x1000
test word [esi + 8], ax
je 0x4371aa
mov ecx, esi
call fcn.00429600
test eax, eax
jne 0x4374e6
mov ecx, esi
call fcn.00429710
mov eax, dword [esp + 0x5c]
add esi, 0x28
mov ecx, dword [esp + 0x18]
inc eax
mov dword [esp + 0x5c], eax
cmp eax, dword [ecx + edi*4 + 8]
jl 0x437190
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x40], 0
jne 0x4374ea
mov eax, dword [esp + 0x2c]
mov edi, 0x64
inc eax
mov dword [edx + 0x4c], eax
jmp 0x434e50
mov dword [esp + 0x10], 0x14
jmp 0x434bcd
mov eax, dword [esp + 0x20]
push str.cannot_open_savepoint___SQL_statements_in_progress
push edx
add eax, 0x2c
push eax
call fcn.0040e600
mov ecx, 5
add esp, 0xc
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x434dd5
push str.cannot_release_savepoint___SQL_statements_in_progress
push eax
mov eax, dword [esp + 0x28]
add eax, 0x2c
push eax
call fcn.0040e600
mov ecx, 5
add esp, 0xc
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x434dd5
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x4c], edx
mov byte [edi + 0x3e], 0
mov edi, 5
mov dword [eax + 0x50], edi
jmp 0x434e50
mov dword [esp + 0x10], 8
jmp 0x434bd1
mov eax, dword [esp + 0x20]
mov edi, 5
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x4c], edx
mov dword [eax + 0x50], edi
jmp 0x434e50
mov ecx, 0x11a80
call fcn.0047bb70
mov dword [esp + 0x10], eax
jmp 0x434bcd
inc dword [esp + 0x2c]
mov ecx, 0x204
mov dword [esp + 0x10], ecx
jmp 0x434dd5
mov ecx, dword [esp + 0x10]
cmp ecx, 0xc0a
je 0x434dd5
call fcn.00479cc0
mov edi, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x24]
push 0x4e518c
add eax, 0x2c
push edi
push eax
call fcn.0040e600
mov ecx, dword [esp + 0x20]
add esp, 0x10
jmp 0x434dd9
mov edi, dword [esp + 0x20]
mov ecx, 6
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
mov byte [edi + 0x56], 2
jmp 0x434dd5
mov eax, dword [esp + 0x20]
push str.too_many_levels_of_trigger_recursion
add eax, 0x2c
mov dword [esp + 0x14], 1
push edi
push eax
call fcn.0040e600
add esp, 0xc
mov ecx, 1
inc dword [esp + 0x2c]
jmp 0x434dd9
mov edi, dword [esp + 0x14]
mov ecx, str.out_of
cmp esi, 5
mov dword [esp + 0x10], 1
mov eax, str.into
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x24]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add eax, 0x2c
push edi
push eax
call fcn.0040e600
add esp, 0x10
mov ecx, 1
inc dword [esp + 0x2c]
jmp 0x434dd9
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push str.string_or_blob_too_big
push ecx
add eax, 0x2c
push eax
call fcn.0040e600
mov ecx, 0x12
add esp, 0xc
mov dword [esp + 0x10], ecx
jmp 0x434dd5
mov ecx, 9
mov dword [esp + 0x10], ecx
jmp 0x434dd9
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edi*4 + 4]
mov edx, dword [eax + edi*4 + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
test ecx, ecx
je 0x4373d4
cmp byte [eax + 0x3e], 0
jne 0x4373d4
test edx, edx
jne 0x4373d4
cmp dword [eax + 0x9c], edx
jle 0x4373d4
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x437225
movzx eax, byte [eax + 0x3e]
cmp ecx, eax
jne 0x43741e
test ecx, ecx
jne 0x4373e7
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x4373f6
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
mov edi, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x24]
add eax, 0x2c
push edi
push eax
call fcn.0040e600
mov ecx, 1
add esp, 0xc
inc dword [esp + 0x2c]
mov dword [esp + 0x10], ecx
jmp 0x434dd9
test edx, edx
je 0x437457
mov edi, dword [esp + 0x14]
mov edx, 0x204
mov ecx, edi
call fcn.00479b70
mov esi, dword [esp + 0x20]
mov byte [edi + 0x3e], 1
mov ecx, edi
call fcn.004793f0
cmp dword [esi + 0x50], 0
mov edi, 0x65
mov eax, 1
cmovne edi, eax
jmp 0x434e50
mov esi, dword [esp + 0x20]
mov edx, 1
mov ecx, esi
call fcn.0042cd20
mov edi, eax
test edi, edi
jne 0x434e50
mov edi, dword [esp + 0x14]
mov ecx, esi
mov eax, dword [esp + 0x5c]
mov byte [edi + 0x3e], al
call fcn.0042cd90
cmp eax, 5
jne 0x43743a
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [esp + 0x5c]
mov byte [edi + 0x3e], al
mov edi, 5
mov dword [esi + 0x50], edi
jmp 0x434e50
mov edi, ecx
mov eax, dword [str.interrupted]
mov ecx, str.unknown_error
mov edx, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x10], 9
cmovne ecx, eax
push ecx
push 0x4e518c
lea eax, [edx + 0x2c]
mov dword [edx + 0x50], 9
push edi
push eax
call fcn.0040e600
add esp, 0x10
mov ecx, 9
jmp 0x434dd9
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
push str.out_of_memory
push ecx
add eax, 0x2c
mov byte [ecx + 0x40], 1
push eax
call fcn.0040e600
mov ecx, 7
add esp, 0xc
mov dword [esp + 0x10], ecx
jmp 0x434dd5