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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x294
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dl, byte [ecx + 0x3e]
mov byte [esp + 0x3b], dl
mov edx, dword [eax + 8]
push ebx
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 0x20]
push esi
xor esi, esi
cmp dword [eax + 0x50], 7
push edi
mov edi, dword [eax + 4]
mov dword [esp + 0x78], edx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x48], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xa4], esi
mov dword [esp + 0x7c], edx
je 0x455452
mov dword [eax + 0x50], esi
mov dword [eax + 0x80], esi
mov dword [eax + 0x84], esi
mov dword [eax + 0x14], esi
mov edx, dword [ecx + 0xf0]
test edx, edx
mov dword [ecx + 0x190], esi
jne 0x455560
mov eax, dword [eax + 0x4c]
lea eax, [eax + eax*4]
lea edx, [edi + eax*4]
mov dword [esp + 0x1c], edx
jmp 0x451e90
cmp byte [ecx + 0x41], 0
jne 0x455452
mov ebx, dword [esp + 0x1c]
mov cl, byte [ebx]
add dword [esp + 0xb4], 1
movzx eax, cl
lea edx, [eax - 1]
cmp edx, 0x9d
ja case.0x451ec1.10
movzx edx, byte [edx + 0x455da4]
jmp dword [edx*4 + 0x455c0c]
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov edx, ebx
sub edx, dword [esp + 0x48]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov word [ecx + 8], 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4559e1
mov ebx, dword [ebx + 4]
mov eax, dword [esp + 0x18]
lea edx, [ebx + ebx*4]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x48]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4]
mov word [eax + 8], 0x80
jmp 0x4559ef
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*8]
mov eax, dword [ebx + 0xc]
sub eax, 1
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov word [ecx + 8], 4
cmp dword [ebx + 8], 0
jne 0x4559e1
jmp case.0x451ec1.10
mov ebx, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [ebx + ebx*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x48]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*4 - 0x14]
mov dword [esp + 0x1c], edx
mov word [eax + 8], 0x80
jmp 0x4559f3
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x48]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov esi, dword [ecx]
sub ebx, edi
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx + 4], edx
lea edx, [esi + esi*4]
mov dword [ecx], eax
lea eax, [edi + edx*4]
mov word [ecx + 8], 4
mov dword [esp + 0x1c], eax
jmp 0x4559f3
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je case.0x451ec1.10
mov edi, dword [ebp + 8]
mov ecx, ebx
sub ecx, dword [esp + 0x48]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp dword [ebx + 4], 0
jne 0x455a12
mov ecx, dword [edi + 0xa8]
test ecx, ecx
je 0x455a12
mov eax, dword [ecx + 4]
mov edx, dword [esp + 0x14]
add dword [edi + 0xb0], 0xffffffff
mov dword [edi + 0xa8], eax
mov eax, dword [edi + 0x5c]
add dword [edx + 0x54], eax
mov esi, ecx
mov dword [edx + 0x50], eax
call fcn.0044db10
cmp dword [ebx + 8], 4
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], ecx
jne 0x452051
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4 + 8]
sub eax, 1
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x18], edx
lea ecx, [ecx + eax*4]
jmp 0x4559ef
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test word [ecx + edx*8 + 8], 0x2460
lea eax, [ecx + edx*8]
je 0x452097
call fcn.0041cae0
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x451ec1.10
mov word [eax + 8], 4
mov ecx, eax
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test word [ecx + edx*8 + 8], 0x2460
lea eax, [ecx + edx*8]
je 0x4520dc
call fcn.0041cae0
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x451ec1.10
mov word [eax + 8], 4
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test word [ecx + edx*8 + 8], 0x2460
lea eax, [ecx + edx*8]
je 0x452113
call fcn.0041cae0
jmp 0x452119
mov word [eax + 8], 4
mov eax, dword [ebx + 0x10]
mov byte [ebx], 0x19
call fcn.0040e260
mov edx, dword [esp + 0x14]
mov dword [ebx + 4], eax
cmp eax, dword [edx + 0x58]
jg 0x45299b
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*4]
test word [edx + eax*8 + 8], 0x2460
lea eax, [edx + eax*8]
je 0x452153
call fcn.0041cae0
jmp 0x452159
mov word [eax + 8], 4
mov word [eax + 8], 0xa02
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov edx, dword [ebx + 4]
mov cl, byte [esp + 0x47]
mov dword [eax + 0xc], edx
mov byte [eax + 0xa], cl
cmp byte [ebx + 3], 0
je case.0x451ec1.10
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x18]
lea ecx, [ecx + ecx*4]
mov esi, dword [edx + ecx*8]
or esi, dword [edx + ecx*8 + 4]
je case.0x451ec1.10
mov word [eax + 8], 0xa10
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test word [ecx + edx*8 + 8], 0x2460
lea eax, [ecx + edx*8]
je 0x4521bd
call fcn.0041cae0
jmp 0x4521c3
mov word [eax + 8], 4
mov esi, dword [ebx + 0xc]
sub esi, dword [ebx + 8]
mov edx, dword [ebx + 4]
neg edx
sbb edx, edx
and edx, 0x100
add edx, 1
test esi, esi
mov edi, eax
movzx eax, dx
mov dword [esp + 0x30], eax
mov word [edi + 8], ax
jle case.0x451ec1.10
mov edi, edi
add edi, 0x28
mov eax, edi
call fcn.0041b040
mov ax, word [esp + 0x30]
sub esi, 1
test esi, esi
mov word [edi + 8], ax
jg 0x4521f0
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov cx, word [eax + 8]
and cx, 0xff7f
or cx, 1
mov word [eax + 8], cx
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test word [ecx + edx*8 + 8], 0x2460
lea eax, [ecx + edx*8]
je 0x452251
call fcn.0041cae0
jmp 0x452257
mov word [eax + 8], 4
mov edx, dword [ebx + 4]
mov ebx, dword [ebx + 0x10]
mov esi, eax
push 0
push edx
xor eax, eax
mov ecx, esi
call fcn.00421650
mov al, byte [esp + 0x4f]
add esp, 8
mov byte [esi + 0xa], al
jmp 0x4559f3
mov eax, dword [ebx + 4]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0x3c]
lea ecx, [eax + eax*4]
lea edi, [edx + ecx*8 - 0x28]
mov ecx, edi
call fcn.0040c560
test eax, eax
jne 0x45299b
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
test word [ecx + eax*8 + 8], 0x2460
lea eax, [ecx + eax*8]
je 0x4522c7
call fcn.0041cae0
push 0x800
push edi
push eax
call fcn.0041cc10
add esp, 0xc
jmp case.0x451ec1.10
push 0x800
push edi
push eax
mov word [eax + 8], 4
call fcn.0041cc10
add esp, 0xc
jmp case.0x451ec1.10
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], edx
lea edx, [ebx + ebx*4]
lea edi, [eax + ecx*8]
lea esi, [eax + edx*8]
mov edi, edi
mov ebx, edi
mov eax, esi
call fcn.0041e360
test word [esi + 8], 0x1000
je 0x452320
mov eax, esi
call fcn.0041f6c0
test eax, eax
jne 0x455452
add edi, 0x28
add esi, 0x28
sub dword [esp + 0x20], 1
jne 0x452300
jmp 0x4559f3
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [ecx + edx*8]
lea esi, [ecx + eax*8]
nop
push 0x1000
push edi
push esi
call fcn.0041cc10
add esp, 0xc
test word [esi + 8], 0x1000
je 0x45237a
mov eax, esi
call fcn.0041f6c0
test eax, eax
jne 0x455452
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, eax
sub eax, 1
test ecx, ecx
mov dword [esp + 0x20], eax
je case.0x451ec1.10
add esi, 0x28
add edi, 0x28
jmp 0x452350
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*8]
push 0x1000
push ecx
mov ecx, dword [ebx + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
push eax
call fcn.0041cc10
add esp, 0xc
jmp case.0x451ec1.10
mov esi, dword [ebp + 8]
push 0
mov eax, esi
call fcn.00429bc0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x451ec1.10
push 1
push esi
call fcn.004403d0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x451ec1.10
mov ecx, dword [esi + 0x48]
add ecx, 2
or ecx, 1
mov dword [esi + 0x48], ecx
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [eax + edx*8]
mov dword [esi + 0x14], edi
cmp dword [ebx + 8], 0
mov dword [esp + 0x30], 0
jle 0x452455
lea ecx, [ecx]
test word [edi + 8], 0x1000
je 0x45243b
mov eax, edi
call fcn.0041f6c0
test eax, eax
jne 0x455452
mov ebx, dword [esp + 0x1c]
mov eax, edi
call fcn.00421940
mov eax, dword [esp + 0x30]
add eax, 1
add edi, 0x28
cmp eax, dword [ebx + 8]
mov dword [esp + 0x30], eax
jl 0x452420
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x41], 0
jne 0x455452
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x48]
mov ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov dword [esi + 0x4c], ecx
mov eax, 0x64
jmp 0x452a0b
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea esi, [edi + edx*8]
mov dl, byte [esi + 8]
lea ecx, [edi + ecx*8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
movzx eax, word [ecx + 8]
or dl, al
test dl, 1
mov dword [esp + 0x2c], ecx
je 0x4524ca
mov eax, edi
call fcn.0041b040
jmp case.0x451ec1.10
test eax, 0x4000
je 0x4524e4
mov eax, ecx
call fcn.0041f660
test eax, eax
jne 0x455452
mov ecx, dword [esp + 0x2c]
test word [esi + 8], 0x4000
je 0x4524ff
mov eax, esi
call fcn.0041f660
test eax, eax
jne 0x455452
mov ecx, dword [esp + 0x2c]
test byte [ecx + 8], 0x12
jne 0x45251d
push 0
mov eax, ecx
call fcn.00421880
add esp, 4
test eax, eax
jne 0x455452
mov ecx, dword [esp + 0x2c]
test byte [esi + 8], 0x12
jne 0x45253b
push 0
mov eax, esi
call fcn.00421880
add esp, 4
test eax, eax
jne 0x455452
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov ebx, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x45299b
jl 0x452560
cmp ebx, eax
ja 0x45299b
xor ecx, ecx
cmp edi, esi
sete cl
lea eax, [ebx + 2]
push ecx
call fcn.0041e510
add esp, 4
test eax, eax
jne 0x455452
mov dx, word [edi + 8]
and dx, 0xbe02
or dx, 2
cmp edi, esi
mov word [edi + 8], dx
je 0x4525a4
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov edx, dword [edi + 0x10]
push eax
push ecx
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [edi + 0x10]
add eax, dword [esi + 0xc]
push ecx
push edx
push eax
call sub.msvcrt.dll_memcpy
mov ecx, dword [edi + 0x10]
mov al, byte [esp + 0x53]
mov byte [ebx + ecx], 0
mov edx, dword [edi + 0x10]
mov byte [ebx + edx + 1], 0
add esp, 0xc
or word [edi + 8], 0x200
mov dword [edi + 0xc], ebx
mov byte [edi + 0xa], al
jmp 0x4559f3
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea esi, [edi + ecx*8]
mov eax, esi
call fcn.004150f0
movzx edx, ax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, edi
mov dword [esp + 0x30], edx
call fcn.004150f0
movzx ecx, ax
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edx, [eax + edx*8]
mov al, byte [edi + 8]
or al, byte [esi + 8]
mov dword [esp + 0x34], edx
test al, 1
jne 0x4527d8
and cl, byte [esp + 0x30]
test cl, 4
je 0x452678
mov edx, dword [edi]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [esp + 0x58], edx
mov edx, dword [edi + 4]
mov dword [esp + 0x5c], edx
movzx edx, byte [ebx]
add edx, 0xffffffa7
cmp edx, 3
ja case.default.0x45265a
jmp dword [edx*4 + 0x455e44]
push ecx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0040dba0
add esp, 0xc
test eax, eax
je 0x452764
mov edx, esi
call fcn.004134a0
mov dword [esp + 0xac], edx
mov edx, edi
mov esi, eax
call fcn.004134a0
movzx ecx, byte [ebx]
add ecx, 0xffffffa7
cmp ecx, 3
ja case.default.0x45269e
jmp dword [ecx*4 + 0x455e54]
push ecx
push eax
lea edx, [esp + 0x60]
call fcn.00411ba0
add esp, 8
test eax, eax
jne 0x452678
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x452ba0
push ecx
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.00411a90
add esp, 0xc
test eax, eax
jne 0x452678
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x452ba0
mov edx, eax
or edx, ecx
je 0x4527d8
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x45271e
cmp dword [esp + 0x58], 0
jne 0x45271e
cmp dword [esp + 0x5c], 0x80000000
je 0x452678
push ecx
mov ecx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x64]
push eax
push ecx
call fcn.0047add0
jmp 0x45275c
mov edx, eax
or edx, ecx
je 0x4527d8
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x45274b
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x64]
push eax
push ecx
call fcn.0047acd0
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x452ba0
add eax, esi
adc edx, dword [esp + 0xac]
jmp 0x452809
sub eax, esi
sbb edx, dword [esp + 0xac]
jmp 0x452809
mov ecx, dword [esp + 0xac]
push ecx
push esi
push edx
push eax
call fcn.0047ad90
jmp 0x452809
mov ecx, dword [esp + 0xac]
mov edi, esi
or edi, ecx
je 0x4527d8
push ecx
push esi
push edx
push eax
call fcn.0047add0
jmp 0x452809
mov edi, dword [esp + 0xac]
mov dword [esp + 0x18c], edi
mov edi, esi
or edi, dword [esp + 0xac]
mov ecx, esi
jne 0x4527e6
mov eax, dword [esp + 0x34]
call fcn.0041b040
jmp case.0x451ec1.10
and esi, dword [esp + 0xac]
cmp esi, 0xffffffff
jne 0x4527f9
lea ecx, [esi + 2]
xor esi, esi
jmp 0x452800
mov esi, dword [esp + 0x18c]
push esi
push ecx
push edx
push eax
call fcn.0047acd0
mov ecx, dword [esp + 0x34]
mov dword [ecx + 4], edx
mov dx, word [ecx + 8]
and dx, 0xbe04
or dx, 4
mov dword [ecx], eax
mov word [ecx + 8], dx
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
test eax, eax
je case.0x451ec1.10
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
push 0
push 0
lea eax, [ecx + eax*8]
call fcn.0041e490
add esp, 8
jmp case.0x451ec1.10
movzx ebx, byte [ebx + 3]
mov esi, dword [esp + 0x14]
lea edx, [ebx*4 + 0x1c]
push 0
push edx
call fcn.00417290
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x455452
mov esi, dword [esp + 0x1c]
mov dword [ecx], 0
mov eax, dword [esi + 0x10]
mov dword [ecx + 4], eax
mov edx, esi
sub edx, dword [esp + 0x48]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 8]
mov byte [ecx + 0x1a], bl
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [esi + 1], 0xec
mov dword [esi + 0x10], ecx
mov byte [esi], 0x24
mov ebx, esi
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x18]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
cmp dword [esi], eax
mov dword [esp + 0x34], eax
je 0x4528ef
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi], eax
js 0x4528ef
lea edx, [esi + ecx*4 + 0x1c]
mov eax, dword [ebx + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx], eax
sub ecx, 1
sub edx, 4
test ecx, ecx
jge 0x4528d8
mov eax, dword [esi]
mov cx, word [eax + 8]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x78]
and cx, 0xbe01
or cx, 1
mov word [eax + 8], cx
mov eax, dword [esp + 0x7c]
mov byte [esi + 0x19], 0
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], eax
movzx eax, byte [esi + 0x1a]
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xc]
lea edx, [esi + 0x1c]
push edx
push eax
push esi
call ecx
mov edx, dword [edi + 0x20]
mov eax, dword [edi + 0x24]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
je 0x45297e
cmp dword [esi + 0x14], 0
je 0x45296a
mov ecx, dword [esi]
push ecx
call fcn.00424640
mov edi, dword [ebp + 8]
add esp, 4
push eax
push 0x483c34
call fcn.00427470
mov edx, dword [esi + 0x14]
add esp, 8
mov dword [esp + 0x10], edx
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebp + 8]
push eax
push ecx
push edx
call fcn.00416840
add esp, 0xc
mov eax, dword [esp + 0x34]
test byte [eax + 8], 0x12
je case.0x451ec1.10
mov ecx, dword [esi]
call fcn.0040c560
test eax, eax
je case.0x451ec1.10
mov edi, dword [ebp + 8]
push str.string_or_blob_too_big
call fcn.00427470
mov dword [esp + 0x14], 0x12
add esp, 4
mov edi, dword [esp + 0x14]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0xa0]
push eax
mov ebx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x50]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
mov ecx, ebx
mov dword [esi + 0x50], ebx
call fcn.004275c0
add esp, 0x10
call fcn.00450c60
cmp ebx, 0xc0a
jne 0x452a06
mov byte [edi + 0x41], 1
mov eax, 1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x78]
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0x7c]
mov dword [ecx + 0x24], edx
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0xb4]
add dword [ecx + 0x7c], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea esi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov cl, byte [edx + 8]
or cl, byte [esi + 8]
mov dword [esp + 0x34], edi
test cl, 1
je 0x452a6b
mov eax, edi
call fcn.0041b040
jmp case.0x451ec1.10
call fcn.004134f0
mov edi, edx
mov edx, esi
mov dword [esp + 0x80], eax
call fcn.004134f0
mov esi, eax
mov al, byte [ebx]
cmp al, 0x55
jne 0x452a96
and dword [esp + 0x80], esi
and edi, edx
jmp 0x452b90
cmp al, 0x56
jne 0x452aa8
or dword [esp + 0x80], esi
or edi, edx
jmp 0x452b90
mov ecx, esi
or ecx, edx
je 0x452b90
test edx, edx
jg 0x452ae0
jl 0x452abc
test esi, esi
jae 0x452ad5
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x452ae0
jg 0x452ace
cmp esi, 0xffffffc0
jbe 0x452ae0
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x452b14
jg 0x452ae0
cmp esi, 0x40
jb 0x452b14
test edi, edi
jg 0x452b06
jl 0x452af0
cmp dword [esp + 0x80], 0
jae 0x452b06
cmp al, 0x57
je 0x452b06
or eax, 0xffffffff
cdq
mov dword [esp + 0x80], eax
mov edi, edx
jmp 0x452b90
xor eax, eax
cdq
mov dword [esp + 0x80], eax
mov edi, edx
jmp 0x452b90
cmp al, 0x57
mov eax, dword [esp + 0x80]
mov edx, edi
mov ecx, esi
jne 0x452b38
call fcn.0047acb0
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x452b7b
call fcn.0047ae80
test edi, edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jg 0x452b7b
jl 0x452b5b
cmp dword [esp + 0x80], 0
jae 0x452b7b
mov ecx, 0x40
sub ecx, esi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.0047acb0
or dword [esp + 0x90], eax
or dword [esp + 0x94], edx
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x80]
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dx, word [eax + 8]
and dx, 0xbe04
or dx, 4
mov word [eax + 8], dx
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.00415310
mov eax, dword [ebx + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea esi, [eax + edx*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x452c49
test al, 8
jne 0x452bff
test al, 2
je 0x452c06
push 1
call fcn.00413310
add esp, 4
jmp 0x452c06
mov edx, esi
call fcn.00410370
movzx eax, word [esi + 8]
test al, 4
jne 0x452c49
cmp dword [ebx + 8], 0
jne 0x4559e1
mov dword [esp + 0x10], 0x14
mov edi, dword [esp + 0x14]
cmp byte [edi + 0x41], 0
je 0x455bc7
mov dword [esp + 0x10], 7
mov ecx, dword [esp + 0x10]
mov eax, str.unknown_error
call fcn.0040a090
jmp 0x455bf4
and eax, 0xbe04
or eax, 4
mov word [esi + 8], ax
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea ecx, [esi + ecx*8]
lea edx, [eax + eax*4]
movzx eax, word [ecx + 8]
mov dword [esp + 0x2c], ecx
movzx ecx, ax
lea edi, [esi + edx*8]
mov dword [esp + 0x38], ecx
movzx ecx, word [edi + 8]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
or cl, dl
test cl, 1
mov dword [esp + 0x24], edi
je 0x452cf3
mov al, byte [ebx + 3]
test al, al
jns 0x452cc2
test dl, 1
je 0x452cb8
mov eax, dword [esp + 0x34]
test al, 1
je 0x452cb8
test eax, 0x100
jne 0x452cb8
xor eax, eax
jmp 0x452df4
mov eax, 1
jmp 0x452df4
test al, 0x20
je 0x452ce6
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov cx, word [esi + edx*8 + 8]
lea eax, [esi + edx*8]
and cx, 0xbe01
or cx, 1
mov word [eax + 8], cx
jmp case.0x451ec1.10
test al, 0x10
jne 0x4559e1
jmp case.0x451ec1.10
mov bl, byte [ebx + 3]
and bl, 0x47
cmp bl, 0x43
jl 0x452d2b
and al, 0xe
cmp al, 2
jne 0x452d12
mov esi, dword [esp + 0x2c]
push 0
call fcn.00413310
add esp, 4
mov dl, byte [edi + 8]
and dl, 0xe
cmp dl, 2
jne 0x452d91
push 0
mov esi, edi
call fcn.00413310
add esp, 4
jmp 0x452d91
cmp bl, 0x42
jne 0x452d91
test al, 2
jne 0x452d60
test al, 0xc
je 0x452d60
mov esi, dword [esp + 0x2c]
push 1
mov eax, esi
call fcn.00421880
mov ax, word [esi + 8]
xor ax, word [esp + 0x3c]
add esp, 4
and ax, 0x1ff
xor ax, word [esi + 8]
movzx ecx, ax
mov dword [esp + 0x38], ecx
movzx eax, word [edi + 8]
test al, 2
jne 0x452d91
test al, 0xc
je 0x452d91
push 1
mov eax, edi
call fcn.00421880
mov dx, word [edi + 8]
xor dx, word [esp + 0x38]
add esp, 4
and dx, 0x1ff
xor dx, word [edi + 8]
movzx eax, dx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x2c]
mov esi, 0x4000
test word [eax + 8], si
je 0x452dad
call fcn.0041f660
and dword [esp + 0x38], 0xbfff
test word [edi + 8], si
je 0x452dc2
mov eax, edi
call fcn.0041f660
and dword [esp + 0x34], 0xbfff
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x41], 0
jne 0x455452
mov edx, dword [esp + 0x1c]
mov edi, dword [edx + 0x10]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
call fcn.00424b70
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
movzx ecx, byte [ebx]
add ecx, 0xffffffb2
cmp ecx, 4
ja case.default.0x452dff
jmp dword [ecx*4 + 0x455e64]
xor ecx, ecx
test eax, eax
sete cl
jmp 0x452e3a
xor ecx, ecx
test eax, eax
setne cl
jmp 0x452e3a
xor ecx, ecx
test eax, eax
setl cl
jmp 0x452e3a
xor ecx, ecx
test eax, eax
setle cl
jmp 0x452e3a
xor ecx, ecx
test eax, eax
setg cl
jmp 0x452e3a
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
mov ecx, dword [esp + 0x2c]
mov word [ecx + 8], dx
mov dx, word [esp + 0x34]
mov word [edi + 8], dx
test byte [ebx + 3], 0x20
je 0x453132
mov ecx, dword [ebx + 8]
lea ecx, [ecx + ecx*4]
mov dx, word [esi + ecx*8 + 8]
lea ecx, [esi + ecx*8]
and dx, 0xbe04
or dx, 4
mov word [ecx + 8], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xa4], eax
jmp case.0x451ec1.10
test byte [ebx + 3], 1
jne 0x452e9d
mov dword [esp + 0xa4], 0
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x20], edx
mov edx, dword [ebx + 8]
xor esi, esi
test eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], edx
jle 0x452f58
add ecx, 0x14
mov dword [esp + 0x3c], ecx
lea ebx, [ebx]
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x452ee0
mov edx, dword [eax + esi*4]
jmp 0x452ee2
mov edx, esi
mov eax, dword [esp + 0x3c]
mov edi, dword [eax]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x10]
movzx ecx, byte [eax + esi]
mov eax, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0x4c], ecx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x20]
add eax, edx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea eax, [eax + edx*8]
call fcn.00424b70
test eax, eax
mov dword [esp + 0xa0], eax
jne 0x452f41
add dword [esp + 0x3c], 4
add esi, 1
cmp esi, dword [esp + 0x40]
jl 0x452ed0
mov dword [esp + 0xa4], eax
jmp case.0x451ec1.10
cmp dword [esp + 0x4c], 0
je 0x452f58
mov ecx, dword [esp + 0xa0]
neg ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], 0
jmp case.0x451ec1.10
mov eax, dword [esp + 0xa0]
test eax, eax
jge 0x452f7b
mov ebx, dword [ebx + 4]
jmp 0x4559e4
mov eax, dword [esp + 0x48]
jne 0x452f89
mov ebx, dword [ebx + 8]
jmp 0x4559e8
mov ebx, dword [ebx + 0xc]
jmp 0x4559e8
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x18]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 8], 1
lea edx, [edi + edx*8]
je 0x452fac
mov esi, 2
jmp 0x452fbe
call fcn.004134f0
or eax, edx
je 0x452fbc
mov esi, 1
jmp 0x452fbe
xor esi, esi
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea edx, [edi + eax*8]
je 0x452fd5
mov eax, 2
jmp 0x452fe7
call fcn.004134f0
or eax, edx
je 0x452fe5
mov eax, 1
jmp 0x452fe7
xor eax, eax
cmp byte [ebx], 0x48
jne 0x452ff9
lea ecx, [eax + esi*2]
movzx eax, byte [esi + ecx + 0x480f8c]
jmp 0x453004
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x480fd0]
cmp eax, 2
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
jne 0x453028
mov dx, word [ecx + 8]
and dx, 0xbe01
or dx, 1
mov word [ecx + 8], dx
jmp case.0x451ec1.10
cdq
mov dword [ecx], eax
mov ax, word [ecx + 8]
and ax, 0xbe04
or ax, 4
mov dword [ecx + 4], edx
mov word [ecx + 8], ax
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.0041b040
test byte [edi + 8], 1
jne case.0x451ec1.10
mov edx, edi
mov word [esi + 8], 4
call fcn.004134f0
or eax, edx
jne 0x45308b
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x451ec1.10
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, esi
lea edi, [ecx + edx*8]
call fcn.0041b040
test byte [edi + 8], 1
jne case.0x451ec1.10
mov edx, edi
mov word [esi + 8], 4
call fcn.004134f0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x451ec1.10
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc0]
mov eax, dword [ebx + 4]
add eax, edx
cmp byte [eax], 0
jne 0x4559e1
mov byte [eax], 1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
lea edx, [edx + ecx*8]
je 0x453112
mov eax, dword [ebx + 0xc]
jmp 0x453132
call fcn.004134f0
or eax, edx
je 0x453122
mov eax, 1
jmp 0x453124
xor eax, eax
cmp byte [ebx], 0x2e
jne 0x453132
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
test eax, eax
jne 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
test byte [eax + edx*8 + 8], 1
jne 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 8], 1
je 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
lea esi, [edx + ecx*8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
mov edi, dword [edx + eax*4]
mov eax, dword [edi + 0x50]
mov ecx, dword [edi]
mov dword [esp + 0x34], eax
mov eax, edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x38], ecx
call fcn.0044d060
test eax, eax
mov dword [esp + 0x10], eax
jne 0x452c20
mov edx, dword [edi + 0x3c]
mov eax, dword [ebp + 8]
cmp edx, dword [eax + 0x48]
je 0x453300
cmp byte [edi + 0x19], 0
je 0x453204
cmp dword [esp + 0x38], 0
jne 0x4531f8
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov edx, dword [eax + 0xc]
mov dword [edi + 0x44], edx
mov dword [edi + 0x40], edx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x74], edx
mov dword [edi + 0x4c], eax
jmp 0x453289
mov eax, esi
call fcn.0041b040
jmp 0x4535b7
test byte [edi + 0x1c], 4
mov esi, dword [esp + 0x38]
jne 0x453245
mov eax, esi
call fcn.00410460
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xe0], ecx
mov edx, dword [esi + 0x14]
mov dword [esp + 0xe4], edx
mov edx, dword [esp + 0x38]
lea esi, [esp + 0x74]
call fcn.00410440
mov dword [edi + 0x4c], eax
mov eax, dword [esp + 0xe0]
mov dword [edi + 0x40], eax
jmp 0x453261
lea eax, [edi + 0x40]
push eax
call fcn.00413550
mov edx, dword [esp + 0x3c]
add esp, 4
lea esi, [esp + 0x74]
call fcn.00410420
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x40]
mov ecx, dword [esp + 0x74]
cmp eax, ecx
ja 0x453271
mov dword [edi + 0x44], eax
jmp 0x453274
mov dword [edi + 0x44], ecx
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
ja 0x45299b
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x4c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x48]
mov dword [edi + 0x3c], ecx
mov ecx, dword [edi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4532a9
movzx eax, al
mov dword [esp + 0x64], eax
mov ecx, 1
jmp 0x4532c1
lea esi, [esp + 0x64]
call fcn.00411bf0
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x4c]
movzx ecx, al
mov eax, dword [esp + 0x64]
cmp eax, 0x18003
movzx ecx, cl
mov dword [edi + 0x48], ecx
mov ecx, dword [esp + 0x34]
mov word [edi + 0x16], 0
mov dword [ecx], eax
ja 0x4532ed
cmp eax, dword [edi + 0x40]
ja 0x4532ed
cmp edx, eax
jae 0x45330e
xor eax, eax
mov dword [edi + 0x4c], eax
mov dword [edi + 0x44], eax
jmp 0x45330e
mov eax, 0x12369
call fcn.004276b0
mov dword [esp + 0x10], eax
jmp case.0x451ec1.10
movzx edx, word [edi + 0x16]
cmp edx, dword [esp + 0x24]
jg 0x4534e5
mov eax, dword [edi + 0x48]
mov ecx, dword [esp + 0x34]
cmp eax, dword [ecx]
jae 0x4534ba
mov eax, dword [edi + 0x4c]
test eax, eax
jne 0x4533ad
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], eax
mov edx, dword [edi + 0x1c]
shr edx, 2
not edx
mov eax, ecx
mov ecx, dword [eax]
and edx, 1
push edx
push ecx
mov ecx, dword [esp + 0x40]
lea edx, [esp + 0x130]
xor eax, eax
call fcn.0044d250
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x451ec1.10
mov edx, dword [esp + 0x138]
mov dword [esp + 0x3c], edx
jmp 0x4533b1
mov dword [esp + 0x3c], eax
movzx ecx, word [edi + 0x16]
mov eax, dword [esp + 0x34]
mov edx, dword [eax + ecx*4]
mov eax, dword [eax]
mov dword [esp + 0x64], edx
mov edx, dword [edi + 0x48]
add edx, dword [esp + 0x3c]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
lea eax, [edi + ecx*4 + 0x54]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x40], eax
mov al, byte [edx]
cmp al, 0x80
jae 0x4533f7
movzx eax, al
add edx, 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x2c], edx
jmp 0x453417
mov ecx, dword [esp + 0x2c]
lea esi, [esp + 0x54]
call fcn.00411bf0
mov esi, dword [esp + 0x4c]
movzx ecx, al
add dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x40]
mov dword [edx], eax
call fcn.0040c270
mov edx, eax
mov eax, dword [esp + 0x64]
add eax, edx
cmp eax, edx
mov dword [esp + 0x64], eax
jb 0x4534ad
mov edx, dword [esp + 0x34]
add dword [esp + 0x40], 4
add ecx, 1
cmp ecx, dword [esp + 0x24]
mov dword [edx + ecx*4], eax
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
jg 0x453455
cmp edx, dword [esp + 0x20]
jb 0x4533e1
mov word [edi + 0x16], cx
mov ecx, edx
sub ecx, dword [esp + 0x3c]
cmp dword [edi + 0x4c], 0
mov dword [edi + 0x48], ecx
jne 0x453486
lea eax, [esp + 0x128]
call fcn.0041cce0
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x2c]
mov word [esp + 0x130], 1
mov ecx, dword [esp + 0x20]
cmp edx, ecx
jb 0x453495
ja 0x45349a
cmp eax, dword [edi + 0x40]
jne 0x45349a
cmp eax, dword [edi + 0x40]
jbe 0x4534ba
mov eax, 0x123bd
call fcn.004276b0
mov dword [esp + 0x10], eax
jmp case.0x451ec1.10
mov edx, dword [esp + 0x20]
add edx, 1
mov dword [esp + 0x2c], edx
jmp 0x453455
movzx edx, word [edi + 0x16]
cmp edx, dword [esp + 0x24]
jg 0x4534e5
cmp byte [ebx + 1], 0xf8
jne 0x4531f8
mov eax, dword [ebx + 0x10]
push 0x800
push eax
push esi
call fcn.0041cc10
add esp, 0xc
jmp 0x4535b7
test word [esi + 8], 0x2460
je 0x4534f4
mov eax, esi
call fcn.0041b040
mov eax, dword [esp + 0x24]
mov ecx, dword [edi + eax*4 + 0x54]
mov edx, dword [edi + 0x44]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x34]
cmp edx, dword [ecx + eax*4 + 4]
jb 0x453527
mov ecx, dword [edi + 0x4c]
mov edx, dword [esp + 0x34]
add ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x54]
mov eax, esi
call fcn.004101e0
jmp 0x4535b0
mov cl, byte [ebx + 3]
test cl, 0xc0
mov eax, dword [esp + 0x54]
je 0x453540
cmp eax, 0xc
jb 0x45353c
test al, 1
je 0x453549
test cl, cl
js 0x453549
call fcn.0040c270
test eax, eax
jne 0x45356a
mov edx, dword [esp + 0x54]
mov ecx, 0xd
cmp ecx, edx
sbb ecx, ecx
not ecx
lea eax, [esp + 0xe0]
and ecx, eax
mov eax, esi
call fcn.004101e0
jmp 0x4535b0
mov ecx, dword [edi + 0x1c]
shr ecx, 2
not ecx
and ecx, 1
push ecx
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mov edx, esi
call fcn.0044d250
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x451ec1.10
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 0x10]
mov eax, esi
call fcn.004101e0
and word [esi + 8], 0xefff
mov dl, byte [esp + 0x47]
mov byte [esi + 0xa], dl
movzx ecx, word [esi + 8]
test ecx, 0x1000
je case.0x451ec1.10
mov eax, dword [esi + 0x10]
test eax, eax
mov dword [esp + 0x28], eax
je case.0x451ec1.10
movzx eax, cl
and eax, 0x12
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 0x30], eax
add eax, 2
cmp dword [esi + 0x18], eax
jge 0x45363e
push 0
mov edi, esi
call fcn.0041e510
add esp, 4
test eax, eax
jne 0x455452
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0x10]
push edi
push eax
push ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [esi + 0x10]
mov byte [edi + edx], 0
mov eax, dword [esi + 0x10]
mov byte [eax + edi + 1], 0
mov eax, dword [esp + 0x2c]
add esp, 0xc
or eax, 0x200
mov word [esi + 8], ax
jmp case.0x451ec1.10
mov edx, dword [esi + 0x14]
and ecx, 0xd
mov dword [esi + 0x10], edx
mov word [esi + 8], cx
jmp 0x453607
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x10]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov al, byte [esi]
test al, al
lea edi, [edx + ecx*8]
je case.0x451ec1.10
jmp 0x453670
mov ecx, edi
add esi, 1
call fcn.00422820
mov al, byte [esi]
add edi, 0x28
test al, al
jne 0x453670
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8 - 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x57]
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0xc]
xor edi, edi
test esi, esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0xbc], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], ecx
je 0x4536ff
mov al, byte [esi]
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x24]
call fcn.00422820
mov al, byte [esi + 1]
add dword [esp + 0x24], 0x28
add esi, 1
test al, al
jne 0x4536e7
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x30]
push edx
mov edx, esi
call fcn.0040c290
add esp, 4
mov dword [esp + 0x38], eax
mov dword [esi + 0x1c], eax
call fcn.0040c270
test word [esi + 8], 0x4000
mov dword [esp + 0x20], eax
je 0x453761
mov eax, edi
or eax, dword [esp + 0xbc]
je 0x45374a
mov eax, esi
call fcn.0041f660
test eax, eax
jne 0x455452
mov ebx, dword [esp + 0x1c]
jmp 0x453761
mov eax, dword [esi]
cdq
add dword [esp + 0x98], eax
mov eax, dword [esi]
adc dword [esp + 0x9c], edx
sub dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cdq
add edi, eax
adc dword [esp + 0xbc], edx
cmp dword [esp + 0x38], 0x7f
ja 0x45377d
mov eax, 1
jmp 0x45378c
mov ecx, dword [esp + 0x38]
push 0
push ecx
call fcn.0040dc80
add esp, 8
add dword [esp + 0x2c], eax
sub esi, 0x28
cmp esi, dword [esp + 0x28]
jae 0x453703
cmp dword [esp + 0x2c], 0x7e
jle 0x4537cb
mov eax, dword [esp + 0x2c]
cdq
push edx
push eax
call fcn.0040dc80
mov esi, eax
mov eax, dword [esp + 0x34]
add eax, esi
mov dword [esp + 0x34], eax
cdq
push edx
push eax
call fcn.0040dc80
add esp, 0x10
cmp esi, eax
jge 0x4537d0
add dword [esp + 0x2c], 1
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xbc]
cdq
add edi, eax
adc ecx, edx
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x14]
mov esi, edi
add esi, dword [esp + 0x98]
mov dword [esp + 0xe8], eax
mov eax, dword [edx + 0x58]
adc ecx, dword [esp + 0x9c]
cdq
cmp ecx, edx
mov dword [esp + 0x108], edi
jg 0x45299b
jl 0x45381f
cmp esi, eax
ja 0x45299b
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x18], edi
jge 0x453869
mov eax, dword [esp + 0x108]
mov edi, dword [esp + 0x34]
push 0
call fcn.0041e510
add esp, 4
test eax, eax
jne 0x455452
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x80
mov eax, dword [edx + 0x10]
mov dword [esp + 0x1c], eax
jae 0x453876
mov byte [eax], cl
mov eax, 1
jmp 0x453896
mov ecx, dword [eax + 0x14]
and word [eax + 8], 0xd
mov dword [eax + 0x10], ecx
jmp 0x453849
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
mov esi, dword [esp + 0x1c]
push eax
push ecx
call fcn.00411c70
mov ecx, dword [esp + 0x34]
add esp, 8
mov esi, dword [esp + 0x28]
movzx edx, al
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
mov eax, dword [esi + 0x1c]
cmp eax, 0x80
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
jae 0x4538c9
mov byte [ecx + edx], al
mov eax, 1
jmp 0x4538df
mov eax, dword [esp + 0x38]
push 0
push eax
lea esi, [ecx + edx]
call fcn.00411c70
mov esi, dword [esp + 0x2c]
add esp, 8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
movzx eax, al
add dword [esp + 0x3c], eax
lea edi, [ecx + edx]
mov ecx, dword [esp + 0x38]
mov eax, esi
call fcn.0040c210
add dword [esp + 0x20], eax
add esi, 0x28
cmp esi, dword [esp + 0x40]
mov dword [esp + 0x24], esi
jbe 0x4538a9
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x34]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x98]
mov edx, ecx
or edx, dword [esp + 0x9c]
mov word [eax + 8], 0x10
je 0x45393b
mov dword [eax], ecx
mov word [eax + 8], 0x4010
mov byte [eax + 0xa], 1
jmp case.0x451ec1.10
mov ecx, dword [ebx + 4]
test ecx, ecx
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], eax
jne 0x4539fe
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x9c], 0
jle 0x453971
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x453a6d
call fcn.0040e260
mov esi, dword [esp + 0x14]
mov edi, eax
lea edx, [edi + 0x21]
push 0
push edx
call fcn.00417290
mov esi, eax
add esp, 8
test esi, esi
je case.0x451ec1.10
mov ecx, dword [esp + 0x20]
add edi, 1
push edi
lea eax, [esi + 0x20]
push ecx
push eax
mov dword [esi], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x20]
add esp, 0xc
cmp byte [eax + 0x3f], 0
je 0x4539bf
mov byte [eax + 0x3f], 0
mov byte [eax + 0x46], 1
jmp 0x4539c6
add dword [eax + 0x1bc], 1
mov edx, dword [eax + 0x1b4]
mov dword [esi + 0x18], edx
mov ecx, dword [eax + 0x1c8]
mov dword [eax + 0x1b4], esi
mov dword [esi + 8], ecx
mov edx, dword [eax + 0x1cc]
mov dword [esi + 0xc], edx
mov ecx, dword [eax + 0x1d0]
mov dword [esi + 0x10], ecx
mov edx, dword [eax + 0x1d4]
mov dword [esi + 0x14], edx
jmp case.0x451ec1.10
mov esi, dword [esp + 0x14]
mov edi, dword [esi + 0x1b4]
test edi, edi
mov dword [esp + 0x24], 0
je 0x453a2f
mov eax, dword [esp + 0x20]
mov ecx, dword [edi]
call fcn.0040e150
test eax, eax
je 0x453a51
mov edi, dword [edi + 0x18]
add dword [esp + 0x24], 1
test edi, edi
jne 0x453a14
mov eax, dword [esp + 0x20]
mov edi, dword [ebp + 8]
push eax
push str.no_such_savepoint:__s
call fcn.00427470
add esp, 8
mov dword [esp + 0x10], 1
jmp case.0x451ec1.10
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp dword [esi + 0x9c], edx
mov dword [esp + 0x40], edi
jle 0x453a85
cmp ecx, 1
jne 0x453a85
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edi, dword [ebp + 8]
call fcn.00427470
add esp, 4
mov dword [esp + 0x10], 5
jmp case.0x451ec1.10
cmp dword [edi + 0x18], edx
jne 0x453ada
cmp byte [esi + 0x46], 0
je 0x453ada
cmp ecx, 1
mov dword [esp + 0x4c], 1
jne 0x453ade
mov eax, dword [ebp + 8]
push ecx
call fcn.00429bc0
add esp, 4
test eax, eax
jne 0x452a0b
mov edi, esi
mov esi, dword [ebp + 8]
mov byte [edi + 0x3f], 1
call fcn.00450c60
cmp eax, 5
je 0x455ac3
mov byte [edi + 0x46], 0
mov ecx, dword [esi + 0x50]
mov dword [esp + 0x10], ecx
mov esi, edi
jmp 0x453bc0
mov dword [esp + 0x4c], edx
mov eax, dword [esi + 0x1bc]
sub eax, dword [esp + 0x24]
sub eax, 1
cmp ecx, 2
mov dword [esp + 0x24], eax
jne 0x453b5d
mov eax, dword [esi + 0x18]
shr eax, 1
and eax, 1
cmp dword [esi + 0x14], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
jle 0x453b61
xor edx, edx
test eax, eax
sete dl
xor edi, edi
mov dword [esp + 0x30], edx
jmp 0x453b20
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + edi + 4]
push eax
push 0x204
push edx
call fcn.0044b2b0
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x455bc0
mov eax, dword [esp + 0x28]
add eax, 1
add edi, 0x10
cmp eax, dword [esi + 0x14]
mov dword [esp + 0x28], eax
jl 0x453b20
xor edx, edx
jmp 0x453b61
mov dword [esp + 0x20], edx
xor edi, edi
cmp dword [esi + 0x14], edx
jle 0x453ba5
mov ebx, dword [esp + 0x24]
xor esi, esi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + esi + 4]
push eax
call fcn.00440060
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x452c20
mov eax, dword [esp + 0x14]
add edi, 1
add esi, 0x10
cmp edi, dword [eax + 0x14]
jl 0x453b6e
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x20], 0
mov esi, dword [esp + 0x14]
je 0x453bc0
mov eax, esi
call fcn.0040bfa0
call fcn.0041dbf0
or dword [esi + 0x18], 2
mov edi, dword [esp + 0x40]
cmp dword [esi + 0x1b4], edi
je 0x453c07
lea esp, [esp]
cmp dword [esi + 0x1d8], 0
mov eax, dword [esi + 0x1b4]
mov ecx, dword [eax + 0x18]
mov dword [esi + 0x1b4], ecx
je 0x453bef
call fcn.00414ce0
jmp 0x453bf8
push eax
call fcn.00412080
add esp, 4
add dword [esi + 0x1bc], 0xffffffff
cmp dword [esi + 0x1b4], edi
jne 0x453bd0
mov eax, dword [esp + 0x3c]
cmp eax, 1
jne 0x453c45
mov edx, dword [edi + 0x18]
mov eax, edi
mov ecx, esi
mov dword [esi + 0x1b4], edx
call fcn.00415c00
cmp dword [esp + 0x4c], 0
jne case.0x451ec1.10
mov eax, dword [esp + 0x14]
add dword [eax + 0x1bc], 0xffffffff
mov dword [esp + 0x10], 0
jmp case.0x451ec1.10
cmp dword [esp + 0x4c], 0
mov ecx, dword [edi + 8]
mov dword [esi + 0x1c8], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x1cc], edx
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x1d0], ecx
mov edx, dword [edi + 0x14]
mov dword [esi + 0x1d4], edx
je 0x453c79
cmp eax, 2
jne case.0x451ec1.10
mov dword [esp + 0x10], 0
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
test eax, eax
mov ecx, dword [ebx + 8]
mov dword [esp + 0x30], eax
je 0x453cb4
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x3f], 0
jne 0x453cb4
test ecx, ecx
jne 0x453cb4
cmp dword [edx + 0x9c], ecx
jle 0x453cb4
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x453a6d
mov edi, dword [esp + 0x14]
movzx edx, byte [edi + 0x3f]
cmp eax, edx
jne 0x455aec
test eax, eax
jne 0x453ccf
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x453cdd
test ecx, ecx
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x453cdd
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [ebp + 8]
push eax
call fcn.00427470
add esp, 4
mov dword [esp + 0x10], 1
jmp case.0x451ec1.10
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x453d0e
mov eax, dword [esp + 0x14]
test dword [eax + 0x18], 0x2000000
jne 0x455b76
mov edx, dword [ebx + 4]
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x453dec
push ecx
push eax
call fcn.00448340
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x455b85
test eax, eax
jne 0x452c24
cmp dword [ebx + 8], eax
mov esi, dword [ebp + 8]
je 0x453dc4
test byte [esi + 0x58], 0x20
je 0x453dc4
cmp byte [edi + 0x3f], al
je 0x453d66
cmp dword [edi + 0x98], 1
jle 0x453dc4
cmp dword [esi + 0x68], 0
jne 0x453d84
add dword [edi + 0x1c0], 1
mov eax, dword [edi + 0x1c0]
mov ecx, dword [edi + 0x1bc]
add ecx, eax
mov dword [esi + 0x68], ecx
mov eax, dword [esi + 0x68]
mov ecx, dword [esp + 0x28]
call fcn.0041e650
mov edx, dword [edi + 0x1c8]
mov dword [esi + 0x90], edx
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x1cc]
mov dword [esi + 0x94], eax
mov ecx, dword [edi + 0x1d0]
mov dword [esi + 0x98], ecx
mov edx, dword [edi + 0x1d4]
mov dword [esi + 0x9c], edx
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 0x38]
mov eax, dword [eax + 0x28]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x10]
bswap eax
mov dword [esp + 0x20], eax
shl ecx, 4
mov eax, dword [ecx + edx + 0xc]
mov eax, dword [eax + 4]
jmp 0x453df5
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [esp + 0x20], eax
cmp byte [ebx + 3], 0
je case.0x451ec1.10
mov ecx, dword [esp + 0x20]
cmp ecx, dword [ebx + 0xc]
jne 0x453e11
cmp eax, dword [ebx + 0x10]
je case.0x451ec1.10
mov eax, dword [esi + 0x2c]
mov ecx, edi
call fcn.00415c00
mov ebx, str.database_schema_has_changed
mov eax, edi
call fcn.00419f20
mov ebx, dword [ebp + 8]
mov edx, dword [esp + 0x1c]
mov dword [ebx + 0x2c], eax
mov esi, dword [edx + 4]
mov ecx, dword [edi + 0x10]
mov eax, esi
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [esp + 0x20]
cmp dword [edx], eax
je 0x453e4d
call fcn.0041dc40
or dword [ebx + 0x58], 8
mov dword [esp + 0x10], 0x11
jmp 0x4559f3
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebx + 0xc]
shl edx, 4
mov eax, dword [edx + eax + 4]
lea esi, [esp + 0x100]
call fcn.004103d0
mov eax, dword [ebx + 8]
mov edx, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
test word [eax + ecx*8 + 8], 0x2460
lea eax, [eax + ecx*8]
je 0x453eaf
call fcn.0041cae0
mov ecx, eax
mov eax, dword [esp + 0x100]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x451ec1.10
mov word [eax + 8], 4
mov ecx, eax
mov eax, dword [esp + 0x100]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebx + 0xc]
mov edi, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
shl edi, 4
add edi, dword [ecx + 0x10]
lea esi, [eax + edx*8]
call fcn.00415310
mov ecx, dword [ebx + 8]
mov eax, dword [edi + 4]
push ecx
mov ecx, dword [esi]
call fcn.00432920
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 8]
add esp, 4
cmp eax, 1
jne 0x453f16
mov eax, dword [esi]
mov edx, dword [edi + 0xc]
mov dword [edx], eax
mov eax, dword [esp + 0x14]
or dword [eax + 0x18], 2
jmp 0x453f23
cmp eax, 2
jne 0x453f23
mov ecx, dword [edi + 0xc]
mov dl, byte [esi]
mov byte [ecx + 0x4c], dl
cmp dword [ebx + 4], 1
jne case.0x451ec1.10
mov eax, dword [esp + 0x14]
call fcn.0040bfa0
mov eax, dword [ebp + 8]
and dword [eax + 0x58], 0xfffffff7
jmp case.0x451ec1.10
mov edx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov edx, dword [edx + 0x38]
mov edi, dword [edx + eax*4]
test edi, edi
je case.0x451ec1.54
mov eax, dword [edi + 0x20]
cmp eax, dword [ebx + 8]
je 0x45407c
mov edx, dword [ebp + 8]
test byte [edx + 0x58], 8
je 0x453f74
mov dword [esp + 0x10], 0x204
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, edx
shl eax, 4
add eax, dword [esi + 0x10]
xor edi, edi
cmp cl, 0x37
mov esi, dword [eax + 4]
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], edx
mov dword [esp + 0x4c], esi
jne 0x453fbb
mov ecx, dword [eax + 0xc]
mov al, byte [ecx + 0x4c]
mov ecx, dword [ebp + 8]
cmp al, byte [ecx + 0x57]
mov dword [esp + 0x28], 1
jae 0x453fc3
mov byte [ecx + 0x57], al
jmp 0x453fc3
mov dword [esp + 0x28], 0
test byte [ebx + 3], 4
je 0x453fef
mov eax, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea esi, [eax + edx*8]
call fcn.00415310
mov esi, dword [esi]
cmp esi, 2
mov dword [esp + 0x20], esi
jl 0x455bad
mov edx, dword [esp + 0x30]
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x454009
mov eax, dword [ebx + 0x10]
movzx edi, word [eax + 8]
movzx ecx, word [eax + 6]
mov dword [esp + 0x40], eax
add edi, ecx
jmp 0x454010
cmp al, 0xf2
jne 0x454010
mov edi, dword [ebx + 0x10]
mov eax, dword [ebp + 8]
push 1
push edx
mov edx, dword [ebx + 4]
push edi
push edx
push eax
call fcn.0044cf60
mov edi, eax
add esp, 0x14
test edi, edi
je 0x455452
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
mov esi, dword [edi]
mov ebx, dword [esp + 0x28]
or dword [edi + 0x1c], 8
push ecx
push edx
mov byte [edi + 0x19], 1
mov dword [edi + 0x20], eax
call fcn.0042a160
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
add esp, 8
mov dword [edi + 8], eax
cmp byte [edx + 1], 0xfa
mov ebx, edx
setne cl
add ecx, ecx
add ecx, ecx
xor ecx, dword [edi + 0x1c]
and ecx, 4
xor dword [edi + 0x1c], ecx
mov al, byte [ebx + 3]
mov ecx, dword [edi]
and al, 3
mov byte [ecx + 0x43], al
jmp case.0x451ec1.10
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
push 1
push 0xffffffffffffffff
push edx
push eax
push ecx
call fcn.0044cf60
add esp, 0x14
test eax, eax
mov dword [esp + 0x24], eax
je 0x455452
or dword [eax + 0x1c], 1
mov edx, dword [esp + 0x1c]
mov byte [eax + 0x19], 1
lea esi, [eax + 4]
movzx eax, byte [edx + 3]
push 0x41e
or eax, 5
push eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push esi
push eax
push 0
push ecx
call fcn.004404d0
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x454375
mov esi, dword [esi]
cmp byte [esi + 8], 2
mov edi, dword [esi + 4]
mov dword [esp + 0x20], esi
je 0x45422f
movzx eax, word [edi + 0x14]
test al, 1
je 0x45410f
mov ebx, 8
jmp 0x454255
xor ebx, ebx
and eax, 0xfff7
cmp dword [edi + 0x2c], ebx
mov word [edi + 0x14], ax
jne 0x454126
or eax, 8
mov word [edi + 0x14], ax
cmp dword [edi + 0xc], 0
jne 0x45413b
mov eax, edi
call fcn.00444210
mov ebx, eax
test ebx, ebx
je 0x454126
jmp 0x454179
test ebx, ebx
jne 0x454179
test byte [edi + 0x14], 1
je 0x45414c
mov ebx, 8
jmp 0x454179
mov edx, dword [esi]
xor eax, eax
cmp byte [edx + 0x40], 2
sete al
push eax
mov eax, dword [edi]
push 0
call fcn.00415460
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x454179
push edi
call fcn.00432ac0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x454192
cmp byte [edi + 0x11], 0
jne 0x454192
mov eax, dword [edi + 0xc]
test eax, eax
je 0x454192
mov dword [edi + 0xc], 0
call fcn.00440870
cmp bl, 5
jne 0x4541d7
cmp byte [edi + 0x11], 0
jne 0x4541d7
mov esi, dword [edi + 4]
add esi, 0x188
je 0x4541d7
mov ecx, dword [esi]
test ecx, ecx
je 0x4541d7
mov eax, dword [esi + 8]
test eax, eax
jl 0x4541d7
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 8
test eax, eax
je 0x4541d0
add dword [esi + 8], 1
mov esi, dword [esp + 0x20]
jmp 0x454126
mov dword [esi + 8], 0xffffffff
test ebx, ebx
jne 0x454255
mov esi, dword [esp + 0x20]
cmp byte [esi + 8], bl
jne 0x4541e8
add dword [edi + 0x28], 1
mov byte [esi + 8], 2
cmp byte [edi + 0x11], 2
jae 0x4541f6
mov byte [edi + 0x11], 2
mov eax, dword [edi + 0xc]
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x1c]
bswap eax
cmp dword [edi + 0x2c], eax
je 0x45422f
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 0x48]
call fcn.004303c0
mov ebx, eax
test ebx, ebx
jne 0x454255
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x38]
mov esi, dword [esp + 0x20]
bswap eax
mov dword [edx + 0x1c], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x1bc]
mov edi, dword [edi]
cmp eax, dword [edi + 0x60]
jle 0x454253
cmp byte [edi + 6], 0
je 0x454253
push eax
mov esi, edi
call fcn.0041b2d0
add esp, 4
mov ebx, eax
jmp 0x454255
xor ebx, ebx
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x454375
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0x10]
test edi, edi
je 0x4542c1
movzx ecx, byte [eax + 3]
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 4]
lea edx, [esp + 0xf4]
or ecx, 2
push edx
call fcn.00449000
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4542b8
mov eax, dword [esi + 4]
push edi
mov dword [esi + 8], edi
mov esi, dword [esi]
push eax
mov eax, dword [esp + 0xfc]
mov ebx, 1
call fcn.0042a160
mov esi, dword [esp + 0x2c]
add esp, 8
mov dword [esp + 0x10], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x454379
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
add eax, 4
mov eax, dword [eax]
mov ebx, dword [eax + 4]
cmp dword [ebx + 0x40], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], 1
jne 0x4542fb
mov edi, dword [ebx + 0x20]
call fcn.00416e50
test eax, eax
mov dword [ebx + 0x40], eax
je 0x4542fb
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
add dword [ebx + 0x40], 4
xor edx, edx
cmp dword [ebx + 0x40], edx
jne 0x454315
mov esi, dword [esp + 0x24]
or dword [esi + 0x1c], 4
mov eax, 7
mov dword [esp + 0x10], eax
jmp 0x454379
cmp dword [ebx + 0x2c], edx
jne 0x45431e
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dword [esi + 0x34], edi
mov byte [esi + 0x44], 0xff
mov dword [esi + 0x48], edx
mov dword [esi], ecx
mov dword [esi + 4], ebx
mov byte [esi + 0x40], 1
mov byte [esi + 0x41], 0
mov eax, dword [ebx + 8]
cmp eax, edx
je 0x454358
cmp dword [eax + 0x34], edi
jne 0x454351
mov cl, 0x20
or byte [eax + 0x40], cl
or byte [esi + 0x40], cl
mov eax, dword [eax + 8]
cmp eax, edx
jne 0x454344
mov eax, dword [ebx + 8]
mov dword [esi + 8], eax
mov dword [ebx + 8], esi
mov byte [esi + 0x42], 0
mov esi, dword [esp + 0x24]
xor eax, eax
or dword [esi + 0x1c], 4
mov dword [esp + 0x10], eax
jmp 0x454379
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
xor ecx, ecx
cmp byte [edx + 3], 8
setne cl
add ecx, ecx
add ecx, ecx
add ecx, ecx
xor ecx, dword [esi + 0x1c]
and ecx, 8
xor dword [esi + 0x1c], ecx
jmp 0x4559f3
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 4]
mov edx, dword [ebp + 8]
push 1
push 0xffffffffffffffff
push eax
push ecx
push edx
call fcn.0044cf60
add esp, 0x14
test eax, eax
je 0x455452
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 8], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
push eax
push ecx
call fcn.00418900
add esp, 0xc
mov dword [esp + 0x10], eax
jmp 0x4559f3
mov edx, dword [ebx + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax + 0x28], esi
mov dword [eax + 0x2c], edi
mov eax, ecx
or eax, edx
je 0x4559e1
jmp case.0x451ec1.10
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
push 0
push 0xffffffffffffffff
push edx
push eax
push ecx
call fcn.0044cf60
add esp, 0x14
test eax, eax
je 0x455452
mov edx, dword [esp + 0x1c]
mov byte [eax + 0x19], 1
mov ecx, dword [edx + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], ecx
jmp 0x4559f3
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x38]
mov edx, dword [ebx + 4]
mov esi, dword [eax + edx*4]
mov eax, edi
call fcn.0044cba0
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov dword [edx + ecx*4], 0
jmp case.0x451ec1.10
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov edx, dword [edx + 0x38]
mov edi, dword [edx + ecx*4]
test byte [edi + 0x1c], 4
mov dword [esp + 0x38], eax
mov byte [edi + 0x19], 0
je 0x45453f
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov dl, byte [ecx + eax*8 + 8]
lea esi, [ecx + eax*8]
and dl, 0xe
cmp dl, 2
jne 0x4544ad
push 0
call fcn.00413310
add esp, 4
mov edx, esi
call fcn.004134f0
movzx ecx, word [esi + 8]
test cl, 4
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
jne 0x454507
test cl, 8
je 0x4559e1
mov ecx, dword [esi]
mov esi, dword [esi + 4]
cmp esi, edx
jg 0x4544fb
jl 0x4544e3
cmp ecx, eax
jae 0x4544f1
test byte [esp + 0x38], 1
jne 0x454507
sub dword [esp + 0x38], 1
jmp 0x454507
cmp esi, edx
jl 0x454507
jg 0x4544fb
cmp ecx, eax
jbe 0x454507
test byte [esp + 0x38], 1
je 0x454507
add dword [esp + 0x38], 1
lea ecx, [esp + 0x50]
push ecx
xor esi, esi
push esi
push edx
mov edx, dword [edi]
push eax
push esi
push edx
call fcn.0044a740
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add esp, 0x18
cmp eax, esi
mov dword [esp + 0x10], eax
mov dword [edi + 0x30], ecx
mov dword [edi + 0x34], edx
jne 0x452c20
jmp 0x4545b5
mov ecx, dword [edi + 8]
mov dx, word [ebx + 0x10]
add eax, 0xffffffff
test al, 1
sete al
mov dword [esp + 0x1a4], ecx
mov word [esp + 0x1a8], dx
mov edx, dword [esp + 0x18]
lea eax, [eax + eax - 1]
mov byte [esp + 0x1aa], al
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esp + 0x1ac], eax
test word [eax + 8], 0x4000
je 0x454589
call fcn.0041f660
mov edx, dword [edi]
lea eax, [esp + 0x50]
push eax
push 0
push 0
push 0
lea ecx, [esp + 0x1b4]
push ecx
push edx
call fcn.0044a740
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x452c20
xor esi, esi
mov ecx, dword [esp + 0x38]
cmp ecx, 0x41
mov byte [edi + 0x1a], 0
mov dword [edi + 0x3c], esi
mov eax, dword [esp + 0x50]
jl 0x4545f0
cmp eax, esi
jl 0x4545dd
jne 0x4545d4
cmp ecx, 0x42
je 0x4545dd
mov dword [esp + 0x50], esi
jmp case.0x451ec1.10
lea eax, [esp + 0x50]
mov dword [esp + 0x50], esi
mov ecx, dword [edi]
push eax
push ecx
call fcn.0044cea0
jmp 0x45461d
cmp eax, esi
jg 0x45460c
jne 0x4545fb
cmp ecx, 0x3f
je 0x45460c
mov edx, dword [edi]
xor eax, eax
cmp byte [edx + 0x42], 1
setne al
mov dword [esp + 0x50], eax
jmp 0x45462c
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], esi
mov edx, dword [edi]
push ecx
push edx
call fcn.0044ce40
add esp, 8
cmp eax, esi
mov dword [esp + 0x10], eax
jne 0x452c20
cmp dword [esp + 0x50], esi
jne 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov ecx, dword [esp + 0x18]
mov byte [esi + 0x19], 0
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
call fcn.004134f0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 1
jmp case.0x451ec1.10
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov esi, dword [ecx + edx*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
xor edi, edi
cmp dword [ebx + 0x10], edi
lea eax, [eax + edx*8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x4c], edi
jle 0x4546f8
mov ecx, dword [esi + 8]
mov dword [esp + 0x154], ecx
mov cx, word [ebx + 0x10]
cmp cx, di
mov word [esp + 0x158], cx
mov dword [esp + 0x15c], eax
jbe 0x4546ef
xor eax, eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x15c]
add eax, edx
test word [eax + 8], 0x4000
je 0x4546da
call fcn.0041f660
mov cx, word [esp + 0x158]
mov eax, dword [esp + 0x28]
movzx edx, cx
add edi, 1
add eax, 0x28
cmp edi, edx
mov dword [esp + 0x28], eax
jl 0x4546bc
lea edi, [esp + 0x154]
jmp 0x45474b
mov edi, dword [esi + 8]
push 0xbf
lea ebx, [esp + 0x50]
lea edx, [esp + 0x1e4]
call fcn.00418c30
mov edi, eax
add esp, 4
test edi, edi
je 0x455452
mov eax, dword [esp + 0x24]
test word [eax + 8], 0x4000
je 0x45472e
call fcn.0041f660
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
mov eax, dword [esi + 8]
push edi
push ecx
push edx
push eax
call fcn.00413390
mov ebx, dword [esp + 0x2c]
add esp, 0x10
xor ecx, ecx
mov byte [edi + 6], 0
cmp byte [ebx], 0x44
mov dword [esp + 0x28], ecx
jne 0x454783
cmp word [edi + 4], cx
jbe 0x454783
mov eax, dword [edi + 8]
add eax, 8
test byte [eax], 1
jne 0x45477b
movzx edx, word [edi + 4]
add ecx, 1
add eax, 0x28
cmp ecx, edx
jl 0x454766
jmp 0x454783
mov dword [esp + 0x28], 1
mov ecx, dword [esi]
lea eax, [esp + 0xdc]
push eax
push 0
push 0
push 0
push edi
push ecx
call fcn.0044a740
mov ecx, dword [esp + 0x2c]
mov edi, eax
mov eax, dword [esp + 0x64]
add esp, 0x18
mov dword [esp + 0x10], edi
call fcn.00415c00
test edi, edi
jne case.0x451ec1.10
mov ecx, dword [esp + 0xdc]
xor eax, eax
test ecx, ecx
sete al
mov dl, 1
sub dl, al
mov dword [esi + 0xc], ecx
mov byte [esi + 0x19], dl
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], edi
cmp byte [ebx], 0x46
jne 0x4547e9
test eax, eax
jne 0x4559e1
jmp case.0x451ec1.10
cmp dword [esp + 0x28], 0
jne 0x4559e1
test eax, eax
je 0x4559e1
jmp case.0x451ec1.10
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebx + 4]
mov esi, dword [edx + eax*4]
mov eax, dword [ebx + 0xc]
mov edx, dword [esp + 0x18]
mov ecx, dword [esi]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*8]
mov eax, dword [edx + eax*8 + 4]
lea edx, [esp + 0x28]
push edx
push 0
push eax
push edi
push 0
push ecx
mov dword [esp + 0x40], 0
mov dword [esp + 0x184], eax
call fcn.0044a740
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x184]
mov dword [esi + 0x34], eax
mov eax, dword [esp + 0x40]
add esp, 0x18
test eax, eax
mov dword [esi + 0x30], edi
mov byte [esi + 0x19], 0
mov dword [esi + 0x3c], 0
mov byte [esi + 0x1a], 0
mov dword [esi + 0xc], eax
jne 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 8]
lea ecx, [eax + eax*4]
test word [edx + ecx*8 + 8], 0x2460
lea eax, [edx + ecx*8]
je 0x454896
call fcn.0041cae0
jmp 0x45489c
mov word [eax + 8], 4
mov edx, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x28]
mov dword [eax], edx
mov ecx, dword [ecx + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov edx, dword [ebp + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
xor esi, esi
xor edi, edi
test word [eax + ecx*8 + 8], 0x2460
lea eax, [eax + ecx*8]
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x3c], esi
je 0x4548f5
call fcn.0041cae0
jmp 0x4548fb
mov word [eax + 8], 4
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x38]
mov eax, dword [eax + ecx*4]
test byte [eax + 0x1c], 2
mov dword [esp + 0x24], eax
jne 0x454989
lea ecx, [esp + 0x3c]
mov edx, eax
mov eax, dword [edx]
push ecx
call fcn.0044abe0
add esp, 4
test eax, eax
mov dword [esp + 0x10], eax
jne 0x452c20
cmp dword [esp + 0x3c], eax
je 0x45493f
lea edi, [eax + 1]
xor esi, esi
jmp 0x454981
mov eax, dword [esp + 0x24]
mov esi, dword [eax]
mov eax, esi
call fcn.00410460
mov edi, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
cmp esi, 0x7fffffff
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x10], 0
jl 0x45497b
jg 0x454971
cmp edi, 0xffffffff
jb 0x45497b
mov eax, dword [esp + 0x24]
or dword [eax + 0x1c], 2
jmp 0x454989
add edi, 1
adc esi, 0
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], edi
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x1c], 2
je 0x454a15
mov dword [esp + 0x28], 0
nop
lea eax, [esp + 0x68]
mov ecx, 8
call fcn.00411f00
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
lea edx, [esp + 0x3c]
push edx
and esi, 0x3fffffff
add edi, 1
push 0
adc esi, 0
push esi
push edi
push 0
push ecx
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
call fcn.0044a740
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x454a15
cmp dword [esp + 0x3c], eax
jne 0x454a15
mov eax, dword [esp + 0x28]
add eax, 1
cmp eax, 0x64
mov dword [esp + 0x28], eax
jl 0x4549a0
mov dword [esp + 0x10], 0xd
jmp 0x452c20
mov eax, dword [esp + 0x24]
mov byte [eax + 0x1a], 0
mov dword [eax + 0x3c], 0
mov eax, dword [esp + 0x34]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp case.0x451ec1.10
cmp cl, 0x54
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edx, [eax + edx*8]
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x38]
mov esi, dword [edi + esi*4]
jne 0x454a6a
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
mov edi, dword [eax + ecx*8]
mov ecx, dword [eax + ecx*8 + 4]
mov dword [esp + 0xc4], ecx
jmp 0x454a7c
mov eax, dword [ebx + 0xc]
cdq
mov dword [esp + 0xc4], edx
mov ecx, edx
mov edx, dword [ebp + 8]
mov edi, eax
test byte [ebx + 3], 1
je 0x454a86
add dword [edx + 0x5c], 1
test byte [ebx + 3], 2
je 0x454a9e
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], ecx
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], ecx
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + 8]
test cl, 1
je 0x454ab3
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0xc], edx
mov al, byte [ebx + 3]
test al, 0x10
je 0x454abf
mov edx, dword [esi + 0xc]
jmp 0x454ac1
xor edx, edx
test ecx, 0x4000
je 0x454ad1
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
jmp 0x454ad3
xor ecx, ecx
push edx
shr eax, 3
and eax, 1
push eax
mov eax, dword [esp + 0x28]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push ecx
mov ecx, dword [esp + 0xd0]
push edx
mov edx, dword [esi]
push eax
push ecx
push edi
push 0
push edx
call fcn.0044b610
add esp, 0x24
test eax, eax
mov dword [esp + 0x10], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
jne case.0x451ec1.10
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je case.0x451ec1.10
mov eax, dword [ebx + 0x10]
test eax, eax
je case.0x451ec1.10
mov edx, dword [esp + 0xc4]
push edx
movsx edx, byte [esi + 0x18]
push edi
push eax
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xd0]
shl edx, 4
mov edx, dword [edx + esi]
push edx
mov dl, byte [ebx + 3]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x451ec1.10
mov edi, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 0x38]
mov esi, dword [edx + ecx*4]
mov eax, dword [esi]
call fcn.0044d2c0
test eax, eax
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
jne 0x454bd8
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xd4]
test eax, eax
mov dword [esp + 0x30], eax
je 0x454bd8
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454bd8
test byte [esi + 0x1c], 4
je 0x454bd8
mov edx, dword [esi + 0x34]
push edx
mov edx, dword [esi + 0x30]
push edx
mov edx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xd0]
push eax
movsx eax, byte [esi + 0x18]
shl eax, 4
mov eax, dword [eax + edx]
push eax
push 9
push ecx
call dword [esp + 0x48]
add esp, 0x18
test byte [ebx + 8], 1
je case.0x451ec1.10
add dword [edi + 0x5c], 1
jmp case.0x451ec1.10
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x5c]
mov eax, dword [esp + 0x14]
add dword [eax + 0x54], edx
mov dword [eax + 0x50], edx
mov dword [ecx + 0x5c], 0
jmp case.0x451ec1.10
mov eax, dword [ebp + 8]
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebx + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + edx*8]
mov edx, dword [ebx + 0x10]
lea esi, [esp + 0x24]
push esi
push edx
push ecx
mov dword [esp + 0x30], 0
call fcn.0042f980
add esp, 0xc
cmp dword [esp + 0x24], 0
mov dword [esp + 0x10], eax
jne 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov esi, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*8]
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
call fcn.00420e70
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [edx + ecx*4]
mov dword [eax + 0x3c], 0
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
lea esi, [edx + ecx*8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + eax*4]
mov edi, dword [eax]
test byte [eax + 0x1c], 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], edi
mov eax, edi
jne 0x454cdd
call fcn.00410460
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x58]
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 0x14]
cdq
cmp edi, edx
jg 0x45299b
jl 0x454cd5
cmp ecx, eax
ja 0x45299b
mov eax, ecx
mov dword [esp + 0x20], eax
jmp 0x454cf6
call fcn.00410460
mov eax, dword [edi + 0x1c]
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x58]
mov dword [esp + 0x20], eax
ja 0x45299b
cmp eax, 0x20
ja 0x454d00
mov eax, 0x20
cmp dword [esi + 0x18], eax
jge 0x454d65
push 0
mov edi, esi
call fcn.0041e510
add esp, 4
test eax, eax
jne 0x455452
mov ebx, dword [esp + 0x1c]
mov cx, word [esi + 8]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
and cx, 0xbe10
or cx, 0x10
mov dword [esi + 0xc], eax
mov word [esi + 8], cx
test byte [edx + 0x1c], 4
jne 0x454d72
mov eax, dword [esi + 0x10]
mov edi, dword [esp + 0x28]
push 0
push eax
mov eax, dword [esp + 0x28]
push eax
push 0
call fcn.00447fa0
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [esi + 0xa], 1
jmp case.0x451ec1.10
mov edx, dword [esi + 0x14]
and word [esi + 8], 0xd
mov dword [esi + 0x10], edx
jmp 0x454d1d
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x28]
push ecx
push eax
push 0
push edx
call fcn.0044bab0
mov dword [esp + 0x20], eax
add esp, 0x10
mov byte [esi + 0xa], 1
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 8]
lea eax, [eax + eax*4]
test word [ecx + eax*8 + 8], 0x2460
lea eax, [ecx + eax*8]
je 0x454db2
call fcn.0041cae0
jmp 0x454db8
mov word [eax + 8], 4
mov edx, dword [ebx + 4]
mov edi, eax
mov eax, dword [esi + 0x38]
mov esi, dword [eax + edx*4]
cmp byte [esi + 0x19], 0
je 0x454dd4
mov word [edi + 8], 1
jmp case.0x451ec1.10
cmp byte [esi + 0x1a], 0
je 0x454dea
mov eax, dword [esi + 0x30]
mov esi, dword [esi + 0x34]
mov dword [edi], eax
mov dword [edi + 4], esi
jmp case.0x451ec1.10
mov eax, esi
call fcn.0044d0a0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x452c20
cmp byte [esi + 0x19], al
je 0x454e0d
mov word [edi + 8], 1
jmp case.0x451ec1.10
mov esi, dword [esi]
mov eax, esi
call fcn.00410460
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x10], 0
mov dword [edi], eax
mov dword [edi + 4], esi
jmp case.0x451ec1.10
mov ecx, dword [ebx + 4]
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
mov eax, dword [eax + ecx*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov eax, dword [eax]
test eax, eax
je case.0x451ec1.10
mov esi, eax
call fcn.00413590
jmp case.0x451ec1.10
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi]
lea ecx, [esp + 0x38]
xor edi, edi
push ecx
mov dword [esp + 0x3c], edi
call fcn.0044abe0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
mov byte [esi + 0x19], al
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], edi
mov edx, dword [ebx + 0xc]
add esp, 4
mov dword [esi + 0xc], edx
cmp dword [ebx + 8], edi
jle case.0x451ec1.10
cmp eax, edi
jne 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebp + 8]
add dword [eax + 0x74], 1
jmp 0x454eb6
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov edx, dword [eax + 0x38]
mov esi, dword [edx + ecx*4]
cmp dword [esi + 0x38], 0
mov dword [esp + 0x20], 1
je 0x454ede
lea edi, [esp + 0x20]
mov eax, esi
call fcn.0043fe80
mov dword [esp + 0x10], eax
jmp 0x454ef9
mov eax, dword [esi]
lea ebx, [esp + 0x20]
call fcn.0044ac40
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
xor eax, eax
mov byte [esi + 0x1a], al
mov dword [esi + 0x3c], eax
mov eax, dword [esp + 0x20]
test eax, eax
mov byte [esi + 0x19], al
jne 0x4559e1
jmp case.0x451ec1.10
mov ecx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov eax, dword [esp + 0x14]
push eax
lea edi, [esp + 0x90]
mov eax, esi
mov dword [esp + 0x90], 0
call fcn.0041f030
add esp, 4
jmp 0x454f78
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0x38]
cmp dword [eax + ecx*4], 0
je case.0x451ec1.10
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
mov ecx, dword [ebx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x8c], ecx
mov eax, dword [esi]
mov ecx, dword [ebx + 0x10]
lea edx, [esp + 0x8c]
push edx
push eax
call ecx
add esp, 8
mov dword [esi + 0x3c], 0
cmp dword [esp + 0x8c], 0
mov dword [esp + 0x10], eax
jne 0x454fa6
mov eax, dword [ebp + 8]
mov byte [esi + 0x19], 0
movzx edx, byte [ebx + 3]
add dword [eax + edx*4 + 0x6c], 1
lea eax, [eax + edx*4 + 0x6c]
jmp case.0x451ec1.14
mov byte [esi + 0x19], 1
jmp 0x45554e
test byte [ebx + 3], 1
mov ecx, dword [ebp + 8]
mov edx, dword [ebx + 4]
mov eax, dword [ecx + 0x38]
mov edi, dword [eax + edx*4]
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea esi, [eax + edx*8]
je 0x454fd2
add dword [ecx + 0x5c], 1
test word [esi + 8], 0x4000
je 0x454fed
mov eax, esi
call fcn.0041f660
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x451ec1.10
cmp byte [ebx], 0x6e
jne 0x455006
push esi
mov eax, edi
call fcn.0043fed0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x451ec1.10
test byte [ebx + 3], 0x10
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
je 0x455017
mov ecx, dword [edi + 0xc]
jmp 0x455019
xor ecx, ecx
push ecx
mov ecx, dword [ebx + 0xc]
push ecx
push 0
push 0
cdq
push 0x47c5a4
push edx
mov edx, dword [edi]
push eax
push esi
push edx
call fcn.0044b610
add esp, 0x24
mov dword [esp + 0x10], eax
mov dword [edi + 0x3c], 0
jmp case.0x451ec1.10
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
mov eax, dword [ebx + 4]
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 8]
mov edi, dword [esi]
mov cx, word [ebx + 0xc]
mov dword [esp + 0x190], eax
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov word [esp + 0x194], cx
lea ecx, [eax + edx*8]
lea edx, [esp + 0x104]
push edx
push 0
push 0
push 0
lea eax, [esp + 0x1a0]
push eax
push edi
mov byte [esp + 0x1ae], 0
mov dword [esp + 0x1b0], ecx
call fcn.0044a740
add esp, 0x18
test eax, eax
mov dword [esp + 0x10], eax
jne 0x4550c1
cmp dword [esp + 0x104], eax
jne 0x4550c1
mov eax, edi
call fcn.0044d2c0
mov dword [esp + 0x10], eax
mov dword [esi + 0x3c], 0
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 8]
lea ecx, [eax + eax*4]
test word [edx + ecx*8 + 8], 0x2460
lea eax, [edx + ecx*8]
je 0x4550ec
call fcn.0041cae0
jmp 0x4550f2
mov word [eax + 8], 4
mov ecx, dword [esi + 0x38]
mov edi, eax
mov eax, dword [ebx + 4]
mov esi, dword [ecx + eax*4]
mov edx, dword [esi]
mov eax, esi
mov dword [esp + 0x30], edx
mov word [edi + 8], 1
call fcn.0044d0a0
test eax, eax
mov dword [esp + 0x10], eax
jne 0x452c20
cmp byte [esi + 0x19], al
jne case.0x451ec1.10
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xc8]
push eax
mov eax, dword [esp + 0x34]
xor esi, esi
push ecx
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
call fcn.0044d9c0
add esp, 8
cmp eax, esi
mov dword [esp + 0x10], eax
jne 0x452c20
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov dword [edi], edx
mov dword [edi + 4], eax
mov word [edi + 8], 4
jmp case.0x451ec1.10
mov edx, dword [ebx + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 8]
cmp cl, 0x74
sbb cl, cl
mov dword [esp + 0x174], edx
mov dx, word [ebx + 0x10]
mov byte [esp + 0x17a], cl
mov ecx, dword [ebx + 0xc]
mov word [esp + 0x178], dx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
lea edx, [ecx + edx*8]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x180], edx
lea edx, [esp + 0x178]
push edx
push ecx
mov dword [esp + 0x4c], 0
call fcn.0044d8b0
add esp, 0xc
test byte [ebx], 1
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
jne 0x4551ed
neg eax
jmp 0x4551f0
add eax, 1
test eax, eax
jg 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov edi, dword [ebp + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
test word [eax + edx*8 + 8], 0x2460
lea eax, [eax + edx*8]
je 0x45521c
call fcn.0041cae0
jmp 0x455222
mov word [eax + 8], 4
mov esi, eax
mov eax, dword [esp + 0x14]
mov word [esi + 8], 1
mov ecx, dword [eax + 0xa4]
add ecx, 1
cmp dword [eax + 0x98], ecx
jle 0x455250
mov dword [esp + 0x10], 6
mov byte [edi + 0x56], 2
jmp case.0x451ec1.10
mov edx, dword [ebx + 0xc]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebx + 4]
shl edx, 4
mov eax, dword [edx + eax + 4]
lea edx, [esp + 0x2c]
push edx
push ecx
push eax
mov dword [esp + 0x38], 0
call fcn.0044cd50
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
cdq
add esp, 0xc
mov word [esi + 8], 4
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
neg eax
sbb eax, eax
lea ecx, [esp + 0x34]
and eax, ecx
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebx + 4]
shl edx, 4
mov dword [esp + 0x38], 0
mov esi, dword [edx + ecx + 4]
call fcn.0044b5a0
add esp, 4
cmp dword [ebx + 0xc], 0
mov dword [esp + 0x10], eax
je case.0x451ec1.10
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x34]
add dword [ecx + 0x5c], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jle case.0x451ec1.10
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + edx*8]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov edx, dword [ebx + 4]
mov eax, dword [ecx + edx*4]
mov ecx, dword [eax + 0x38]
test ecx, ecx
je 0x455320
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.0041add0
add esp, 8
jmp case.0x451ec1.10
mov ecx, dword [eax]
call fcn.0044ce20
mov dword [esp + 0x10], eax
jmp case.0x451ec1.10
mov eax, dword [ebx + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 8]
lea eax, [eax + eax*4]
test word [edx + eax*8 + 8], 0x2460
lea eax, [edx + eax*8]
je 0x45534f
call fcn.0041cae0
jmp 0x455355
mov word [eax + 8], 4
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [ebx + 4]
shl eax, 4
add eax, dword [ecx + 0x10]
xor ecx, ecx
cmp byte [ebx], 0x7a
mov eax, dword [eax + 4]
setne cl
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x34], 0
add ecx, 1
call fcn.00449000
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
cdq
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], edx
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [ebx + 0x10]
add ecx, 0x2c
push edx
mov dword [esp + 0x124], eax
mov dword [esp + 0x120], ecx
mov ecx, dword [esi + 0x10]
shl eax, 4
mov dword [esp + 0x11c], esi
mov edx, dword [eax + ecx]
push str.sqlite_master
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.004275e0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x4553ec
mov dword [esp + 0x10], 7
jmp 0x455442
push 0
lea eax, [esp + 0x11c]
push eax
push fcn.00451c60
push edi
push esi
mov byte [esi + 0x91], 1
mov dword [esp + 0x138], 0
call fcn.00456100
mov ebx, eax
add esp, 0x14
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x45542e
mov ecx, dword [esp + 0x124]
mov dword [esp + 0x10], ecx
mov ebx, ecx
mov eax, edi
mov ecx, esi
call fcn.00415c00
test ebx, ebx
mov byte [esi + 0x91], 0
je 0x455447
call fcn.0041dbf0
cmp dword [esp + 0x10], 7
jne 0x4559f3
mov edx, dword [esp + 0x14]
mov edi, dword [ebp + 8]
push str.out_of_memory
mov byte [edx + 0x41], 1
call fcn.00427470
mov dword [esp + 0x14], 7
jmp 0x4529b0
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x14]
push edx
call fcn.0041db80
add esp, 4
jmp case.0x451ec1.10
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0x18]
call fcn.0041a4f0
add esp, 4
jmp 0x4559f3
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 8], 0x20
mov eax, dword [ebx + 8]
lea esi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jne 0x4554d2
mov eax, esi
call fcn.0041e3a0
test byte [esi + 8], 0x20
je 0x455452
mov ebx, dword [esp + 0x1c]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
mov eax, dword [esi]
push ecx
push edx
call fcn.0041ba30
add esp, 8
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea edi, [ecx + eax*8]
je 0x455535
mov eax, dword [edi]
lea esi, [esp + 0x110]
call fcn.00419540
test eax, eax
je 0x455535
mov edx, dword [esp + 0x114]
mov ebx, dword [ebx + 0xc]
mov eax, dword [esp + 0x110]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [ebx + ebx*4]
push eax
lea eax, [edx + ecx*8]
call fcn.0041e490
add esp, 8
jmp 0x45554e
mov eax, edi
call fcn.0041b040
mov ebx, dword [ebx + 8]
mov ecx, dword [esp + 0x48]
lea eax, [ebx + ebx*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xf0]
test ecx, ecx
je 0x4559f3
mov ecx, dword [ebp + 8]
mov eax, 9
mov dword [ecx + 0x50], eax
mov ecx, dword [str.interrupted]
test ecx, ecx
mov dword [esp + 0x10], eax
mov eax, str.unknown_error
je 0x455bf4
mov eax, ecx
jmp 0x455bf4
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x18]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 8], 0x20
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + edx*8]
lea edi, [edi + eax*8]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x30], eax
jne 0x4555c6
mov eax, esi
call fcn.0041e3a0
test byte [esi + 8], 0x20
je 0x455452
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4555f0
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
push eax
mov eax, dword [esi]
call fcn.0041b920
add esp, 0xc
test eax, eax
jne 0x4559e1
mov eax, dword [esp + 0x30]
test eax, eax
jl case.0x451ec1.10
mov eax, dword [edi + 4]
mov ecx, dword [edi]
push eax
mov eax, dword [esi]
push ecx
call fcn.0041ba30
add esp, 8
jmp case.0x451ec1.10
mov ecx, dword [esp + 0x14]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [ebx + 8]
cdq
je 0x455628
add dword [ecx + 0x1d0], eax
adc dword [ecx + 0x1d4], edx
jmp case.0x451ec1.10
cmp dword [ebx + 4], 0
je 0x45563f
add dword [ecx + 0x1c8], eax
adc dword [ecx + 0x1cc], edx
jmp case.0x451ec1.10
mov ecx, dword [ebp + 8]
add dword [ecx + 0x88], eax
adc dword [ecx + 0x8c], edx
jmp case.0x451ec1.10
cmp dword [ebx + 4], 0
je 0x455671
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x1c8]
or edx, dword [eax + 0x1cc]
jne case.0x451ec1.10
jmp 0x45568a
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x88]
or edx, dword [eax + 0x8c]
jne case.0x451ec1.10
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1d0]
or ecx, dword [eax + 0x1d4]
je 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 4], 0
jg 0x4559e1
jl case.0x451ec1.10
cmp dword [ecx + eax*8], 0
ja 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea ecx, [eax + edx*8]
mov eax, dword [ebx + 0xc]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
cmp dword [ecx + 4], 0
jl 0x4559e1
jg case.0x451ec1.10
cmp dword [ecx], 0
jb 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
mov esi, dword [edx + ecx*8]
mov edi, dword [edx + ecx*8 + 4]
lea ecx, [edx + ecx*8]
mov eax, esi
or eax, edi
je case.0x451ec1.10
mov eax, dword [ebx + 0xc]
cdq
add eax, esi
adc edx, edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp 0x4559e1
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
add dword [edx + ecx*8], 0xffffffff
lea eax, [edx + ecx*8]
mov ecx, dword [eax]
adc dword [eax + 4], 0xffffffff
or ecx, dword [eax + 4]
je 0x4559e1
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [eax + 4]
mov esi, ecx
add esi, 1
mov edi, edx
adc edi, 0
mov dword [eax], esi
mov dword [eax + 4], edi
mov eax, ecx
or eax, edx
je 0x4559e1
jmp case.0x451ec1.10
movzx ebx, byte [ebx + 3]
mov esi, dword [esp + 0x14]
lea ecx, [ebx*4 + 0x1c]
push 0
push ecx
call fcn.00417290
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x455452
mov esi, dword [esp + 0x1c]
mov dword [ecx + 8], 0
mov edx, dword [esi + 0x10]
mov dword [ecx + 4], edx
mov edx, esi
sub edx, dword [esp + 0x48]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 8]
mov byte [ecx + 0x1a], bl
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], edx
mov byte [esi + 1], 0xec
mov dword [esi + 0x10], ecx
mov byte [esi], 0x90
mov ebx, esi
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x18]
mov esi, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
cmp dword [esi + 8], eax
mov dword [esp + 0x30], eax
je 0x45582d
movzx ecx, byte [esi + 0x1a]
sub ecx, 1
mov dword [esi + 8], eax
js 0x45582d
lea edx, [esi + ecx*4 + 0x1c]
mov eax, dword [ebx + 8]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx], eax
sub ecx, 1
sub edx, 4
test ecx, ecx
jge 0x455812
mov eax, dword [esp + 0x30]
mov ecx, 1
add dword [eax + 0xc], ecx
mov word [esp + 0x1c0], cx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x1d0], 0
mov eax, dword [esi + 4]
lea edx, [esp + 0x1b8]
mov dword [esi], edx
movzx edx, byte [esi + 0x1a]
lea ecx, [esi + 0x1c]
push ecx
push edx
mov byte [esi + 0x19], 0
mov byte [esi + 0x18], 0
mov eax, dword [eax + 0x10]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x4558bd
cmp dword [esi + 0x14], 0
je 0x4558b1
lea ecx, [esp + 0x1b8]
push ecx
call fcn.00424640
mov edi, dword [ebp + 8]
add esp, 4
push eax
push 0x483c34
call fcn.00427470
mov edx, dword [esi + 0x14]
mov edi, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x10], edx
lea eax, [esp + 0x1b8]
call fcn.0041cce0
cmp byte [esi + 0x18], 0
je case.0x451ec1.10
mov eax, dword [ebx - 0x10]
test eax, eax
je case.0x451ec1.10
lea eax, [eax + eax*4]
push 0
push 1
lea eax, [edi + eax*8]
call fcn.0041e490
add esp, 8
jmp case.0x451ec1.10
mov eax, dword [ebx + 4]
mov edx, dword [esp + 0x18]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov ecx, dword [ebx + 0x10]
mov eax, esi
call fcn.00416940
test eax, eax
mov dword [esp + 0x10], eax
je 0x455922
push esi
call fcn.00424640
mov edi, dword [ebp + 8]
add esp, 4
push eax
push 0x483c34
call fcn.00427470
add esp, 8
mov ecx, esi
call fcn.0040c560
test eax, eax
jne 0x45299b
jmp case.0x451ec1.10
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
mov dword [esp + 0xd8], eax
mov dword [esp + 0xd4], eax
mov eax, dword [ebx + 8]
push eax
push ecx
xor esi, esi
push edx
lea eax, [esp + 0xe4]
lea ecx, [esp + 0xe0]
mov dword [esp + 0xdc], esi
call fcn.00435210
add esp, 0xc
cmp eax, 5
mov dword [esp + 0x10], eax
jne 0x45598b
mov dword [esp + 0x10], esi
mov dword [esp + 0xd0], 1
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jmp 0x4559a0
mov eax, dword [esp + esi*4 + 0xd0]
cdq
push edx
push eax
mov eax, edi
call fcn.0041e490
add esi, 1
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x4559a0
jmp case.0x451ec1.10
cmp dword [ebx + 4], 0
jne 0x4559d2
mov eax, dword [esp + 0x14]
call fcn.0040bfa0
jmp case.0x451ec1.10
mov eax, dword [ebp + 8]
or dword [eax + 0x58], 8
jmp case.0x451ec1.10
cmp dword [ebx + 8], 0
je case.0x451ec1.10
mov ebx, dword [ebx + 8]
mov eax, dword [esp + 0x48]
lea edx, [ebx + ebx*4]
lea ecx, [eax + edx*4 - 0x14]
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x1c]
add ebx, 0x14
cmp dword [esp + 0x10], 0
mov dword [esp + 0x1c], ebx
jne 0x4529b3
mov ecx, dword [esp + 0x14]
jmp 0x451e90
mov edx, dword [ebx + 4]
test edx, edx
mov dword [edi + 0x50], edx
mov al, byte [ebx + 8]
mov byte [edi + 0x56], al
mov dword [edi + 0x4c], esi
je 0x455a9d
mov al, byte [ebx + 3]
test al, al
je 0x455a59
movzx ecx, al
mov ecx, dword [ecx*4 + 0x480fbc]
test ecx, ecx
je 0x455a5b
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x455a5b
mov edi, dword [ebp + 8]
push eax
push ecx
push str._s_constraint_failed:__s
call fcn.00427470
add esp, 0xc
jmp 0x455a7b
xor ecx, ecx
mov eax, dword [ebx + 0x10]
test eax, eax
mov edi, dword [ebp + 8]
je 0x455a6d
push eax
push 0x483c34
jmp 0x455a73
push ecx
push str._s_constraint_failed
call fcn.00427470
add esp, 8
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0xa0]
mov ecx, dword [ebx + 4]
push edx
push eax
push esi
push str.abort_at__d_in___s_:__s
call fcn.004275c0
mov edi, dword [ebp + 8]
add esp, 0x10
mov esi, edi
call fcn.00450c60
cmp eax, 5
jne 0x455ab1
mov dword [edi + 0x50], eax
jmp 0x452a0b
mov eax, dword [edi + 0x50]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
jmp 0x452a0b
sub ebx, dword [esp + 0x48]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 5
mov byte [edi + 0x3f], 0
mov dword [esi + 0x50], eax
jmp 0x452a0b
test ecx, ecx
je 0x455b1f
push 0x204
mov eax, edi
call fcn.0044bc90
mov esi, dword [ebp + 8]
add esp, 4
mov byte [edi + 0x3f], 1
mov eax, edi
call fcn.00415d20
mov eax, dword [esi + 0x50]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
jmp 0x452a0b
mov eax, dword [ebp + 8]
push 1
call fcn.00429bc0
add esp, 4
test eax, eax
jne 0x452a0b
mov cl, byte [esp + 0x30]
mov esi, dword [ebp + 8]
mov byte [edi + 0x3f], cl
call fcn.00450c60
cmp eax, 5
jne 0x455b06
sub ebx, dword [esp + 0x48]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, 1
sub cl, byte [esp + 0x30]
mov dword [esi + 0x4c], eax
mov eax, 5
mov byte [edi + 0x3f], cl
mov dword [esi + 0x50], eax
jmp 0x452a0b
mov dword [esp + 0x10], 8
mov edi, eax
jmp 0x452c24
sub ebx, dword [esp + 0x48]
mov ecx, dword [ebp + 8]
mov eax, 0x66666667
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x4c], eax
mov eax, 5
mov dword [ecx + 0x50], eax
jmp 0x452a0b
mov eax, 0x12709
call fcn.004276b0
mov dword [esp + 0x10], eax
jmp 0x452c20
mov edi, esi
jmp 0x452c24
cmp dword [esp + 0x10], 0xc0a
je 0x4529b7
cmp dword [esp + 0x10], 0x204
je 0x455bef
mov ecx, dword [esp + 0x10]
mov eax, str.unknown_error
call fcn.0040a090
jmp 0x455bf4
mov eax, str.abort_due_to_ROLLBACK
mov edi, dword [ebp + 8]
push eax
push 0x483c34
call fcn.00427470
add esp, 8
jmp 0x4529b3