Function at 0x45a960
Capabilities:
Parse credit card information
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x354
mov eax, dword [0x4a7464]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 4]
push edi
mov edi, dword [esi]
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esi + 8]
xor ebx, ebx
mov dword [ebp - 0x148], eax
mov al, byte [edx + 0x4d]
mov edx, dword [edi + 0x20]
mov byte [ebp - 0x104], al
mov eax, dword [edi + 0x24]
push esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0xe0], ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xcc], edi
mov byte [ebp - 0x111], bl
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x124], eax
call fcn.00415710
add esp, 4
cmp dword [esi + 0x50], 7
je 0x45c43a
mov dword [esi + 0x50], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x14], ebx
mov ecx, dword [edi + 0xe8]
mov dword [edi + 0x1bc], ebx
test ecx, ecx
jne 0x45fa88
cmp dword [edi + 0x11c], ebx
je 0x45aa49
mov eax, dword [esi + 0x7c]
cmp eax, ebx
jne 0x45aa3b
mov edx, dword [edi + 0x124]
jmp 0x45aa43
xor edx, edx
div dword [edi + 0x124]
mov dword [ebp - 0x138], edx
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0xe0], eax
jmp 0x45aa60
mov ecx, dword [ebp - 0xcc]
cmp byte [ecx + 0x40], 0
jne 0x45c43a
mov eax, dword [ebp - 0xe0]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x148]
mov ebx, 1
add dword [ebp - 0x13c], ebx
test byte [eax + edx*4 + 2], 2
lea edi, [eax + edx*4]
mov dword [ebp - 0xf4], edi
je 0x45aacc
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xd4]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
mov eax, 0x2460
mov dword [ebp - 0xdc], esi
test word [esi + 0x1c], ax
je 0x45aac3
push esi
call fcn.0041eac0
add esp, 4
mov ecx, 4
mov word [esi + 0x1c], cx
mov cl, byte [edi]
movzx eax, cl
dec eax
cmp eax, 0x9a
ja case.default.0x45aadd
jmp dword [eax*4 + 0x45fac8]
mov ebx, dword [ebp - 0xd0]
jmp 0x45f49f
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea ecx, [eax + edx*8]
mov eax, dword [ebp - 0xe0]
mov edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [edi + 8]
sub eax, ebx
mov dword [ebp - 0xe0], eax
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*8]
mov ecx, dword [eax + 0x10]
mov edx, 0x80
mov dword [ebp - 0xe0], ecx
mov word [eax + 0x1c], dx
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0xc]
sub eax, ebx
cdq
mov dword [ecx + 0x14], edx
mov edx, 4
mov dword [ecx + 0x10], eax
mov word [ecx + 0x1c], dx
mov edi, dword [edi + 8]
mov dword [ebp - 0xdc], ecx
test edi, edi
je case.default.0x45aadd
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x148]
mov eax, dword [eax + edx*4 + 8]
sub eax, ebx
mov edx, 0x80
mov dword [ebp - 0xe0], eax
mov word [ecx + 0x1c], dx
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [edi + edi*4]
mov esi, dword [ecx + eax*8 + 0x10]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xe0]
mov edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov dword [ebp - 0xe0], esi
jmp case.default.0x45aadd
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], bl
je case.default.0x45aadd
cmp dword [edi + 4], 0
mov ebx, dword [ebp - 0xd0]
jne 0x45f84e
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x45f84e
mov edx, dword [eax + 4]
mov ecx, dword [ebx + 0x5c]
dec dword [ebx + 0xb8]
mov esi, dword [ebp - 0xcc]
mov dword [ebx + 0xb0], edx
add dword [esi + 0x54], ecx
mov dword [esi + 0x50], ecx
call fcn.004158d0
cmp dword [edi + 8], 4
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
mov dword [ebp - 0xe0], eax
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], edx
jne 0x45ac7a
mov ecx, dword [ebx + 4]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 + 8]
dec edx
mov dword [ebp - 0xe0], edx
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0xd4], ecx
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x45aadd
mov edi, dword [edi + 0x10]
mov edx, dword [edi]
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], edx
mov ecx, dword [edi + 4]
mov dword [eax + 0x14], ecx
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xdc]
mov edx, 8
mov word [eax + 0x1c], dx
mov ecx, dword [edi + 0x10]
fld qword [ecx]
fstp qword [eax + 8]
jmp case.default.0x45aadd
mov ecx, dword [edi + 0x10]
mov byte [edi], 0x1b
call fcn.0040ffd0
cmp byte [ebp - 0x104], bl
mov ebx, dword [ebp - 0xdc]
mov dword [edi + 4], eax
je 0x45ad62
push 1
push ecx
xor eax, eax
or ecx, 0xffffffff
mov edx, ebx
call fcn.004299b0
add esp, 8
mov dword [ebp - 0xc8], eax
cmp eax, 0x12
je 0x45b6f5
movzx ecx, byte [ebp - 0x104]
mov eax, ebx
call fcn.004298f0
test eax, eax
jne 0x45c43a
mov esi, dword [ebp - 0xcc]
mov edx, 0x800
or word [ebx + 0x1c], dx
mov dword [ebx + 0x24], eax
cmp byte [edi + 1], 0xff
jne 0x45ad50
mov eax, dword [edi + 0x10]
mov ecx, esi
call fcn.0040fdf0
mov byte [edi + 1], 0xff
mov eax, dword [ebx + 4]
mov dword [edi + 0x10], eax
mov ecx, dword [ebx + 0x18]
mov dword [edi + 4], ecx
jmp 0x45ad68
mov esi, dword [ebp - 0xcc]
mov edx, dword [edi + 4]
cmp edx, dword [esi + 0x58]
jg 0x45b6fb
jmp 0x45ad7c
mov ebx, dword [ebp - 0xdc]
mov eax, 0xa02
mov word [ebx + 0x1c], ax
mov ecx, dword [edi + 0x10]
mov al, byte [ebp - 0x104]
mov dword [ebx + 4], ecx
mov edx, dword [edi + 4]
mov dword [ebx + 0x18], edx
mov byte [ebx + 0x1e], al
jmp case.default.0x45aadd
mov esi, dword [edi + 0xc]
sub esi, dword [edi + 8]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
neg ecx
sbb ecx, ecx
and ecx, 0x100
inc ecx
movzx ebx, cx
mov word [edx + 0x1c], bx
test esi, esi
jle case.default.0x45aadd
mov edi, edx
lea ebx, [ebx]
add edi, 0x28
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x45ade7
push edi
call fcn.0041eac0
add esp, 4
dec esi
mov word [edi + 0x1c], bx
test esi, esi
jg 0x45add0
mov dword [ebp - 0xdc], edi
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*8]
mov cx, word [eax + 0x1c]
mov edx, 0xff7f
and cx, dx
or cx, bx
mov dword [ebp - 0xdc], eax
mov word [eax + 0x1c], cx
jmp case.default.0x45aadd
mov eax, dword [edi + 0x10]
mov esi, dword [ebp - 0xdc]
mov ecx, dword [edi + 4]
push 0
push eax
xor eax, eax
mov edx, esi
call fcn.004299b0
mov cl, byte [ebp - 0x104]
add esp, 8
mov byte [esi + 0x1e], cl
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov edi, dword [edi + 4]
mov ecx, dword [eax + 0x3c]
lea edx, [edi + edi*4]
lea esi, [ecx + edx*8 - 0x28]
mov ecx, esi
call fcn.00415510
test eax, eax
jne 0x45b6f5
mov ebx, dword [ebp - 0xdc]
push 0x800
push esi
call fcn.0041ec00
add esp, 8
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
mov edi, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], edx
lea edx, [edi + edi*4]
lea ebx, [eax + ecx*8]
lea eax, [eax + edx*8]
mov dword [ebp - 0xdc], eax
jmp 0x45aec0
mov eax, dword [ebp - 0xdc]
mov ecx, 0x2460
test word [eax + 0x1c], cx
je 0x45aeda
push eax
call fcn.0041eac0
add esp, 4
mov edx, dword [ebp - 0xdc]
mov eax, dword [edx + 0x24]
mov esi, ebx
mov edi, edx
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x80
mov word [ebx + 0x1c], cx
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], eax
add edx, 0x28
add ebx, 0x28
sub dword [ebp - 0xd8], 1
mov dword [ebp - 0xdc], edx
jne 0x45aec0
jmp case.default.0x45aadd
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], edx
lea edx, [edi + edi*4]
lea ebx, [eax + edx*8]
lea esi, [eax + ecx*8]
mov dword [ebp - 0xdc], ebx
push 0x1000
push esi
call fcn.0041ec00
mov eax, 0x1000
add esp, 8
test word [ebx + 0x1c], ax
je 0x45af6a
mov eax, ebx
call fcn.004271a0
test eax, eax
jne 0x45c43a
mov eax, dword [ebp - 0xd8]
mov ecx, eax
dec eax
mov dword [ebp - 0xd8], eax
test ecx, ecx
je case.default.0x45aadd
add dword [ebp - 0xdc], 0x28
mov ebx, dword [ebp - 0xdc]
add esi, 0x28
jmp 0x45af42
mov eax, dword [edi + 8]
mov edi, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea ebx, [eax + edx*8]
lea ecx, [edi + edi*4]
lea edx, [eax + ecx*8]
push 0x1000
push edx
mov dword [ebp - 0xdc], ebx
call fcn.0041ec00
add esp, 8
jmp case.default.0x45aadd
mov esi, dword [ebp - 0xcc]
mov eax, dword [esi + 0x11c]
test eax, eax
je 0x45aff6
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebp - 0x138]
jb 0x45aff6
mov edx, dword [esi + 0x120]
push edx
call eax
add esp, 4
test eax, eax
jne 0x45f505
mov esi, dword [ebp - 0xd0]
push 0
call fcn.00439ac0
add esp, 4
mov dword [ebp - 0xc8], eax
test eax, eax
jne case.default.0x45aadd
push ebx
push esi
call fcn.0044ddc0
add esp, 8
mov dword [ebp - 0xc8], eax
test eax, eax
jne case.default.0x45aadd
mov edx, dword [esi + 0x48]
mov ecx, dword [ebp - 0xd4]
add edx, 2
or edx, ebx
mov dword [esi + 0x48], edx
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
xor ebx, ebx
mov dword [esi + 0x14], eax
cmp dword [edi + 8], ebx
jle 0x45b07c
mov esi, eax
mov edx, 0x1000
test word [esi + 0x1c], dx
je 0x45b06c
mov eax, esi
call fcn.004271a0
test eax, eax
jne 0x45c43a
mov eax, esi
call fcn.00423df0
inc ebx
add esi, 0x28
cmp ebx, dword [edi + 8]
jl 0x45b052
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 0x40], 0
jne 0x45c43a
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xd0]
inc ecx
mov dword [edx + 0x4c], ecx
mov esi, 0x64
jmp 0x45f598
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea esi, [eax + ecx*8]
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
lea edx, [ecx + ecx*4]
lea ebx, [eax + edx*8]
mov dl, byte [ebx + 0x1c]
lea ecx, [edi + edi*4]
lea edi, [eax + ecx*8]
movzx eax, word [esi + 0x1c]
or dl, al
mov dword [ebp - 0xe4], esi
mov dword [ebp - 0xdc], edi
test dl, 1
je 0x45b0ed
mov esi, edi
call fcn.00415370
jmp case.default.0x45aadd
test eax, 0x4000
je 0x45b103
mov eax, esi
call fcn.00423d90
test eax, eax
jne 0x45c43a
mov eax, 0x4000
test word [ebx + 0x1c], ax
je 0x45b11d
mov eax, ebx
call fcn.00423d90
test eax, eax
jne 0x45c43a
test byte [esi + 0x1c], 0x12
jne 0x45b143
movzx esi, byte [ebp - 0x104]
mov eax, dword [ebp - 0xe4]
call fcn.00429910
test eax, eax
jne 0x45c43a
mov esi, dword [ebp - 0xe4]
test byte [ebx + 0x1c], 0x12
jne 0x45b165
movzx esi, byte [ebp - 0x104]
mov eax, ebx
call fcn.00429910
test eax, eax
jne 0x45c43a
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebx + 0x18]
add eax, dword [esi + 0x18]
cdq
mov ecx, edx
mov edx, dword [ebp - 0xcc]
mov esi, eax
mov eax, dword [edx + 0x58]
cdq
cmp ecx, edx
jg 0x45b6f5
jl 0x45b18c
cmp esi, eax
ja 0x45b6f5
xor eax, eax
cmp edi, ebx
sete al
push eax
lea eax, [esi + 2]
call fcn.00423c60
add esp, 4
test eax, eax
jne 0x45c43a
mov cx, word [edi + 0x1c]
mov edx, 0xbe02
and cx, dx
or cx, 2
mov word [edi + 0x1c], cx
cmp edi, ebx
je 0x45b1d3
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 4]
push eax
push ecx
push edx
call fcn.00476cc0
add esp, 0xc
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [ebx + 0x18]
add eax, dword [edi + 4]
push ecx
push edx
push eax
call fcn.00476cc0
mov ecx, dword [edi + 4]
mov byte [esi + ecx], 0
mov edx, dword [edi + 4]
mov cl, byte [ebp - 0x104]
mov byte [edx + esi + 1], 0
mov eax, 0x200
add esp, 0xc
or word [edi + 0x1c], ax
mov dword [edi + 0x18], esi
mov byte [edi + 0x1e], cl
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea ebx, [eax + edx*8]
mov esi, ebx
call fcn.00416770
movzx ecx, ax
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea esi, [eax + edx*8]
mov dword [ebp - 0xe8], ecx
call fcn.00416770
movzx ecx, ax
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], ecx
lea ecx, [eax + edx*8]
mov dl, byte [esi + 0x1c]
or dl, byte [ebx + 0x1c]
mov dword [ebp - 0xdc], ecx
test dl, 1
jne 0x45b4e0
mov al, byte [ebp - 0xd8]
and al, byte [ebp - 0xe8]
test al, 4
je 0x45b3c7
mov edx, dword [esi + 0x10]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x130], edx
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x12c], edx
movzx edx, byte [edi]
add edx, 0xffffffa7
mov byte [ebp - 0x105], 1
cmp edx, 3
ja case.default.0x45b2bb
jmp dword [edx*4 + 0x45fd34]
push ecx
push eax
lea eax, [ebp - 0x130]
push eax
call fcn.00410ce0
add esp, 0xc
test eax, eax
jne 0x45b3ce
jmp 0x45b396
push ecx
push eax
lea edx, [ebp - 0x130]
call fcn.00410d80
add esp, 8
test eax, eax
jne 0x45b3ce
jmp 0x45b396
push ecx
push eax
lea ecx, [ebp - 0x130]
push ecx
call fcn.00410dd0
add esp, 0xc
test eax, eax
jne 0x45b3ce
jmp 0x45b396
mov edx, eax
or edx, ecx
je 0x45b4e0
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x45b344
cmp dword [ebp - 0x130], 0
jne 0x45b344
cmp dword [ebp - 0x12c], 0x80000000
je 0x45b3ce
push ecx
mov ecx, dword [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x12c]
push eax
push ecx
call fcn.004787a0
jmp 0x45b38a
mov edx, eax
or edx, ecx
je 0x45b4e0
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x45b375
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x12c]
push eax
push ecx
call fcn.00478850
mov dword [ebp - 0x12c], edx
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
mov dword [eax + 0x10], edx
mov dx, word [eax + 0x1c]
mov dword [eax + 0x14], ecx
mov ecx, 0xbe04
and dx, cx
or dx, 4
mov word [eax + 0x1c], dx
jmp case.default.0x45aadd
mov byte [ebp - 0x105], 0
mov eax, ebx
call fcn.004151b0
fstp qword [ebp - 0x100]
mov eax, esi
call fcn.004151b0
movzx eax, byte [edi]
add eax, 0xffffffa7
cmp eax, 3
ja case.default.0x45b3ed
jmp dword [eax*4 + 0x45fd44]
fadd qword [ebp - 0x100]
jmp 0x45b470
fsub qword [ebp - 0x100]
jmp 0x45b470
fmul qword [ebp - 0x100]
jmp 0x45b470
fldz
fld qword [ebp - 0x100]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x45b4dc
fdivp st(1)
jmp 0x45b470
fld qword [ebp - 0x100]
call fcn.00477c46
mov esi, eax
mov edi, edx
call fcn.00477c46
mov ecx, esi
or ecx, edi
je 0x45b4e0
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x45b455
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00478850
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], edx
fild qword [ebp - 0x230]
sub esp, 8
fst qword [ebp - 0x100]
fstp qword [esp]
call fcn.0040ffa0
add esp, 8
test eax, eax
jne 0x45b4e0
mov eax, dword [ebp - 0xdc]
fld qword [ebp - 0x100]
mov dx, word [eax + 0x1c]
fstp qword [eax + 8]
mov ecx, 0xbe08
and dx, cx
or dx, 8
mov word [eax + 0x1c], dx
mov al, byte [ebp - 0xd8]
or al, byte [ebp - 0xe8]
test al, 8
jne case.default.0x45aadd
cmp byte [ebp - 0x105], 0
jne case.default.0x45aadd
mov esi, dword [ebp - 0xdc]
call fcn.00415200
jmp case.default.0x45aadd
fstp st(0)
fstp st(0)
mov esi, dword [ebp - 0xdc]
call fcn.00415370
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
test edi, edi
je case.default.0x45aadd
mov eax, dword [ebp - 0xd4]
lea edx, [edi + edi*4]
push 0
push 0
lea esi, [eax + edx*8]
call fcn.00415410
add esp, 8
jmp case.default.0x45aadd
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ecx + 0xc]
mov esi, dword [ebp - 0xd4]
movzx edx, byte [edi + 3]
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea eax, [esi + ecx*8]
mov ecx, dword [edi + 8]
lea ecx, [ecx + ecx*4]
xor ebx, ebx
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xdc], eax
lea esi, [esi + ecx*8]
test edx, edx
jle 0x45b595
jmp 0x45b560
mov edx, dword [ebp - 0xd8]
mov eax, 0x1000
mov dword [edx + ebx*4], esi
test word [esi + 0x1c], ax
je 0x45b583
mov eax, esi
call fcn.004271a0
test eax, eax
jne 0x45c43a
inc ebx
add esi, 0x28
cmp ebx, dword [ebp - 0xe8]
jl 0x45b560
mov eax, dword [ebp - 0xdc]
mov ecx, dword [edi + 0x10]
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0x30c], ecx
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x2d4], ecx
mov dword [ebp - 0x2d0], edx
mov esi, eax
mov ecx, 0xa
lea edi, [ebp - 0x304]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov edx, 1
mov word [eax + 0x1c], dx
mov eax, dword [ebp - 0x2e8]
and eax, 0xbe01
or eax, edx
mov word [ebp - 0x2e8], ax
mov eax, dword [ebp - 0x30c]
mov byte [ebp - 0x2c7], cl
test byte [eax + 2], 0x20
je 0x45b60b
mov ecx, dword [ebp - 0xf4]
mov edx, dword [ecx - 4]
mov dword [ebp - 0x2d8], edx
mov ecx, dword [ebp - 0x128]
mov esi, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x124]
mov dword [esi + 0x20], ecx
mov ecx, dword [ebp - 0xd8]
mov dword [esi + 0x24], edx
mov edx, dword [ebp - 0xe8]
push ecx
push edx
mov edx, dword [eax + 0xc]
lea ecx, [ebp - 0x30c]
push ecx
call edx
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
add esp, 0xc
cmp byte [esi + 0x40], 0
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], ecx
jne 0x45f917
cmp byte [ebp - 0x2c7], 0
je 0x45b6bf
cmp dword [ebp - 0x2cc], 0
je 0x45b6a0
mov bl, 1
lea edi, [ebp - 0x304]
call fcn.00429bb0
mov edi, dword [ebp - 0xd0]
push eax
push 0x498d00
add edi, 0x2c
mov eax, esi
call fcn.00437470
mov edx, dword [ebp - 0x2cc]
add esp, 8
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xe0]
push ecx
push edx
call fcn.00415930
add esp, 8
movzx ecx, byte [ebp - 0x104]
lea eax, [ebp - 0x304]
call fcn.004298f0
mov eax, dword [ebp - 0xdc]
mov edi, eax
mov ecx, 0xa
lea esi, [ebp - 0x304]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.00415510
test eax, eax
je case.default.0x45aadd
mov esi, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xd0]
push str.string_or_blob_too_big
add edi, 0x2c
mov eax, esi
call fcn.00437470
add esp, 4
mov dword [ebp - 0xc8], 0x12
jmp 0x45f50f
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea ebx, [eax + ecx*8]
mov ecx, dword [edi + 8]
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*8]
mov edx, dword [edi + 0xc]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
mov al, byte [ecx + 0x1c]
or al, byte [ebx + 0x1c]
mov dword [ebp - 0xdc], esi
test al, 1
je 0x45b75d
call fcn.00415370
jmp case.default.0x45aadd
call fcn.00415140
mov ecx, ebx
mov dword [ebp - 0x144], eax
mov esi, edx
call fcn.00415140
mov ebx, eax
mov al, byte [edi]
cmp al, 0x55
jne 0x45b786
and dword [ebp - 0x144], ebx
and esi, edx
jmp 0x45b85c
cmp al, 0x56
jne 0x45b797
or dword [ebp - 0x144], ebx
or esi, edx
jmp 0x45b85c
mov ecx, ebx
or ecx, edx
je 0x45b85c
test edx, edx
jg 0x45b7cf
jl 0x45b7ab
test ebx, ebx
jae 0x45b7c4
mov cl, 0xaf
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x45b7cf
jg 0x45b7bd
cmp ebx, 0xffffffc0
jbe 0x45b7cf
neg ebx
adc edx, 0
neg edx
test edx, edx
jl 0x45b7fd
jg 0x45b7cf
cmp ebx, 0x40
jb 0x45b7fd
test esi, esi
jg 0x45b7f0
jl 0x45b7de
cmp dword [ebp - 0x144], 0
jae 0x45b7f0
cmp al, 0x57
je 0x45b7f0
or eax, 0xffffffff
cdq
mov dword [ebp - 0x144], eax
mov esi, edx
jmp 0x45b85c
xor eax, eax
cdq
mov dword [ebp - 0x144], eax
mov esi, edx
jmp 0x45b85c
cmp al, 0x57
mov eax, dword [ebp - 0x144]
mov edx, esi
mov ecx, ebx
jne 0x45b81a
call fcn.00478af0
mov edi, eax
mov dword [ebp - 0x1ac], edx
jmp 0x45b850
call fcn.00478ad0
mov edi, eax
mov dword [ebp - 0x1ac], edx
test esi, esi
jg 0x45b850
jl 0x45b836
cmp dword [ebp - 0x144], 0
jae 0x45b850
mov ecx, 0x40
sub ecx, ebx
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.00478af0
or edi, eax
or dword [ebp - 0x1ac], edx
mov esi, dword [ebp - 0x1ac]
mov dword [ebp - 0x144], edi
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x144]
mov cx, word [eax + 0x1c]
mov dword [eax + 0x10], edx
mov edx, 0xbe04
and cx, dx
or cx, 4
mov dword [eax + 0x14], esi
mov word [eax + 0x1c], cx
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.00415260
mov eax, dword [edi + 8]
cdq
add dword [esi + 0x10], eax
adc dword [esi + 0x14], edx
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea esi, [eax + edx*8]
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x45b8f0
call fcn.004166d0
test byte [esi + 0x1c], 8
je 0x45b8d1
call fcn.00415200
movzx eax, word [esi + 0x1c]
test al, 4
jne 0x45b8f0
mov edi, dword [edi + 8]
test edi, edi
je 0x45f927
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
and eax, 0xbe04
or eax, 4
mov word [esi + 0x1c], ax
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
test byte [edx + ecx*8 + 0x1c], 4
lea esi, [edx + ecx*8]
je case.default.0x45aadd
call fcn.00415290
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [edi + edi*4]
lea edi, [ecx + eax*8]
movzx ecx, word [edi + 0x1c]
test bl, cl
jne case.default.0x45aadd
mov eax, ecx
shr eax, 3
and eax, 2
or eax, ecx
mov word [edi + 0x1c], ax
test al, 2
jne 0x45b964
test al, 0xc
je 0x45b964
movzx esi, byte [ebp - 0x104]
mov eax, edi
call fcn.00429910
mov edx, 0xfff3
and word [edi + 0x1c], dx
movzx eax, word [edi + 0x1c]
test eax, 0x4000
je 0x45b993
mov eax, edi
call fcn.00423d90
mov dword [ebp - 0xc8], eax
mov eax, 0xbfe3
and word [edi + 0x1c], ax
jmp case.default.0x45aadd
mov eax, 0xbfe3
and word [edi + 0x1c], ax
mov dword [ebp - 0xc8], 0
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
movzx eax, word [edx + ecx*8 + 0x1c]
lea edi, [edx + ecx*8]
test al, 1
jne case.default.0x45aadd
test al, 0x10
jne 0x45b9fa
test al, 2
jne 0x45b9e1
test al, 0xc
je 0x45b9e1
movzx esi, byte [ebp - 0x104]
mov eax, edi
call fcn.00429910
mov ax, word [edi + 0x1c]
mov ecx, 0xbe10
and ax, cx
or ax, 0x10
mov word [edi + 0x1c], ax
jmp case.default.0x45aadd
and eax, 0xfe10
mov word [edi + 0x1c], ax
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov eax, dword [ebp - 0xd4]
lea edx, [edi + edi*4]
lea eax, [eax + edx*8]
call fcn.004152f0
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
test byte [edx + ecx*8 + 0x1c], bl
lea esi, [edx + ecx*8]
jne case.default.0x45aadd
call fcn.00415260
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [edi + edi*4]
test byte [ecx + eax*8 + 0x1c], bl
lea esi, [ecx + eax*8]
jne case.default.0x45aadd
call fcn.00415290
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
movzx ebx, word [edx + ecx*8 + 0x1c]
movzx eax, word [esi + 0x1c]
lea ecx, [edx + ecx*8]
mov dword [ebp - 0xd8], ebx
or bl, al
test bl, 1
mov bl, byte [edi + 3]
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xfc], eax
je 0x45bb14
test bl, bl
jns 0x45bace
test al, 1
je 0x45bac4
mov eax, dword [ebp - 0xd8]
test al, 1
je 0x45bac4
test eax, 0x100
jne 0x45bac4
xor eax, eax
jmp 0x45bba2
mov eax, 1
jmp 0x45bba2
test bl, 0x10
je 0x45bafc
mov edi, dword [edi + 8]
lea eax, [edi + edi*4]
mov cx, word [edx + eax*8 + 0x1c]
lea eax, [edx + eax*8]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov dword [ebp - 0xdc], eax
mov word [eax + 0x1c], cx
jmp case.default.0x45aadd
test bl, 8
je case.default.0x45aadd
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
and bl, 0x67
je 0x45bb5c
mov eax, dword [ebp - 0x104]
push eax
mov al, bl
mov edi, esi
call fcn.0042a190
mov ecx, dword [ebp - 0x104]
mov edi, dword [ebp - 0xe4]
push ecx
mov al, bl
call fcn.0042a190
mov edx, dword [ebp - 0xcc]
add esp, 8
cmp byte [edx + 0x40], 0
jne 0x45c43a
mov edi, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xe4]
mov eax, 0x4000
test word [esi + 0x1c], ax
je 0x45bb74
mov eax, esi
call fcn.00423d90
mov ecx, dword [ebp - 0xe4]
mov edx, 0x4000
test word [ecx + 0x1c], dx
je 0x45bb8c
mov eax, ecx
call fcn.00423d90
mov ecx, dword [ebp - 0xe4]
mov eax, dword [edi + 0x10]
mov edx, esi
call fcn.00429db0
mov edx, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0xe4]
movzx ebx, byte [edi]
add ebx, 0xffffffb2
cmp ebx, 4
ja case.default.0x45bbad
jmp dword [ebx*4 + 0x45fd54]
xor ebx, ebx
test eax, eax
sete bl
jmp 0x45bbe8
xor ebx, ebx
test eax, eax
setne bl
jmp 0x45bbe8
xor ebx, ebx
test eax, eax
setl bl
jmp 0x45bbe8
xor ebx, ebx
test eax, eax
setle bl
jmp 0x45bbe8
xor ebx, ebx
test eax, eax
setg bl
jmp 0x45bbe8
xor ebx, ebx
test eax, eax
setge bl
test byte [edi + 3], 0x10
mov eax, ebx
je 0x45bc22
mov edi, dword [edi + 8]
lea ecx, [edi + edi*4]
lea ecx, [edx + ecx*8]
mov dx, word [ecx + 0x1c]
mov edi, 0xbe04
and dx, di
or dx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ebp - 0xdc], ecx
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov ecx, dword [ebp - 0xe4]
jmp 0x45bc30
test eax, eax
je 0x45bc30
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
movzx eax, word [esi + 0x1c]
xor ax, word [ebp - 0xfc]
mov edx, 0x1ff
and ax, dx
xor word [esi + 0x1c], ax
movzx eax, word [ecx + 0x1c]
xor ax, word [ebp - 0xd8]
and ax, dx
xor word [ecx + 0x1c], ax
jmp case.default.0x45aadd
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x154], eax
jmp case.default.0x45aadd
test byte [edi + 3], bl
jne 0x45bc7b
mov dword [ebp - 0x154], 0
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov dword [ebp - 0xd8], ecx
mov ecx, dword [edi + 8]
xor edi, edi
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x10c], edx
mov dword [ebp - 0xfc], ecx
test eax, eax
jle 0x45bd4a
mov edx, dword [ebp - 0xd8]
mov ebx, dword [ebp - 0xd4]
add edx, 0x14
mov dword [ebp - 0xe8], edx
mov edi, edi
mov eax, dword [ebp - 0x154]
test eax, eax
je 0x45bccf
mov esi, dword [eax + edi*4]
jmp 0x45bcd1
mov esi, edi
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ecx + 0x10]
movzx ecx, byte [edx + edi]
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0xe8]
mov eax, dword [eax]
mov dword [ebp - 0xf0], ecx
lea ecx, [esi + edx]
lea ecx, [ecx + ecx*4]
lea edx, [ebx + ecx*8]
mov ecx, dword [ebp - 0x10c]
add ecx, esi
lea ecx, [ecx + ecx*4]
lea ecx, [ebx + ecx*8]
call fcn.00429db0
mov dword [ebp - 0x15c], eax
test eax, eax
jne 0x45bd33
add dword [ebp - 0xe8], 4
inc edi
cmp edi, dword [ebp - 0xec]
jl 0x45bcc0
mov dword [ebp - 0x154], eax
jmp case.default.0x45aadd
cmp dword [ebp - 0xf0], 0
je 0x45bd4a
mov edx, dword [ebp - 0x15c]
neg edx
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x154], 0
jmp case.default.0x45aadd
mov eax, dword [ebp - 0x15c]
test eax, eax
jge 0x45bd73
mov edi, dword [edi + 4]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
jne 0x45bd85
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov edi, dword [edi + 0xc]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x1c], 1
lea ecx, [ebx + eax*8]
je 0x45bdb2
mov esi, 2
jmp 0x45bdc4
call fcn.00415140
or eax, edx
je 0x45bdc2
mov esi, 1
jmp 0x45bdc4
xor esi, esi
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
test byte [ebx + ecx*8 + 0x1c], 1
lea ecx, [ebx + ecx*8]
je 0x45bddb
mov eax, 2
jmp 0x45bded
call fcn.00415140
or eax, edx
je 0x45bdeb
mov eax, 1
jmp 0x45bded
xor eax, eax
cmp byte [edi], 0x48
jne 0x45bdff
lea edx, [eax + esi*2]
movzx eax, byte [esi + edx + 0x495b0c]
jmp 0x45be0a
lea eax, [eax + esi*2]
movzx eax, byte [esi + eax + 0x495b50]
mov edi, dword [edi + 0xc]
lea ecx, [edi + edi*4]
lea ecx, [ebx + ecx*8]
mov dword [ebp - 0xdc], ecx
cmp eax, 2
jne 0x45be37
mov dx, word [ecx + 0x1c]
mov eax, 0xbe01
and dx, ax
or dx, 1
mov word [ecx + 0x1c], dx
jmp case.default.0x45aadd
cdq
mov dword [ecx + 0x14], edx
mov dx, word [ecx + 0x1c]
mov dword [ecx + 0x10], eax
mov eax, 0xbe04
and dx, ax
or dx, 4
mov word [ecx + 0x1c], dx
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0xd4]
mov edi, dword [edi + 8]
lea ecx, [eax + eax*4]
lea ecx, [esi + ecx*8]
lea edx, [edi + edi*4]
lea esi, [esi + edx*8]
mov dword [ebp - 0xdc], esi
test byte [ecx + 0x1c], bl
je 0x45be84
call fcn.00415370
jmp case.default.0x45aadd
call fcn.00415140
or eax, edx
jne 0x45be9f
mov eax, ebx
cdq
push edx
push eax
call fcn.00415410
add esp, 8
jmp case.default.0x45aadd
xor eax, eax
cdq
push edx
push eax
call fcn.00415410
add esp, 8
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea edx, [edi + edi*4]
lea ecx, [eax + ecx*8]
lea esi, [eax + edx*8]
mov dword [ebp - 0xdc], esi
test byte [ecx + 0x1c], bl
je 0x45bede
call fcn.00415370
jmp case.default.0x45aadd
call fcn.00415140
not edx
not eax
push edx
push eax
call fcn.00415410
add esp, 8
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xc8]
mov edx, dword [edi + 4]
cmp byte [ecx + edx], 0
lea eax, [ecx + edx]
je 0x45bf1e
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov byte [eax], bl
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], bl
lea eax, [ecx + eax*8]
je 0x45bf3f
mov eax, dword [edi + 0xc]
jmp 0x45bf65
call fcn.004151b0
fcomp qword [0x493488]
fnstsw ax
test ah, 0x44
jnp 0x45bf55
mov eax, ebx
jmp 0x45bf57
xor eax, eax
cmp byte [edi], 0x2d
jne 0x45bf65
xor edx, edx
test eax, eax
sete dl
mov eax, edx
test eax, eax
je case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x1c], bl
je case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
test byte [eax + edx*8 + 0x1c], bl
jne case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xe8], ecx
lea ecx, [eax + edx*8]
mov eax, dword [ebp - 0xd0]
mov edx, dword [edi + 4]
mov dword [ebp - 0xe4], ecx
mov ecx, dword [eax + 0x38]
mov esi, dword [ecx + edx*4]
movsx edx, word [esi + 0x14]
mov ecx, dword [esi]
lea eax, [esi + edx*4 + 0x58]
mov ebx, esi
mov dword [ebp - 0x110], esi
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf0], ecx
call fcn.004580b0
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa29
mov edx, dword [esi + 0x44]
mov eax, dword [ebp - 0xd0]
cmp edx, dword [eax + 0x48]
jne 0x45c03f
test byte [edi + 3], 0x20
je 0x45c1a5
cmp byte [esi + 0x19], 0
je 0x45c098
cmp dword [ebp - 0xf0], 0
jne 0x45c079
mov eax, dword [esi + 0x10]
mov edx, dword [ebp - 0xd4]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov edx, dword [eax + 0x18]
lea ebx, [esi + 0x48]
mov dword [esi + 0x4c], edx
mov dword [ebx], edx
mov eax, dword [eax + 4]
mov dword [ebp - 0xec], edx
mov dword [esi + 0x54], eax
jmp 0x45c12d
mov eax, dword [ebp - 0xe4]
mov cx, word [eax + 0x1c]
mov edx, 0xbe01
and cx, dx
or cx, 1
mov word [eax + 0x1c], cx
jmp 0x45c418
test byte [esi + 0x1c], 4
jne 0x45c0d8
mov ebx, dword [ebp - 0xf0]
lea edi, [ebp - 0x218]
mov eax, ebx
call fcn.00414db0
movzx ecx, word [ebx + 0x2c]
add ecx, dword [ebx + 0x20]
movzx eax, word [ebx + 0x2e]
mov edi, dword [ebp - 0xf4]
mov dword [esi + 0x54], ecx
mov edx, dword [ebp - 0x218]
lea ebx, [esi + 0x48]
mov dword [ebp - 0xec], eax
mov dword [ebx], edx
jmp 0x45c10a
lea ebx, [esi + 0x48]
mov esi, dword [ebp - 0xf0]
push ebx
call fcn.00414de0
mov eax, esi
movzx edx, word [eax + 0x2c]
movzx ecx, word [eax + 0x2e]
add esp, 4
add edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x110]
mov dword [eax + 0x54], edx
mov esi, eax
mov dword [ebp - 0xec], ecx
mov eax, ecx
mov ecx, dword [ebx]
cmp ecx, eax
ja 0x45c115
mov dword [esi + 0x4c], ecx
jmp 0x45c118
mov dword [esi + 0x4c], eax
mov edx, dword [ebp - 0xcc]
cmp ecx, dword [edx + 0x58]
ja 0x45fa7a
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x48]
mov dword [esi + 0x44], ecx
mov ecx, dword [esi + 0x54]
mov al, byte [ecx]
cmp al, 0x80
jae 0x45c152
movzx eax, al
mov dword [ebp - 0x134], eax
mov ecx, 1
jmp 0x45c172
lea esi, [ebp - 0x134]
call fcn.00410c10
mov esi, dword [ebp - 0x110]
mov edx, dword [ebp - 0xec]
movzx ecx, al
mov eax, dword [ebp - 0x134]
movzx ecx, cl
mov dword [esi + 0x50], ecx
xor ecx, ecx
mov word [esi + 0x16], cx
mov ecx, dword [ebp - 0xf8]
mov dword [ecx], eax
cmp edx, eax
jae 0x45c192
xor ecx, ecx
mov dword [esi + 0x54], ecx
mov dword [esi + 0x4c], ecx
cmp eax, 0x18003
ja 0x45c5a2
cmp eax, dword [ebx]
ja 0x45c5a2
movzx edx, word [esi + 0x16]
cmp edx, dword [ebp - 0xe8]
jg 0x45c3af
mov eax, dword [esi + 0x50]
mov ecx, dword [ebp - 0xf8]
cmp eax, dword [ecx]
jae 0x45c365
mov eax, dword [esi + 0x54]
test eax, eax
jne 0x45c24d
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], eax
mov edx, dword [esi + 0x1c]
mov ebx, dword [ecx]
shr edx, 2
not edx
and edx, 1
push edx
push eax
mov eax, dword [ebp - 0xf0]
push eax
lea eax, [ebp - 0x194]
call fcn.00457af0
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
jne case.default.0x45aadd
mov edx, dword [ebp - 0x190]
mov dword [ebp - 0xec], edx
jmp 0x45c253
mov dword [ebp - 0xec], eax
movzx ecx, word [esi + 0x16]
mov eax, dword [ebp - 0xf8]
mov edx, dword [eax + ecx*4]
mov ebx, dword [esi + 0x50]
mov eax, dword [eax]
add ebx, dword [ebp - 0xec]
add eax, dword [ebp - 0xec]
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0x134], edx
mov dword [ebp - 0xf4], eax
mov al, byte [ebx]
cmp al, 0x80
jae 0x45c295
movzx eax, al
mov dword [ebp - 0x158], eax
inc ebx
jmp 0x45c2bf
lea esi, [ebp - 0x158]
mov ecx, ebx
call fcn.00410c10
mov esi, dword [ebp - 0x110]
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x134]
movzx eax, al
add ebx, eax
mov eax, dword [ebp - 0x158]
mov dword [esi + ecx*4 + 0x58], eax
call fcn.00415aa0
add edx, eax
mov dword [ebp - 0x134], edx
cmp edx, eax
jb 0x45c2f6
mov eax, dword [ebp - 0xf8]
inc ecx
cmp ecx, dword [ebp - 0xe8]
mov dword [ebp - 0xd8], ecx
mov dword [eax + ecx*4], edx
jg 0x45c2fd
cmp ebx, dword [ebp - 0xf4]
jb 0x45c283
jmp 0x45c2fd
mov ebx, dword [ebp - 0xf4]
inc ebx
mov word [esi + 0x16], cx
mov ecx, ebx
sub ecx, dword [ebp - 0xec]
cmp dword [esi + 0x54], 0
mov dword [esi + 0x50], ecx
jne 0x45c335
lea esi, [ebp - 0x194]
call fcn.004150a0
mov esi, dword [ebp - 0x110]
mov edx, 1
mov word [ebp - 0x178], dx
mov edx, dword [ebp - 0x134]
cmp ebx, dword [ebp - 0xf4]
ja 0x45c350
mov eax, dword [esi + 0x48]
cmp edx, eax
ja 0x45c350
cmp ebx, dword [ebp - 0xf4]
jne 0x45c365
cmp edx, eax
je 0x45c365
mov eax, 0x11121
call fcn.00436a10
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
movzx eax, word [esi + 0x16]
cmp eax, dword [ebp - 0xe8]
jg 0x45c3af
cmp byte [edi + 1], 0xf8
jne 0x45c393
mov ecx, dword [edi + 0x10]
mov ebx, dword [ebp - 0xe4]
push 0x800
push ecx
call fcn.0041ec00
add esp, 8
jmp 0x45c418
mov eax, dword [ebp - 0xe4]
mov dx, word [eax + 0x1c]
mov ecx, 0xbe01
and dx, cx
or dx, 1
mov word [eax + 0x1c], dx
jmp 0x45c418
mov eax, dword [ebp - 0xe8]
mov edx, dword [esi + 0x4c]
mov ebx, dword [ebp - 0xf8]
add eax, eax
add eax, eax
mov dword [ebp - 0xd8], eax
cmp edx, dword [ebx + eax + 4]
jb 0x45c46f
mov edi, dword [ebp - 0xe4]
mov eax, 0x2460
test word [edi + 0x1c], ax
je 0x45c3ec
push edi
call fcn.0041eac0
add esp, 4
mov ecx, dword [esi + 0x54]
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x110]
add ecx, dword [ebx + eax]
mov edx, dword [edx + eax + 0x58]
mov esi, edi
call fcn.00415b30
mov eax, dword [ebp - 0xe4]
mov cl, byte [ebp - 0x104]
mov byte [eax + 0x1e], cl
mov eax, dword [ebp - 0xe4]
mov edx, 0x1000
test word [eax + 0x1c], dx
je case.default.0x45aadd
call fcn.004271a0
test eax, eax
je case.default.0x45aadd
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xd0]
push 0x493fc0
add edi, 0x2c
mov byte [eax + 0x40], 1
call fcn.00437470
mov esi, dword [ebp - 0xcc]
add esp, 4
mov dword [ebp - 0xc8], 7
jmp 0x45f50f
mov edx, dword [esi + eax + 0x58]
mov al, byte [edi + 3]
mov dword [ebp - 0x158], edx
test al, 0xc0
je 0x45c48e
cmp edx, 0xc
jb 0x45c48a
test dl, 1
je 0x45c49b
test al, al
js 0x45c49b
mov eax, edx
call fcn.00415aa0
mov edi, eax
test edi, edi
jne 0x45c4bd
mov eax, 0xd
cmp eax, edx
sbb ecx, ecx
not ecx
lea eax, [ebp - 0x218]
and ecx, eax
mov dword [ebp - 0x170], 0
jmp 0x45c559
mov ebx, dword [ebp - 0xe4]
xor eax, eax
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], eax
lea eax, [ebp - 0x194]
call fcn.00415540
mov ecx, dword [esi + 0x1c]
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xd8]
shr ecx, 2
not ecx
and ecx, 1
push ecx
mov ecx, dword [edx + eax]
mov edx, dword [ebp - 0xf0]
push ecx
push edx
lea eax, [ebp - 0x194]
mov ebx, edi
call fcn.00457af0
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
jne case.default.0x45aadd
mov ecx, dword [ebp - 0x190]
mov edx, dword [ebp - 0x158]
mov esi, dword [ebp - 0xe4]
call fcn.00415b30
cmp dword [ebp - 0x170], 0
je 0x45c409
mov eax, esi
mov cx, word [eax + 0x1c]
mov edx, 0xe7ff
and cx, dx
mov edx, 0x200
or cx, dx
mov word [eax + 0x1c], cx
mov ecx, dword [ebp - 0x190]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x170]
mov dword [eax + 0x24], edx
jmp 0x45c40f
mov eax, 0x110df
call fcn.00436a10
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov esi, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov al, byte [esi]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
lea edi, [edx + ecx*8]
test al, al
je case.default.0x45aadd
mov ecx, dword [ebp - 0x104]
push ecx
add esi, ebx
call fcn.0042a190
mov al, byte [esi]
add esp, 4
add edi, 0x28
test al, al
jne 0x45c5d3
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
mov esi, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [edi + 8]
mov edi, dword [edi + 0xc]
lea edx, [ecx + edx*8]
lea eax, [eax + eax*4]
mov dword [ebp - 0xec], edx
lea edx, [edx + eax*8 - 0x28]
mov eax, dword [ebp - 0xd0]
mov dword [ebp - 0xe4], edx
movzx edx, byte [eax + 0x57]
xor ebx, ebx
lea eax, [edi + edi*4]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x14c], ebx
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xdc], ecx
test esi, esi
je 0x45c67a
mov edi, dword [ebp - 0xec]
mov al, byte [esi]
lea esp, [esp]
mov edx, dword [ebp - 0x104]
push edx
call fcn.0042a190
mov al, byte [esi + 1]
inc esi
add esp, 4
add edi, 0x28
test al, al
jne 0x45c660
mov esi, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xf8]
push eax
mov edx, esi
call fcn.004159a0
add esp, 4
mov edi, eax
call fcn.00415aa0
mov ecx, 0x4000
mov dword [ebp - 0xd8], eax
test word [esi + 0x1c], cx
je 0x45c6cf
mov edx, dword [ebp - 0x150]
or edx, dword [ebp - 0x14c]
je 0x45c6c0
mov eax, esi
call fcn.00423d90
jmp 0x45c6cf
mov eax, dword [esi + 0x10]
add dword [ebp - 0x110], eax
sub dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xd8]
cdq
add dword [ebp - 0x150], eax
adc dword [ebp - 0x14c], edx
cmp edi, 0x7f
ja 0x45c6ee
mov eax, 1
jmp 0x45c6f9
push 0
push edi
call fcn.00410c90
add esp, 8
sub esi, 0x28
add ebx, eax
cmp esi, dword [ebp - 0xec]
jae 0x45c680
cmp ebx, 0x7e
jle 0x45c72e
mov eax, ebx
cdq
push edx
push eax
call fcn.00410c90
mov esi, eax
add ebx, esi
mov eax, ebx
cdq
push edx
push eax
call fcn.00410c90
add esp, 0x10
cmp esi, eax
jge 0x45c72f
inc ebx
mov esi, dword [ebp - 0xcc]
mov eax, ebx
cdq
mov edi, eax
add edi, dword [ebp - 0x150]
mov eax, dword [esi + 0x58]
mov ecx, edx
adc ecx, dword [ebp - 0x14c]
cdq
cmp ecx, edx
mov dword [ebp - 0x2b0], edi
jg 0x45b6f5
jl 0x45c764
cmp edi, eax
ja 0x45b6fb
mov eax, edi
mov edi, dword [ebp - 0xdc]
push 0
call fcn.00423c60
add esp, 4
test eax, eax
jne 0x45c43a
mov ecx, dword [edi + 4]
mov dword [ebp - 0xd8], ecx
cmp ebx, 0x80
jae 0x45c798
mov byte [ecx], bl
mov eax, 1
jmp 0x45c79f
mov eax, ebx
call fcn.00410a60
mov esi, dword [ebp - 0xec]
movzx eax, al
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xf0], ebx
mov ecx, dword [ebp - 0xf8]
push ecx
mov edx, esi
call fcn.004159a0
mov ebx, eax
add esp, 4
cmp ebx, 0x80
jae 0x45c7e5
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
mov byte [edx + eax], bl
mov eax, 1
jmp 0x45c7fa
mov edx, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0xe8]
add ecx, edx
mov eax, ebx
call fcn.00410a60
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xd8]
movzx eax, al
add dword [ebp - 0xe8], eax
lea edi, [ecx + edx]
mov ecx, ebx
mov eax, esi
call fcn.00415ac0
add dword [ebp - 0xf0], eax
add esi, 0x28
cmp esi, dword [ebp - 0xe4]
jbe 0x45c7b4
mov eax, dword [ebp - 0xdc]
mov ecx, dword [ebp - 0x2b0]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x110]
mov edx, 0x10
mov word [eax + 0x1c], dx
mov dword [eax + 0x20], 0
test ecx, ecx
je 0x45c861
mov dword [eax + 0x10], ecx
mov ecx, 0x4010
mov word [eax + 0x1c], cx
mov byte [eax + 0x1e], 1
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x38]
mov edx, dword [edi + 4]
mov edx, dword [ecx + edx*4]
mov eax, dword [edx]
xor ecx, ecx
mov dword [ebp - 0x1b8], ecx
mov dword [ebp - 0x1b4], ecx
lea ecx, [ebp - 0x1b8]
push ecx
call fcn.00454e20
mov edx, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xdc]
add esp, 4
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0x10]
mov esi, dword [ebp - 0xcc]
mov dword [ebp - 0xec], eax
test eax, eax
jne 0x45c98d
cmp dword [esi + 0x94], eax
jle 0x45c8e7
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x45c9ff
mov ecx, ebx
call fcn.0040ffd0
mov edx, dword [esi + 0x1ec]
add edx, dword [esi + 0x1e8]
mov edi, eax
push edx
push 0
push esi
call fcn.00419710
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa2f
lea ecx, [edi + 0x21]
call fcn.0041bd40
mov esi, eax
test esi, esi
je case.default.0x45aadd
inc edi
push edi
lea eax, [esi + 0x20]
push ebx
push eax
mov dword [esi], eax
call fcn.00476cc0
mov eax, dword [ebp - 0xcc]
add esp, 0xc
cmp byte [eax + 0x3e], 0
je 0x45c94f
mov byte [eax + 0x3e], 0
mov byte [eax + 0x45], 1
jmp 0x45c955
inc dword [eax + 0x1e8]
mov ecx, dword [eax + 0x1e0]
mov dword [esi + 0x18], ecx
mov edx, dword [eax + 0x1f0]
mov dword [eax + 0x1e0], esi
mov dword [esi + 8], edx
mov ecx, dword [eax + 0x1f4]
mov dword [esi + 0xc], ecx
mov edx, dword [eax + 0x1f8]
mov dword [esi + 0x10], edx
mov eax, dword [eax + 0x1fc]
mov dword [esi + 0x14], eax
jmp case.default.0x45aadd
mov edi, dword [esi + 0x1e0]
mov dword [ebp - 0xf0], 0
test edi, edi
je 0x45c9be
mov ecx, dword [edi]
push ebx
push ecx
call fcn.004100a0
add esp, 8
test eax, eax
je 0x45c9e6
mov edi, dword [edi + 0x18]
inc dword [ebp - 0xf0]
test edi, edi
jne 0x45c9a1
mov edi, dword [ebp - 0xd0]
push ebx
push str.no_such_savepoint:__s
add edi, 0x2c
mov eax, esi
call fcn.00437470
add esp, 8
mov dword [ebp - 0xc8], 1
jmp case.default.0x45aadd
cmp dword [esi + 0x94], 0
mov eax, dword [ebp - 0xec]
jle 0x45ca21
cmp eax, 1
jne 0x45ca21
push str.cannot_release_savepoint___SQL_statements_in_progress
mov edi, dword [ebp - 0xd0]
add edi, 0x2c
mov eax, esi
call fcn.00437470
add esp, 4
mov dword [ebp - 0xc8], 5
jmp case.default.0x45aadd
cmp dword [edi + 0x18], 0
jne 0x45ca87
cmp byte [esi + 0x45], 0
je 0x45ca87
mov dword [ebp - 0xe8], 1
cmp eax, 1
jne 0x45ca91
mov esi, dword [ebp - 0xd0]
push eax
call fcn.00439ac0
mov esi, eax
add esp, 4
test esi, esi
jne 0x45f598
mov ebx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xcc]
mov eax, ebx
mov byte [esi + 0x3e], 1
call fcn.00458d40
cmp eax, 5
je 0x45f936
mov byte [esi + 0x45], 0
mov edx, dword [ebx + 0x50]
mov dword [ebp - 0xc8], edx
jmp 0x45cb63
mov dword [ebp - 0xe8], 0
mov ecx, dword [esi + 0x1e8]
sub ecx, dword [ebp - 0xf0]
dec ecx
mov dword [ebp - 0xf0], ecx
cmp eax, 2
jne 0x45cae5
xor ebx, ebx
cmp dword [esi + 0x14], ebx
jle 0x45cae5
mov dword [ebp - 0xd8], ebx
jmp 0x45cac0
mov edx, dword [esi + 0x10]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [eax + edx + 4]
push 4
push ecx
call fcn.0044f100
add dword [ebp - 0xd8], 0x10
inc ebx
add esp, 8
cmp ebx, dword [esi + 0x14]
jl 0x45cac0
xor ebx, ebx
cmp dword [esi + 0x14], ebx
mov dword [ebp - 0xd8], ebx
jle 0x45cb40
jmp 0x45cb00
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0xec]
mov ecx, dword [esi + 0x10]
push edx
push eax
mov eax, dword [ebx + ecx + 4]
call fcn.0044dd10
add esp, 8
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa2f
mov eax, dword [ebp - 0xd8]
inc eax
add ebx, 0x10
cmp eax, dword [esi + 0x14]
mov dword [ebp - 0xd8], eax
jl 0x45cb00
mov ebx, 2
cmp dword [ebp - 0xec], ebx
jne 0x45cb63
test byte [esi + 0x18], bl
je 0x45cb63
mov eax, esi
call fcn.00415f80
mov eax, esi
call fcn.004281f0
or dword [esi + 0x18], ebx
cmp dword [esi + 0x1e0], edi
je 0x45cb94
jmp 0x45cb70
mov eax, dword [esi + 0x1e0]
mov edx, dword [eax + 0x18]
mov ecx, esi
mov dword [esi + 0x1e0], edx
call fcn.0040fdf0
dec dword [esi + 0x1e8]
cmp dword [esi + 0x1e0], edi
jne 0x45cb70
mov ebx, dword [ebp - 0xec]
cmp ebx, 1
jne 0x45cbcc
mov eax, dword [edi + 0x18]
mov dword [esi + 0x1e0], eax
mov eax, edi
mov ecx, esi
call fcn.0040fdf0
cmp dword [ebp - 0xe8], 0
jne case.default.0x45aadd
mov esi, dword [ebp - 0xcc]
dec dword [esi + 0x1e8]
jmp 0x45cc03
cmp dword [ebp - 0xe8], 0
mov ecx, dword [edi + 8]
mov dword [esi + 0x1f0], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x1f4], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1f8], eax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x1fc], ecx
jne case.default.0x45aadd
mov esi, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xf0]
push edx
push ebx
push esi
call fcn.00419710
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa2f
jmp case.default.0x45aadd
mov ebx, dword [edi + 4]
mov edi, dword [edi + 8]
mov esi, dword [ebp - 0xcc]
test ebx, ebx
je 0x45cc53
cmp byte [esi + 0x3e], 0
jne 0x45cc53
test edi, edi
jne 0x45cc53
cmp dword [esi + 0x94], edi
jle 0x45cc53
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x45c9ff
movzx eax, byte [esi + 0x3e]
cmp ebx, eax
jne 0x45f950
test ebx, ebx
jne 0x45cc6a
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x45cc78
mov eax, str.cannot_rollback___no_transaction_is_active
test edi, edi
jne 0x45cc78
mov eax, str.cannot_commit___no_transaction_is_active
mov edi, dword [ebp - 0xd0]
push eax
add edi, 0x2c
mov eax, esi
call fcn.00437470
add esp, 4
mov dword [ebp - 0xc8], 1
jmp case.default.0x45aadd
mov ecx, dword [edi + 8]
mov esi, dword [ebp - 0xcc]
test ecx, ecx
je 0x45ccb5
test dword [esi + 0x18], 0x2000000
jne 0x45f9e5
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x45cdc4
push ecx
push eax
call fcn.0044ec00
add esp, 8
mov dword [ebp - 0xc8], eax
cmp eax, 5
je 0x45f9f1
test eax, eax
jne 0x45fa2f
cmp dword [edi + 8], eax
je 0x45cd9b
mov ebx, dword [ebp - 0xd0]
test byte [ebx + 0x58], 0x80
je 0x45cd9b
cmp byte [esi + 0x3e], al
je 0x45cd1c
cmp dword [esi + 0x90], 1
jle 0x45cd9b
cmp dword [ebx + 0x68], 0
jne 0x45cd39
inc dword [esi + 0x1ec]
mov eax, dword [esi + 0x1ec]
mov ecx, dword [esi + 0x1e8]
add ecx, eax
mov dword [ebx + 0x68], ecx
mov edx, dword [ebx + 0x68]
dec edx
push edx
push 0
push esi
call fcn.00419710
add esp, 0xc
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45cd6b
mov eax, dword [ebx + 0x68]
push eax
mov eax, dword [ebp - 0xd8]
call fcn.0041ea00
add esp, 4
mov dword [ebp - 0xc8], eax
mov ecx, dword [esi + 0x1f0]
mov dword [ebx + 0x98], ecx
mov edx, dword [esi + 0x1f4]
mov dword [ebx + 0x9c], edx
mov eax, dword [esi + 0x1f8]
mov dword [ebx + 0xa0], eax
mov ecx, dword [esi + 0x1fc]
mov dword [ebx + 0xa4], ecx
mov eax, dword [ebp - 0xd8]
lea edx, [ebp - 0x164]
push edx
push 1
call fcn.00414ef0
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x10]
add esp, 8
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
mov eax, dword [edx + 4]
jmp 0x45cdd0
mov dword [ebp - 0x164], 0
xor eax, eax
cmp byte [edi + 3], 0
je case.default.0x45aadd
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [edi + 0xc]
jne 0x45cdee
cmp eax, dword [edi + 0x10]
je case.default.0x45aadd
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xcc]
mov eax, dword [esi + 0x2c]
mov ecx, ebx
call fcn.0040fdf0
push ebx
mov ebx, str.database_schema_has_changed
call fcn.0041be70
mov dword [esi + 0x2c], eax
mov edi, dword [edi + 4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0x164]
mov edx, edi
shl edx, 4
mov edx, dword [edx + ecx + 0xc]
add esp, 4
cmp dword [edx], eax
je 0x45ce47
mov esi, edi
mov edi, dword [ebp - 0xcc]
call fcn.004281c0
mov esi, dword [ebp - 0xd0]
or dword [esi + 0x58], 0x20
mov dword [ebp - 0xc8], 0x11
jmp case.default.0x45aadd
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 4]
lea ecx, [ebp - 0x1d4]
push ecx
mov ecx, dword [ebp - 0xcc]
push edx
mov edx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.00414ef0
mov eax, dword [ebp - 0x1d4]
mov ecx, dword [ebp - 0xdc]
cdq
add esp, 8
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x45aadd
mov ebx, dword [edi + 4]
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xd4]
shl ebx, 4
add ebx, dword [eax + 0x10]
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
call fcn.00415260
mov eax, dword [esi + 0x10]
mov ecx, dword [edi + 8]
push eax
mov eax, dword [ebx + 4]
push ecx
call fcn.0044ba30
mov dword [ebp - 0xc8], eax
mov eax, dword [edi + 8]
add esp, 8
cmp eax, 1
jne 0x45cef0
mov eax, dword [esi + 0x10]
mov edx, dword [ebx + 0xc]
mov dword [edx], eax
mov eax, dword [ebp - 0xcc]
or dword [eax + 0x18], 2
jmp 0x45cefe
cmp eax, 2
jne 0x45cefe
mov ecx, dword [ebx + 0xc]
mov dl, byte [esi + 0x10]
mov byte [ecx + 0x4c], dl
cmp dword [edi + 4], 1
jne case.default.0x45aadd
mov eax, dword [ebp - 0xcc]
call fcn.00415f80
mov eax, dword [ebp - 0xd0]
and dword [eax + 0x58], 0xffffffdf
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
test byte [eax + 0x58], 0x20
je 0x45cf3d
mov dword [ebp - 0xc8], 4
jmp case.default.0x45aadd
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xcc]
mov esi, dword [edi + 8]
mov dword [ebp - 0xfc], eax
shl eax, 4
add eax, dword [edx + 0x10]
xor ebx, ebx
mov edx, dword [eax + 4]
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 0x10c], edx
cmp cl, 0x35
jne 0x45cf8b
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xe8], 1
cmp al, byte [ecx + 0x57]
jae 0x45cf91
mov byte [ecx + 0x57], al
jmp 0x45cf91
mov dword [ebp - 0xe8], ebx
test byte [edi + 3], 2
je 0x45cfb4
mov edx, dword [ebp - 0xd4]
lea ecx, [esi + esi*4]
lea esi, [edx + ecx*8]
call fcn.00415260
mov esi, dword [esi + 0x10]
cmp esi, 2
jl 0x45fa0d
mov al, byte [edi + 1]
cmp al, 0xfa
jne 0x45cfd0
mov eax, dword [edi + 0x10]
movzx ebx, word [eax + 8]
mov dword [ebp - 0xd8], eax
movzx eax, word [eax + 6]
add ebx, eax
jmp 0x45cfd7
cmp al, 0xf2
jne 0x45cfd7
mov ebx, dword [edi + 0x10]
mov ecx, dword [ebp - 0xfc]
mov edx, dword [edi + 4]
push 1
push ecx
push ebx
mov ebx, dword [ebp - 0xd0]
push edx
call fcn.00458360
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x45c43a
mov eax, dword [ebx]
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xe8]
or dword [ebx + 0x1c], 8
push eax
mov eax, dword [ebp - 0x10c]
push ecx
push edx
push esi
mov byte [ebx + 0x19], 1
call fcn.00414d10
mov edx, dword [ebx]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xd8]
mov dword [ebx + 8], eax
mov cl, byte [edi + 3]
xor eax, eax
and cl, 1
mov byte [edx + 0x52], cl
add esp, 0x10
cmp byte [edi + 1], 0xfa
setne al
add eax, eax
add eax, eax
xor eax, dword [ebx + 0x1c]
and eax, 4
xor dword [ebx + 0x1c], eax
jmp case.default.0x45aadd
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov ebx, dword [ebp - 0xd0]
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.00458360
mov esi, eax
add esp, 0x10
test esi, esi
je 0x45c43a
or dword [esi + 0x1c], 1
mov ecx, dword [ebp - 0xcc]
mov byte [esi + 0x19], 1
movzx eax, byte [edi + 3]
mov edx, dword [ecx]
push 0x41e
or eax, 5
push eax
push 0
lea ebx, [esi + 4]
push edx
mov edx, ebx
call fcn.0044e2f0
add esp, 0x10
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45d14d
mov eax, dword [ebx]
push 1
push eax
call fcn.0044ec00
add esp, 8
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45d14d
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xfc], eax
test eax, eax
je 0x45d130
movzx ecx, byte [edi + 3]
mov eax, dword [ebx]
or ecx, 2
push ecx
lea edx, [ebp - 0x1dc]
push edx
call fcn.00454940
add esp, 8
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45d12a
mov ecx, dword [esi]
mov eax, dword [ebp - 0xfc]
mov edx, dword [ebp - 0x1dc]
push ecx
push eax
mov dword [esi + 8], eax
mov eax, dword [ebx]
push 1
push edx
call fcn.00414d10
add esp, 0x10
mov dword [ebp - 0xc8], eax
and dword [esi + 0x1c], 0xfffffffb
jmp 0x45d14d
mov eax, dword [esi]
push eax
mov eax, dword [ebx]
push 0
push 1
push 1
call fcn.00414d10
add esp, 0x10
or dword [esi + 0x1c], 4
mov dword [ebp - 0xc8], eax
xor ecx, ecx
cmp byte [edi + 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 case.default.0x45aadd
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xd0]
push 1
push 0xffffffffffffffff
push edx
push eax
call fcn.00458360
add esp, 0x10
test eax, eax
je 0x45c43a
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edi + 0x10]
push edx
mov dword [eax + 8], ecx
call fcn.00424230
add esp, 4
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
mov ebx, dword [ebp - 0xd0]
push 0
push 0xffffffffffffffff
push eax
push ecx
call fcn.00458360
add esp, 0x10
test eax, eax
je 0x45c43a
mov byte [eax + 0x19], 1
mov edx, dword [edi + 8]
or dword [eax + 0x1c], 4
mov dword [eax + 0x10], edx
jmp case.default.0x45aadd
mov esi, dword [ebp - 0xd0]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x38]
mov edx, dword [ecx + eax*4]
push edx
push esi
call fcn.00458020
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x38]
add esp, 8
mov dword [ecx + eax*4], 0
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x38]
mov edx, dword [edi + 4]
mov ebx, dword [ecx + edx*4]
test byte [ebx + 0x1c], 4
movzx ecx, byte [edi]
mov dword [ebp - 0xf8], ecx
mov byte [ebx + 0x19], 0
je 0x45d303
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea esi, [eax + edx*8]
call fcn.004166d0
mov ecx, esi
call fcn.00415140
mov ecx, eax
mov byte [ebx + 0x1a], 0
movzx eax, word [esi + 0x1c]
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], edx
test al, 4
jne 0x45d2b6
test al, 8
jne 0x45d27a
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
fild qword [ebp - 0x1a0]
fcom qword [esi + 8]
fnstsw ax
test ah, 0x41
jne 0x45d29d
test byte [ebp - 0xf8], 1
fstp st(0)
jne 0x45d2b6
dec dword [ebp - 0xf8]
jmp 0x45d2b6
fcomp qword [esi + 8]
fnstsw ax
test ah, 5
jp 0x45d2b6
test byte [ebp - 0xf8], 1
je 0x45d2b6
inc dword [ebp - 0xf8]
lea eax, [ebp - 0x118]
push eax
xor esi, esi
push esi
push edx
push ecx
mov ecx, dword [ebx]
push esi
push ecx
call fcn.00453520
add esp, 0x18
mov dword [ebp - 0xc8], eax
cmp eax, esi
jne 0x45fa29
cmp dword [ebp - 0x118], esi
jne 0x45d37e
mov edx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x19c]
mov byte [ebx + 0x1a], 1
mov dword [ebx + 0x38], edx
mov dword [ebx + 0x3c], eax
jmp 0x45d37e
mov eax, dword [edi + 0x10]
mov edx, dword [ebx + 8]
dec ecx
mov word [ebp - 0x2c0], ax
test cl, 1
sete al
mov dword [ebp - 0x2c4], edx
mov edx, dword [ebp - 0xd4]
lea eax, [eax + eax - 1]
mov byte [ebp - 0x2be], al
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, 0x4000
mov dword [ebp - 0x2bc], eax
test word [eax + 0x1c], cx
je 0x45d34c
call fcn.00423d90
mov ecx, dword [ebx]
lea edx, [ebp - 0x118]
push edx
push 0
push 0
push 0
lea eax, [ebp - 0x2c4]
push eax
push ecx
call fcn.00453520
add esp, 0x18
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa29
mov byte [ebx + 0x1a], al
xor esi, esi
mov ecx, dword [ebp - 0xf8]
cmp ecx, 0x3d
mov byte [ebx + 0x1b], 0
mov dword [ebx + 0x44], esi
mov eax, dword [ebp - 0x118]
jl 0x45d3c3
cmp eax, esi
jl 0x45d3ac
jne 0x45d3a1
cmp ecx, 0x3e
je 0x45d3ac
mov dword [ebp - 0x118], esi
jmp case.default.0x45aadd
lea edx, [ebp - 0x118]
mov dword [ebp - 0x118], esi
mov eax, dword [ebx]
push edx
push eax
call fcn.00457310
jmp 0x45d3f6
cmp eax, esi
jg 0x45d3e1
jne 0x45d3ce
cmp ecx, 0x3b
je 0x45d3e1
mov ecx, dword [ebx]
xor edx, edx
cmp byte [ecx + 0x51], 1
setne dl
mov dword [ebp - 0x118], edx
jmp 0x45d40b
lea eax, [ebp - 0x118]
mov dword [ebp - 0x118], esi
mov ecx, dword [ebx]
push eax
push ecx
call fcn.00457490
add esp, 8
mov dword [ebp - 0xc8], eax
cmp eax, esi
jne 0x45fa29
mov byte [ebx + 0x1a], 0
cmp dword [ebp - 0x118], esi
je case.default.0x45aadd
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x38]
mov esi, dword [ecx + edx*4]
mov eax, dword [ebp - 0xd4]
mov byte [esi + 0x19], 0
mov edi, dword [edi + 8]
lea edx, [edi + edi*4]
lea ecx, [eax + edx*8]
call fcn.00415140
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edx
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], bl
jmp case.default.0x45aadd
cmp dword [edi + 0x10], 0
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x38]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xd4]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0x110], 0
jle 0x45d500
mov ecx, dword [esi + 8]
mov dword [ebp - 0x200], ecx
mov cx, word [edi + 0x10]
xor edx, edx
xor ebx, ebx
mov word [ebp - 0x1fc], cx
mov dword [ebp - 0x1f8], eax
cmp dx, cx
jae 0x45d4f8
xor eax, eax
mov dword [ebp - 0xd8], eax
mov edx, dword [ebp - 0x1f8]
add eax, edx
mov edx, 0x4000
test word [eax + 0x1c], dx
je 0x45d4e1
call fcn.00423d90
mov cx, word [ebp - 0x1fc]
mov eax, dword [ebp - 0xd8]
movzx edx, cx
inc ebx
add eax, 0x28
cmp ebx, edx
mov dword [ebp - 0xd8], eax
jl 0x45d4c2
lea ebx, [ebp - 0x200]
jmp 0x45d547
mov edi, dword [esi + 8]
push 0xbf
lea ebx, [ebp - 0x110]
lea edx, [ebp - 0xc4]
call fcn.0041f5d0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x45c43a
mov eax, dword [ebp - 0xe4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0x18]
mov eax, dword [esi + 8]
push ebx
push ecx
push edx
push eax
call fcn.00415d70
mov edi, dword [ebp - 0xf4]
add esp, 0x10
mov byte [ebx + 6], 0
cmp byte [edi], 0x40
jne 0x45d57f
movzx edx, word [ebp - 0x1fc]
xor eax, eax
test edx, edx
jle 0x45d57f
mov ecx, dword [ebp - 0x1f8]
add ecx, 0x1c
test byte [ecx], 1
jne 0x45d575
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x45d566
jmp 0x45d57f
mov eax, dword [edi + 8]
dec eax
mov dword [ebp - 0xe0], eax
mov edx, dword [esi]
lea ecx, [ebp - 0x1d0]
push ecx
push 0
push 0
push 0
push ebx
push edx
call fcn.00453520
add esp, 0x18
cmp dword [edi + 0x10], 0
mov ebx, eax
mov dword [ebp - 0xc8], ebx
jne 0x45d5b7
mov eax, dword [ebp - 0x110]
mov ecx, dword [ebp - 0xcc]
call fcn.0040fdf0
test ebx, ebx
jne case.default.0x45aadd
mov ecx, dword [ebp - 0x1d0]
xor eax, eax
test ecx, ecx
mov dword [esi + 0xc], ecx
sete al
mov cl, 1
sub cl, al
mov byte [esi + 0x19], cl
mov byte [esi + 0x1b], bl
mov dword [esi + 0x44], ebx
cmp byte [edi], 0x42
jne 0x45d5f8
test eax, eax
je case.default.0x45aadd
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
test eax, eax
jne case.default.0x45aadd
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea ebx, [eax + edx*8]
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebx + 0x10]
mov eax, dword [esi]
lea edx, [ebp - 0xf8]
push edx
mov edx, dword [ebx + 0x14]
push 0
push edx
push ecx
push 0
push eax
mov dword [ebp - 0xf8], 0
call fcn.00453520
mov dword [ebp - 0xc8], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x38], eax
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebx + 0x14]
add esp, 0x18
test eax, eax
sete dl
mov dword [esi + 0x3c], ecx
mov byte [esi + 0x1a], dl
mov byte [esi + 0x19], 0
mov dword [esi + 0x44], 0
mov byte [esi + 0x1b], 0
test eax, eax
je 0x45d692
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
mov dword [esi + 0xc], eax
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xd0]
mov ecx, dword [edx + 0x38]
mov eax, dword [ecx + eax*4]
mov esi, dword [eax + 0x28]
mov ecx, dword [ebp - 0xdc]
mov dword [ecx + 0x10], esi
mov eax, dword [eax + 0x2c]
mov dword [ecx + 0x14], eax
mov ecx, dword [edi + 4]
mov edx, dword [edx + 0x38]
mov eax, dword [edx + ecx*4]
add dword [eax + 0x28], ebx
adc dword [eax + 0x2c], 0
jmp case.default.0x45aadd
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x38]
mov eax, dword [edi + 4]
mov eax, dword [edx + eax*4]
mov ecx, dword [eax]
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xe4], eax
cmp ecx, ebx
je 0x45d940
test byte [eax + 0x1c], 2
jne 0x45d792
lea edi, [ebp - 0xec]
mov esi, ecx
call fcn.004534d0
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa29
cmp dword [ebp - 0xec], ebx
je 0x45d73e
mov dword [ebp - 0x120], 1
jmp 0x45d780
mov esi, dword [ebp - 0xe4]
mov eax, dword [esi]
lea edi, [ebp - 0x120]
call fcn.00414db0
mov ebx, dword [ebp - 0x11c]
cmp ebx, 0x7fffffff
mov dword [ebp - 0xc8], eax
jl 0x45d776
jg 0x45d770
cmp dword [ebp - 0x120], 0xffffffff
jb 0x45d776
or dword [esi + 0x1c], 2
jmp 0x45d780
add dword [ebp - 0x120], 1
adc ebx, 0
mov edi, dword [ebp - 0xf4]
mov esi, dword [ebp - 0x120]
mov eax, dword [ebp - 0xe4]
mov edi, dword [edi + 0xc]
test edi, edi
je 0x45d830
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xb0]
test ecx, ecx
je 0x45d7c8
mov eax, dword [ecx + 4]
test eax, eax
je 0x45d7bd
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x45d7b4
mov eax, dword [ecx + 0xc]
lea edx, [edi + edi*4]
lea esi, [eax + edx*8]
jmp 0x45d7d4
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
lea esi, [edx + ecx*8]
call fcn.00415260
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
cmp eax, 0xffffffff
jne 0x45d7f0
cmp ecx, 0x7fffffff
je 0x45fa1f
mov edx, dword [ebp - 0xe4]
test byte [edx + 0x1c], 2
jne 0x45fa1f
add eax, 1
adc ecx, 0
cmp ebx, ecx
jg 0x45d81c
jl 0x45d814
cmp dword [ebp - 0x120], eax
jae 0x45d81c
mov dword [ebp - 0x120], eax
mov ebx, ecx
mov eax, dword [ebp - 0x120]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ebx
mov esi, eax
mov eax, dword [ebp - 0xe4]
test byte [eax + 0x1c], 2
je 0x45d931
mov ebx, dword [ebp - 0x124]
mov esi, dword [ebp - 0x128]
mov edx, dword [eax]
and ebx, 0x3fffffff
add esi, 1
adc ebx, 0
lea ecx, [ebp - 0xec]
push ecx
xor edi, edi
push edi
push ebx
push esi
push edi
push edx
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], ebx
call fcn.00453520
add esp, 0x18
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45d92b
jmp 0x45d890
mov eax, dword [ebp - 0xec]
test eax, eax
jne 0x45d91a
inc edi
cmp edi, 0x64
jge 0x45d91a
lea eax, [ebp - 0x120]
push eax
push 8
call fcn.00449dc0
mov esi, dword [ebp - 0x120]
add esp, 8
cmp edi, 5
jge 0x45d8ce
and esi, 0xffffff
xor ebx, ebx
jmp 0x45d8da
mov ebx, dword [ebp - 0x11c]
and ebx, 0x3fffffff
mov edx, dword [ebp - 0xe4]
mov eax, dword [edx]
lea ecx, [ebp - 0xec]
push ecx
add esi, 1
push 0
adc ebx, 0
push ebx
push esi
push 0
push eax
mov dword [ebp - 0x120], esi
mov dword [ebp - 0x11c], ebx
call fcn.00453520
add esp, 0x18
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x45d890
jmp 0x45d92b
cmp dword [ebp - 0xc8], 0
jne 0x45d92b
test eax, eax
je 0x45fa1f
mov eax, dword [ebp - 0xe4]
mov byte [eax + 0x1a], 0
mov byte [eax + 0x1b], 0
mov dword [eax + 0x44], 0
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], ebx
jmp case.default.0x45aadd
mov eax, dword [edi + 8]
mov esi, dword [ebp - 0xd0]
mov esi, dword [esi + 0x38]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea edx, [eax + edx*8]
mov dword [ebp - 0xd8], edx
mov edx, dword [edi + 4]
mov esi, dword [esi + edx*4]
cmp cl, 0x46
jne 0x45d990
mov ecx, dword [edi + 0xc]
lea ecx, [ecx + ecx*4]
mov ebx, dword [eax + ecx*8 + 0x10]
mov eax, dword [eax + ecx*8 + 0x14]
mov dword [ebp - 0x1bc], eax
jmp 0x45d99e
mov eax, dword [edi + 0xc]
cdq
mov ebx, eax
mov dword [ebp - 0x1bc], edx
mov eax, edx
test byte [edi + 3], 1
je 0x45d9ad
mov ecx, dword [ebp - 0xd0]
inc dword [ecx + 0x5c]
test byte [edi + 3], 2
je 0x45d9cb
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], eax
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x24], eax
mov ecx, dword [ebp - 0xd8]
movzx eax, word [ecx + 0x1c]
test al, 1
je 0x45d9e1
xor edx, edx
mov dword [ecx + 4], edx
mov dword [ecx + 0x18], edx
mov dl, byte [edi + 3]
test dl, 0x10
je 0x45d9ee
mov ecx, dword [esi + 0xc]
jmp 0x45d9f0
xor ecx, ecx
test eax, 0x4000
je 0x45da02
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x10]
jmp 0x45da04
xor eax, eax
push ecx
movzx ecx, dl
shr ecx, 3
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x1bc]
push eax
mov eax, dword [ebp - 0xd8]
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 4]
push edx
push eax
mov eax, dword [esi]
push ecx
push ebx
push 0
call fcn.00457610
add esp, 0x20
mov dword [ebp - 0xc8], eax
mov byte [esi + 0x1a], 0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
test eax, eax
jne case.default.0x45aadd
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edx + 0xc8]
test ecx, ecx
je case.default.0x45aadd
mov eax, dword [edi + 0x10]
test eax, eax
je case.default.0x45aadd
mov edx, dword [ebp - 0x1bc]
push edx
movsx edx, byte [esi + 0x18]
push ebx
push eax
mov eax, dword [ebp - 0xcc]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc4]
shl edx, 4
mov edx, dword [edx + esi]
push edx
mov dl, byte [edi + 3]
and dl, 4
movzx edx, dl
neg edx
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xd0]
mov ecx, dword [edi + 4]
mov eax, dword [edx + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
mov ebx, esi
mov dword [ebp - 0x1e4], ecx
mov dword [ebp - 0x1e0], edx
call fcn.004580b0
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa29
mov ebx, dword [esi]
call fcn.00457850
mov dword [ebp - 0xc8], eax
mov dword [esi + 0x44], 0
test eax, eax
jne 0x45db46
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x45db46
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x45db46
test byte [esi + 0x1c], 4
je 0x45db46
mov ebx, dword [ebp - 0x1e0]
push ebx
mov ebx, dword [ebp - 0x1e4]
push ebx
push ecx
movsx ecx, byte [esi + 0x18]
mov esi, dword [eax + 0x10]
mov eax, dword [eax + 0xc4]
shl ecx, 4
mov ecx, dword [ecx + esi]
push ecx
push 9
push eax
call edx
add esp, 0x18
test byte [edi + 8], 1
je case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
inc dword [eax + 0x5c]
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x5c]
mov ecx, dword [ebp - 0xcc]
add dword [ecx + 0x54], eax
mov dword [ecx + 0x50], eax
mov dword [edx + 0x5c], 0
jmp case.default.0x45aadd
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x38]
mov eax, dword [eax + ecx*4]
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0xd4]
mov edi, dword [edi + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea edx, [ebp - 0x1e8]
mov ebx, edi
push edx
mov edi, ecx
call fcn.0043b240
add esp, 4
cmp dword [ebp - 0x1e8], 0
mov dword [ebp - 0xc8], eax
je case.default.0x45aadd
mov eax, dword [ebp - 0xf4]
mov eax, dword [eax + 8]
dec eax
mov dword [ebp - 0xe0], eax
jmp case.default.0x45aadd
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xd4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
lea ecx, [edx + ecx*8]
mov edx, dword [ebp - 0xd0]
mov edx, dword [edx + 0x38]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0xdc], ecx
call fcn.004242f0
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edi + 4]
mov dword [ebp - 0xdc], edx
mov edx, dword [ecx + 0x38]
mov ebx, dword [edx + eax*4]
mov eax, dword [ebx]
mov dword [ebp - 0xe8], eax
call fcn.004580b0
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa29
test byte [ebx + 0x1c], 4
jne 0x45dc97
mov eax, dword [ebp - 0xe8]
lea edi, [ebp - 0x228]
call fcn.00414db0
mov esi, dword [ebp - 0xcc]
mov eax, dword [esi + 0x58]
mov ecx, dword [ebp - 0x224]
cdq
cmp ecx, edx
jg 0x45b6fb
mov ecx, dword [ebp - 0x228]
jl 0x45dc8d
cmp ecx, eax
ja 0x45b6fb
mov esi, ecx
mov dword [ebp - 0x198], esi
jmp 0x45dcc1
mov esi, dword [ebp - 0xe8]
lea edx, [ebp - 0x198]
push edx
call fcn.00414de0
mov esi, dword [ebp - 0x198]
mov eax, dword [ebp - 0xcc]
add esp, 4
cmp esi, dword [eax + 0x58]
ja 0x45fa81
mov edi, dword [ebp - 0xdc]
push 0
mov eax, esi
call fcn.00423c60
add esp, 4
test eax, eax
jne 0x45c43a
mov cx, word [edi + 0x1c]
mov edx, 0xbe10
and cx, dx
or cx, 0x10
mov dword [edi + 0x18], esi
mov word [edi + 0x1c], cx
test byte [ebx + 0x1c], 4
jne 0x45dd1f
mov eax, dword [edi + 4]
push 0
push eax
mov eax, dword [ebp - 0xe8]
push esi
push 0
push eax
call fcn.0044f410
add esp, 0x14
mov dword [ebp - 0xc8], eax
mov byte [edi + 0x1e], 1
jmp case.default.0x45aadd
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xe8]
push ecx
push esi
push 0
push edx
call fcn.004572d0
add esp, 0x10
mov dword [ebp - 0xc8], eax
mov byte [edi + 0x1e], 1
jmp case.default.0x45aadd
mov ebx, dword [ebp - 0xd0]
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x38]
mov esi, dword [ecx + eax*4]
cmp byte [esi + 0x19], 0
je 0x45dd6d
mov eax, dword [ebp - 0xdc]
mov edx, 1
mov word [eax + 0x1c], dx
jmp case.default.0x45aadd
cmp byte [esi + 0x1b], 0
je 0x45dd9e
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x16c], ecx
mov edx, dword [esi + 0x34]
mov dword [ebp - 0x168], edx
mov edx, ecx
mov ecx, dword [ebp - 0x168]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp case.default.0x45aadd
cmp dword [esi + 0x20], 0
je 0x45dde5
mov esi, dword [esi + 0x20]
mov edi, dword [esi]
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
lea ecx, [ebp - 0x16c]
push ecx
push esi
call edx
push edi
push ebx
mov dword [ebp - 0xc8], eax
call fcn.0041f620
mov eax, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x168]
add esp, 0x10
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp case.default.0x45aadd
mov ebx, esi
call fcn.004580b0
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa29
cmp byte [esi + 0x1a], al
je 0x45de24
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x16c], eax
mov ecx, dword [esi + 0x3c]
mov edx, eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x168], ecx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp case.default.0x45aadd
mov eax, dword [esi]
lea edi, [ebp - 0x16c]
call fcn.00414db0
mov edx, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x168]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp case.default.0x45aadd
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov byte [eax + 0x19], bl
mov byte [eax + 0x1a], 0
mov dword [eax + 0x44], 0
mov eax, dword [eax]
test eax, eax
je case.default.0x45aadd
mov esi, eax
call fcn.00414540
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x38]
mov ebx, dword [ecx + edx*4]
mov esi, dword [ebx]
lea edi, [ebp - 0xe4]
mov dword [ebp - 0xe4], 0
call fcn.004534d0
mov ecx, dword [ebp - 0xe4]
mov edx, dword [ebp - 0xf4]
mov dword [ebp - 0xc8], eax
mov byte [ebx + 0x19], cl
mov byte [ebx + 0x1b], 0
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x44], 0
mov eax, dword [edx + 8]
test eax, eax
jle case.default.0x45aadd
test ecx, ecx
je case.default.0x45aadd
dec eax
mov dword [ebp - 0xe0], eax
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
add dword [eax + 0x74], ebx
jmp 0x45df01
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edi + 4]
mov edx, dword [eax + 0x38]
mov esi, dword [edx + ecx*4]
cmp dword [esi + 0x40], 0
mov dword [ebp - 0xf4], ebx
je 0x45df35
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0xf4]
push eax
mov ecx, esi
call fcn.00444530
mov ebx, dword [ebp - 0xf4]
add esp, 4
jmp 0x45df69
mov eax, dword [esi]
mov dword [ebp - 0xd8], eax
call fcn.00453260
test eax, eax
jne 0x45df5a
mov ecx, dword [ebp - 0xd8]
cmp byte [ecx + 0x51], al
je 0x45df5a
mov eax, ecx
xor ebx, ebx
call fcn.004533c0
mov byte [esi + 0x1b], 0
mov dword [esi + 0x44], 0
mov byte [esi + 0x1a], 0
mov dword [ebp - 0xc8], eax
mov byte [esi + 0x19], bl
test ebx, ebx
je case.default.0x45aadd
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x38]
mov ebx, dword [ecx + edx*4]
mov esi, dword [ebp - 0xcc]
lea edx, [ebp - 0x160]
push edx
push ebx
mov eax, esi
mov dword [ebp - 0x160], 0
call fcn.0043b070
jmp 0x45dffc
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x38]
cmp dword [edx + eax*4], 0
je case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x38]
mov ebx, dword [edx + eax*4]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x160], eax
mov edx, dword [ebx]
mov eax, dword [edi + 0x10]
lea ecx, [ebp - 0x160]
push ecx
push edx
call eax
mov esi, dword [ebp - 0xcc]
add esp, 8
mov dword [ebx + 0x44], 0
cmp dword [ebp - 0x160], 0
mov dword [ebp - 0xc8], eax
jne 0x45e040
mov edx, dword [ebp - 0xd0]
mov byte [ebx + 0x19], 0
mov eax, dword [edi + 8]
movzx ecx, byte [edi + 3]
dec eax
inc dword [edx + ecx*4 + 0x6c]
mov dword [ebp - 0xe0], eax
lea eax, [edx + ecx*4 + 0x6c]
mov byte [ebx + 0x1a], 0
mov ebx, edx
jmp 0x45f4af
mov byte [ebx + 0x19], 1
mov byte [ebx + 0x1a], 0
mov ebx, dword [ebp - 0xd0]
jmp 0x45f4af
test byte [edi + 3], 1
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x38]
mov esi, dword [edx + eax*4]
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*8]
mov eax, dword [esi]
mov dword [ebp - 0xfc], eax
je 0x45e082
inc dword [ecx + 0x5c]
mov ecx, 0x4000
test word [ebx + 0x1c], cx
je 0x45e0a2
mov eax, ebx
call fcn.00423d90
mov dword [ebp - 0xc8], eax
test eax, eax
jne case.default.0x45aadd
cmp dword [esi + 0x40], 0
je 0x45e0c3
mov edx, dword [ebp - 0xcc]
push esi
push edx
call fcn.0043af20
add esp, 8
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
test byte [edi + 3], 0x10
mov eax, dword [ebx + 0x18]
mov ebx, dword [ebx + 4]
je 0x45e0d4
mov ecx, dword [esi + 0xc]
jmp 0x45e0d6
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0xc]
push ecx
push 0
push 0
cdq
push 0x493343
push edx
push eax
mov eax, dword [ebp - 0xfc]
push ebx
call fcn.00457610
add esp, 0x20
mov dword [ebp - 0xc8], eax
mov dword [esi + 0x44], 0
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0x38]
mov edx, dword [edi + 4]
mov esi, dword [ecx + edx*4]
mov edx, dword [esi + 8]
mov ebx, dword [esi]
mov ax, word [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [ebp - 0x24c], edx
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
mov word [ebp - 0x248], ax
lea eax, [edx + ecx*8]
lea ecx, [ebp - 0x1ec]
push ecx
push 0
push 0
push 0
lea edx, [ebp - 0x24c]
push edx
push ebx
mov byte [ebp - 0x246], 0
mov dword [ebp - 0x244], eax
call fcn.00453520
add esp, 0x18
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45e183
cmp dword [ebp - 0x1ec], eax
jne 0x45e183
call fcn.00457850
mov dword [ebp - 0xc8], eax
mov dword [esi + 0x44], 0
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0x38]
mov ebx, dword [edx + eax*4]
mov edi, dword [ebx]
mov esi, dword [ebp - 0xdc]
mov eax, 1
mov word [esi + 0x1c], ax
call fcn.004580b0
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45fa29
cmp byte [ebx + 0x19], al
jne case.default.0x45aadd
lea ecx, [ebp - 0x1a8]
xor ebx, ebx
push ecx
mov eax, edi
mov dword [ebp - 0x1a8], ebx
mov dword [ebp - 0x1a4], ebx
call fcn.00458160
add esp, 4
mov dword [ebp - 0xc8], eax
cmp eax, ebx
jne 0x45fa29
mov edx, dword [ebp - 0x1a8]
mov eax, dword [ebp - 0x1a4]
mov ecx, 4
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
mov word [esi + 0x1c], cx
jmp case.default.0x45aadd
mov edx, dword [edi + 4]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 8]
mov dword [ebp - 0x2a8], edx
mov dx, word [edi + 0x10]
mov edi, dword [edi + 0xc]
cmp cl, 0x70
sbb cl, cl
mov word [ebp - 0x2a4], dx
mov byte [ebp - 0x2a2], cl
mov ecx, dword [ebp - 0xd4]
lea edx, [edi + edi*4]
lea edx, [ecx + edx*8]
lea ecx, [ebp - 0xd8]
mov dword [ebp - 0x2a0], edx
push ecx
lea edx, [ebp - 0x2a8]
push edx
mov edi, eax
mov dword [ebp - 0xd8], 0
call fcn.004582a0
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xf4]
add esp, 8
test byte [eax], bl
jne 0x45e297
neg ecx
jmp 0x45e299
add ecx, ebx
test ecx, ecx
jle case.default.0x45aadd
mov eax, dword [eax + 8]
sub eax, ebx
mov dword [ebp - 0xe0], eax
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xcc]
mov eax, dword [edx + 4]
xor ebx, ebx
test eax, eax
je 0x45e2ea
cmp dword [eax + 0x28], 0xbdf20da3
jne 0x45e2e3
mov ecx, dword [eax + 0x58]
test ecx, 0x200
je 0x45e2e3
and cl, 0xc
cmp cl, 8
jae 0x45e2e3
cmp dword [eax + 0x4c], 0
jl 0x45e2e3
inc ebx
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x45e2c0
mov esi, dword [ebp - 0xdc]
mov eax, 1
cmp ebx, eax
mov word [esi + 0x1c], ax
jle 0x45e316
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], 6
mov byte [ecx + 0x56], 2
jmp case.default.0x45aadd
mov ebx, dword [edi + 0xc]
mov ecx, dword [edi + 4]
lea eax, [ebp - 0xf0]
push eax
push ecx
mov ecx, dword [edx + 0x10]
mov eax, ebx
shl eax, 4
mov eax, dword [eax + ecx + 4]
mov dword [ebp - 0xf0], 0
call fcn.00454dd0
mov ecx, eax
mov eax, dword [ebp - 0xf0]
mov edx, 4
mov word [esi + 0x1c], dx
cdq
add esp, 8
mov dword [ebp - 0xc8], ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
test ecx, ecx
jne case.default.0x45aadd
mov esi, dword [ebp - 0xf0]
test esi, esi
je case.default.0x45aadd
mov edi, dword [edi + 4]
mov ecx, dword [ebp - 0xcc]
mov eax, ebx
call fcn.00417dd0
inc bl
mov byte [ebp - 0x111], bl
jmp case.default.0x45aadd
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
neg eax
sbb eax, eax
lea ecx, [ebp - 0x10c]
and eax, ecx
push eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
mov eax, dword [edi + 4]
shl edx, 4
mov dword [ebp - 0x10c], 0
mov ebx, dword [edx + ecx + 4]
call fcn.00454b30
add esp, 4
cmp dword [edi + 0xc], 0
mov dword [ebp - 0xc8], eax
je case.default.0x45aadd
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0xd0]
add dword [ecx + 0x5c], eax
mov edi, dword [edi + 0xc]
test edi, edi
jle case.default.0x45aadd
mov ecx, dword [ebp - 0xd4]
lea edx, [edi + edi*4]
lea ecx, [ecx + edx*8 + 0x10]
cdq
add dword [ecx], eax
adc dword [ecx + 4], edx
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov edi, dword [eax + 0x40]
test edi, edi
je 0x45e437
mov edx, dword [ebp - 0xcc]
push edx
call fcn.0041fb10
add esp, 4
jmp case.default.0x45aadd
mov ecx, dword [eax]
mov eax, dword [ecx + 0x44]
mov ebx, dword [ecx]
push 0
call fcn.00454b30
add esp, 4
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov edi, dword [edi + 4]
mov eax, dword [ebp - 0xcc]
shl edi, 4
add edi, dword [eax + 0x10]
xor eax, eax
cmp cl, 0x76
setne al
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0xfc], 0
inc eax
push eax
mov eax, dword [edi + 4]
push ecx
call fcn.00454940
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xfc]
cdq
add esp, 8
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, str.sqlite_temp_master
cmp eax, ebx
je 0x45e4b7
mov ecx, str.sqlite_master
mov edx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xcc]
add edx, 0x2c
mov dword [ebp - 0x20c], edx
mov edx, dword [edi + 0x10]
push edx
push ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x208], eax
shl eax, 4
mov dword [ebp - 0x210], esi
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
call fcn.0042ca00
mov edi, dword [ebp - 0xcc]
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x45e50c
mov dword [ebp - 0xc8], 7
jmp 0x45e562
push 0
lea eax, [ebp - 0x210]
push eax
push fcn.0045a740
push esi
push edi
mov byte [edi + 0x89], bl
mov dword [ebp - 0x204], 0
call fcn.004602e0
mov ebx, eax
add esp, 0x14
mov dword [ebp - 0xc8], ebx
test ebx, ebx
jne 0x45e54e
mov ecx, dword [ebp - 0x204]
mov dword [ebp - 0xc8], ecx
mov ebx, ecx
mov eax, esi
mov ecx, edi
call fcn.0040fdf0
mov byte [edi + 0x89], 0
test ebx, ebx
je 0x45e569
mov eax, edi
call fcn.004281f0
cmp dword [ebp - 0xc8], 7
je 0x45c43a
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xcc]
call fcn.0042fa40
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xcc]
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 4]
push edx
call fcn.00425000
add esp, 4
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xcc]
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
call fcn.00420cb0
add esp, 4
jmp case.default.0x45aadd
mov ecx, dword [ebp - 0xcc]
mov eax, dword [edi + 4]
push ecx
mov ecx, dword [edi + 0x10]
call fcn.00421a40
add esp, 4
jmp case.default.0x45aadd
mov eax, dword [edi + 8]
mov esi, dword [ebp - 0xcc]
lea ecx, [eax*4 + 4]
mov dword [ebp - 0xe8], eax
call fcn.0041bd40
mov dword [ebp - 0xec], eax
test eax, eax
je 0x45c43a
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xd4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
xor esi, esi
cmp dword [ebp - 0xe8], esi
lea eax, [ecx + eax*8]
lea ebx, [ecx + edx*8]
mov dword [ebp - 0xe4], eax
jle 0x45e664
mov dword [ebp - 0xd8], eax
lea esp, [esp]
mov ecx, dword [ebp - 0xd8]
call fcn.00415140
mov ecx, dword [ebp - 0xec]
add dword [ebp - 0xd8], 0x28
mov dword [ecx + esi*4], eax
inc esi
cmp esi, dword [ebp - 0xe8]
jl 0x45e640
mov eax, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xe8]
mov dword [eax + esi*4], 0
mov edx, dword [ebx + 0x10]
mov esi, dword [ebp - 0xcc]
push edx
push ecx
mov ecx, dword [esi + 0x10]
push eax
movzx eax, byte [edi + 3]
shl eax, 4
mov ecx, dword [eax + ecx + 4]
lea edx, [ebp - 0x1d8]
call fcn.00451070
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xec]
add esp, 0xc
mov ecx, esi
call fcn.0040fdf0
mov edi, dword [ebp - 0x1d8]
mov esi, dword [ebp - 0xe4]
mov eax, edi
cdq
sub dword [ebx + 0x10], eax
sbb dword [ebx + 0x14], edx
call fcn.00415370
test edi, edi
je 0x45e6f3
mov eax, dword [ebp - 0xfc]
test eax, eax
je 0x45c43a
push 1
push eax
mov eax, fcn.0040fd50
or ecx, 0xffffffff
mov edx, esi
call fcn.004299b0
add esp, 8
movzx ecx, byte [ebp - 0x104]
mov eax, dword [ebp - 0xe4]
call fcn.004298f0
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov edi, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
test byte [eax + edx*8 + 0x1c], 0x20
lea esi, [eax + edx*8]
lea ecx, [edi + edi*4]
lea ebx, [eax + ecx*8]
jne 0x45e73a
mov edi, esi
call fcn.0041eb50
test byte [esi + 0x1c], 0x20
je 0x45c43a
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
mov edi, dword [esi + 0x10]
push edx
push eax
call fcn.0041cf70
add esp, 8
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 0x1c], 0x20
lea ebx, [edx + ecx*8]
je 0x45e7aa
mov eax, dword [ebx + 0x10]
lea esi, [ebp - 0x238]
call fcn.00412e10
test eax, eax
je 0x45e7aa
mov eax, dword [ebp - 0x234]
mov edi, dword [edi + 0xc]
mov ecx, dword [ebp - 0x238]
push eax
mov eax, dword [ebp - 0xd4]
lea edx, [edi + edi*4]
push ecx
lea esi, [eax + edx*8]
call fcn.00415410
mov ebx, dword [ebp - 0xd0]
add esp, 8
jmp 0x45f4a9
mov esi, ebx
call fcn.00415370
mov ebx, dword [ebp - 0xd0]
jmp 0x45f49f
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 0x1c], 0x20
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + edx*8]
lea ebx, [ecx + eax*8]
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xd8], ecx
jne 0x45e7fb
mov edi, esi
call fcn.0041eb50
test byte [esi + 0x1c], 0x20
je 0x45c43a
mov edi, dword [ebp - 0xf4]
cmp dword [ebp - 0xd8], 0
je 0x45e73a
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xd8]
push edx
push eax
mov eax, dword [esi + 0x10]
push ecx
call fcn.0041d010
add esp, 0xc
test eax, eax
je 0x45e835
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
cmp dword [ebp - 0xd8], 0
jl case.default.0x45aadd
jmp 0x45e73a
cmp byte [edi + 3], 0
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xd4]
mov ebx, dword [edi + 0x10]
lea ecx, [eax + eax*4]
lea esi, [edx + ecx*8]
je 0x45e882
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ecx + 0xb0]
mov edx, dword [ebx + 0x14]
test eax, eax
je 0x45e888
cmp dword [eax + 0x18], edx
je case.default.0x45aadd
mov eax, dword [eax + 4]
test eax, eax
jne 0x45e872
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ecx + 0xb8]
mov eax, dword [ebp - 0xcc]
cmp edx, dword [eax + 0x80]
jl 0x45e8bb
push str.too_many_levels_of_trigger_recursion
lea edi, [ecx + 0x2c]
mov dword [ebp - 0xc8], 1
call fcn.00437470
add esp, 4
jmp case.default.0x45aadd
test byte [esi + 0x1c], 0x40
jne 0x45e98a
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
add ecx, edx
mov dword [ebp - 0xfc], ecx
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*2]
mov ecx, dword [ebx + 0x10]
lea edi, [ecx + edx*4 + 0x48]
call fcn.00423720
mov edi, eax
test edi, edi
je 0x45c43a
call fcn.004150a0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xfc]
mov dword [esi + 0x10], edi
mov edx, 0x40
mov word [esi + 0x1c], dx
mov dword [edi + 0x3c], ecx
mov dword [edi], eax
mov edx, dword [ebx + 0xc]
mov dword [edi + 0x40], edx
mov edx, dword [ebp - 0xe0]
mov dword [edi + 0x2c], edx
mov edx, dword [eax + 8]
mov dword [edi + 0xc], edx
mov edx, dword [eax + 0x1c]
mov dword [edi + 0x34], edx
mov edx, dword [eax + 0x38]
mov dword [edi + 0x14], edx
mov edx, dword [eax + 0x24]
mov dword [edi + 0x28], edx
mov edx, dword [eax + 4]
mov dword [edi + 8], edx
mov edx, dword [eax + 0x20]
mov dword [edi + 0x30], edx
mov edx, dword [ebx + 0x14]
mov dword [edi + 0x18], edx
mov edx, dword [eax + 0xc8]
mov dword [edi + 0x10], edx
mov eax, dword [eax + 0xc4]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x38], eax
lea ecx, [edi + ecx*8 + 0x48]
lea eax, [edi + 0x48]
cmp eax, ecx
je 0x45e98d
lea ebx, [ebx]
mov edx, 0x80
mov word [eax + 0x1c], dx
mov edx, dword [ebp - 0xcc]
mov dword [eax], edx
add eax, 0x28
cmp eax, ecx
jne 0x45e970
jmp 0x45e98d
mov edi, dword [esi + 0x10]
mov eax, dword [ebp - 0xd0]
inc dword [eax + 0xb8]
mov ecx, dword [eax + 0xb0]
mov edx, dword [ebp - 0x128]
mov dword [edi + 4], ecx
mov dword [edi + 0x20], edx
mov edx, dword [ebp - 0x124]
mov dword [edi + 0x24], edx
mov edx, dword [eax + 0x5c]
mov dword [edi + 0x44], edx
lea ecx, [edi + 0x20]
mov edx, ecx
mov dword [eax + 8], edx
mov dword [eax + 0x5c], 0
mov dword [eax + 0xb0], edi
mov ecx, dword [edi + 0x3c]
mov dword [eax + 0x1c], ecx
movzx ecx, word [edi + 0x40]
mov dword [eax + 0x24], ecx
mov ecx, dword [eax + 0x1c]
inc ecx
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [eax + 0x38], ecx
mov dword [ebp - 0xd4], edx
mov edx, dword [ebx]
mov dword [eax + 4], edx
mov dword [ebp - 0x148], edx
mov edx, dword [ebx + 4]
mov dword [eax + 0x20], edx
mov edx, dword [eax + 0x24]
lea ecx, [ecx + edx*4]
mov dword [eax + 0xc8], ecx
mov ebx, dword [ebx + 0x10]
push ebx
push 0
push ecx
mov dword [eax + 0xc4], ebx
mov dword [ebp - 0xe0], 0xffffffff
call fcn.00476500
add esp, 0xc
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov ecx, dword [eax + 0xb0]
mov eax, dword [ecx + 0x2c]
mov ebx, dword [ebp - 0xdc]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
mov eax, dword [eax + edx*4 + 4]
add eax, dword [edi + 4]
push 0x1000
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea ecx, [eax + edx*8]
push ecx
call fcn.0041ec00
add esp, 8
jmp case.default.0x45aadd
mov ecx, dword [ebp - 0xcc]
test dword [ecx + 0x18], 0x1000000
mov eax, dword [edi + 8]
cdq
je 0x45ea92
add dword [ecx + 0x1f8], eax
adc dword [ecx + 0x1fc], edx
jmp case.default.0x45aadd
cmp dword [edi + 4], 0
je 0x45eaa9
add dword [ecx + 0x1f0], eax
adc dword [ecx + 0x1f4], edx
jmp case.default.0x45aadd
mov ecx, dword [ebp - 0xd0]
add dword [ecx + 0x90], eax
adc dword [ecx + 0x94], edx
jmp case.default.0x45aadd
cmp dword [edi + 4], 0
je 0x45eae0
mov eax, dword [ebp - 0xcc]
mov edx, dword [eax + 0x1f0]
or edx, dword [eax + 0x1f4]
jne case.default.0x45aadd
jmp 0x45eafe
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0x90]
or edx, dword [eax + 0x94]
jne case.default.0x45aadd
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x1f8]
or ecx, dword [eax + 0x1fc]
jne case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xd0]
mov ecx, dword [edx + 0xb0]
test ecx, ecx
je 0x45eb4e
mov eax, dword [ecx + 4]
test eax, eax
je 0x45eb40
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x45eb37
mov eax, dword [edi + 4]
mov ecx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
jmp 0x45eb5d
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea ebx, [eax + edx*8]
mov esi, ebx
call fcn.00415260
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
lea esi, [edx + ecx*8]
call fcn.00415260
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov ecx, dword [ebx + 0x14]
cmp ecx, esi
jg case.default.0x45aadd
jl 0x45eb96
mov edx, dword [ebx + 0x10]
cmp edx, eax
jae case.default.0x45aadd
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], esi
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 0x14], 0
jl case.default.0x45aadd
jg 0x45ebc7
mov edx, ecx
cmp dword [edx + eax*8 + 0x10], 0
jbe case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
cmp dword [ecx + eax*8 + 0x14], 0
jg case.default.0x45aadd
jl 0x45ebfd
mov edx, ecx
cmp dword [edx + eax*8 + 0x10], 0
jae case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0xc]
cdq
add dword [ecx + 0x10], eax
adc dword [ecx + 0x14], edx
mov edx, dword [ecx + 0x10]
or edx, dword [ecx + 0x14]
jne case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
jmp case.default.0x45aadd
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xd4]
movzx edx, byte [edi + 3]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xd0]
mov esi, dword [eax + 0xc]
xor ebx, ebx
xor eax, eax
cmp edx, ebx
jle 0x45ec71
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x45ec66
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x294], ecx
mov ecx, dword [ebp - 0xd4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0x264], eax
inc dword [eax + 0x18]
mov eax, 1
mov word [ebp - 0x270], ax
mov eax, dword [ebp - 0x294]
mov dword [ebp - 0x288], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x26c], ebx
mov dword [ebp - 0x28c], ecx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x260], ebx
mov byte [ebp - 0x250], bl
test byte [eax + 2], 0x20
je 0x45ece3
mov ecx, dword [edi - 4]
mov dword [ebp - 0x260], ecx
mov eax, dword [eax + 0x10]
push esi
push edx
lea edx, [ebp - 0x294]
push edx
call eax
add esp, 0xc
cmp dword [ebp - 0x254], ebx
je 0x45ed3a
mov bl, 1
lea edi, [ebp - 0x28c]
call fcn.00429bb0
mov edi, dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xcc]
push 0x498d00
add edi, 0x2c
call fcn.00437470
mov ecx, dword [ebp - 0x254]
mov edi, dword [ebp - 0xf4]
add esp, 8
mov dword [ebp - 0xc8], ecx
xor ebx, ebx
cmp byte [ebp - 0x250], 0
je 0x45ed61
mov edi, dword [edi - 0x10]
cmp edi, ebx
je 0x45ed61
mov eax, dword [ebp - 0xd4]
lea edx, [edi + edi*4]
push ebx
push 1
lea esi, [eax + edx*8]
call fcn.00415410
add esp, 8
lea esi, [ebp - 0x28c]
call fcn.004150a0
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xd4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x10]
lea esi, [edx + ecx*8]
mov ecx, esi
call fcn.00415030
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x45edb7
push esi
call fcn.00429fc0
mov edi, dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xcc]
push 0x498d00
add edi, 0x2c
call fcn.00437470
add esp, 0xc
movzx ecx, byte [ebp - 0x104]
mov eax, esi
call fcn.004298f0
mov ecx, esi
call fcn.00415510
test eax, eax
jne 0x45b6f5
jmp case.default.0x45aadd
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov esi, dword [ebp - 0xcc]
or eax, 0xffffffff
mov dword [ebp - 0x1c4], eax
mov dword [ebp - 0x1c8], eax
lea eax, [ebp - 0x1c4]
push eax
push ecx
xor ebx, ebx
push edx
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 0x1cc], ebx
call fcn.00448370
add esp, 0xc
mov dword [ebp - 0xc8], eax
cmp eax, 5
jne 0x45ee2e
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0x1cc], 1
mov edi, dword [edi + 0xc]
mov ecx, dword [ebp - 0xd4]
lea eax, [edi + edi*4]
lea esi, [ecx + eax*8]
lea ecx, [ecx]
mov eax, dword [ebp + ebx*4 - 0x1cc]
cdq
push edx
push eax
call fcn.00415410
inc ebx
add esp, 8
add esi, 0x28
cmp ebx, 3
jl 0x45ee40
jmp case.default.0x45aadd
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0x10]
mov esi, dword [edi + 0xc]
shl edx, 4
mov eax, dword [edx + eax + 4]
mov edx, dword [eax + 4]
mov ebx, dword [edx]
movzx edx, byte [ebx + 5]
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0x10c], edx
cmp esi, 0xffffffff
jne 0x45ee92
mov esi, edx
cmp byte [ebx + 0x10], 3
jae 0x45eeae
mov eax, dword [ebx + 0x40]
cmp dword [eax], 0
je 0x45eeb0
cmp dword [ebx + 0x4c], 0
jl 0x45eeb0
jg 0x45eeae
cmp dword [ebx + 0x48], 0
jbe 0x45eeb0
mov esi, edx
cmp byte [ebx + 0xf], 0
mov eax, 0x493343
jne 0x45eec1
mov eax, dword [ebx + 0xa8]
cmp esi, 5
jne 0x45ef2e
mov ecx, eax
call fcn.0040ffd0
test eax, eax
je 0x45eee0
mov eax, ebx
call fcn.00413900
test eax, eax
jne 0x45ef28
mov esi, edx
cmp dword [ebp - 0xc8], 0
je 0x45eef1
mov esi, dword [ebp - 0x10c]
mov ecx, esi
mov eax, ebx
call fcn.0044dc20
mov edi, dword [edi + 8]
mov edx, dword [ebp - 0xd4]
lea ecx, [edi + edi*4]
lea edx, [edx + ecx*8]
mov ecx, 0xa02
mov dword [ebp - 0xdc], edx
mov word [edx + 0x1c], cx
cmp eax, 6
jne 0x45efe4
xor eax, eax
jmp 0x45efeb
mov ecx, dword [ebp - 0xcc]
cmp esi, edx
je 0x45eee2
cmp edx, 5
je 0x45ef3c
cmp esi, 5
jne 0x45eee2
cmp byte [ecx + 0x3e], 0
je 0x45efa9
cmp dword [ecx + 0x90], 1
jg 0x45efa9
cmp edx, 5
jne 0x45ef69
mov eax, ebx
call fcn.004483e0
mov dword [ebp - 0xc8], eax
test eax, eax
jne 0x45eeeb
mov ecx, esi
jmp 0x45ef71
cmp edx, 4
jne 0x45ef78
lea ecx, [edx - 2]
mov eax, ebx
call fcn.0044dc20
cmp dword [ebp - 0xc8], 0
jne 0x45eeeb
mov edx, dword [ebp - 0xfc]
xor ecx, ecx
cmp esi, 5
sete cl
inc ecx
push ecx
push edx
call fcn.004514f0
add esp, 8
mov dword [ebp - 0xc8], eax
jmp 0x45eee2
mov dword [ebp - 0xc8], 1
mov eax, str.into
cmp esi, 5
je 0x45efc2
mov eax, str.out_of
mov edi, dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xcc]
push str.cannot_change__s_wal_mode_from_within_a_transaction
add edi, 0x2c
call fcn.00437470
add esp, 8
jmp case.default.0x45aadd
mov eax, dword [eax*4 + 0x4962b4]
mov ecx, eax
mov dword [edx + 4], eax
call fcn.0040ffd0
movzx ecx, byte [ebp - 0x104]
mov dword [edx + 0x18], eax
mov eax, edx
mov byte [edx + 0x1e], 1
call fcn.004298f0
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xcc]
add edx, 0x2c
push edx
call fcn.00459de0
add esp, 4
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
push eax
call fcn.00452c10
add esp, 4
mov dword [ebp - 0xc8], eax
cmp eax, 0x65
jne case.default.0x45aadd
mov edi, dword [edi + 8]
sub edi, ebx
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xc8], 0
jmp case.default.0x45aadd
cmp dword [edi + 4], 0
jne 0x45f08d
mov eax, dword [ebp - 0xcc]
call fcn.00415f80
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
or dword [eax + 0x58], 0x20
jmp case.default.0x45aadd
mov cl, byte [edi + 0xc]
test cl, cl
jne 0x45f0b6
mov eax, dword [ebp - 0xcc]
test dword [eax + 0x18], 0x4000
jne case.default.0x45aadd
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
push edx
mov edx, dword [ebp - 0xcc]
mov edx, dword [edx + 0x10]
shl eax, 4
mov esi, dword [eax + edx + 4]
call fcn.0041ea50
add esp, 4
mov dword [ebp - 0xc8], eax
cmp al, 6
jne case.default.0x45aadd
mov eax, dword [edi + 0x10]
mov edi, dword [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0xcc]
push str.database_table_is_locked:__s
add edi, 0x2c
call fcn.00437470
add esp, 8
jmp case.default.0x45aadd
mov edi, dword [edi + 0x10]
mov eax, dword [ebp - 0xcc]
call fcn.00421d40
mov dword [ebp - 0xc8], eax
test edi, edi
je case.default.0x45aadd
mov ecx, dword [edi + 8]
mov edx, dword [ebp - 0xd0]
push ecx
push edx
call fcn.0041f620
add esp, 8
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov ecx, dword [edi + 0x10]
add eax, 0x2c
push eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xcc]
push ecx
call fcn.00435540
add esp, 8
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov esi, dword [ebp - 0xd0]
mov edx, dword [esi + 0x58]
mov ecx, dword [ebp - 0xcc]
and edx, 0xfffffffb
or edx, 8
mov dword [esi + 0x58], edx
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
call fcn.004195f0
add esp, 4
and dword [esi + 0x58], 0xfffffff3
mov dword [ebp - 0xc8], eax
jmp case.default.0x45aadd
mov ecx, dword [edi + 0x10]
mov dword [ebp - 0xe8], 0
mov ebx, dword [ecx + 8]
mov eax, dword [ebx]
lea edx, [ebp - 0xe8]
push edx
mov dword [ebp - 0xfc], eax
mov eax, dword [eax + 0x18]
push ebx
call eax
mov ecx, dword [ebp - 0xd0]
mov esi, eax
push ebx
push ecx
mov dword [ebp - 0xc8], esi
call fcn.0041f620
add esp, 0x10
test esi, esi
jne case.default.0x45aadd
mov edx, dword [ebp - 0xe8]
push esi
mov dword [edx], ebx
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xd0]
push 0xffffffffffffffff
push esi
push eax
call fcn.00458360
add esp, 0x10
test eax, eax
je 0x45f211
mov ecx, dword [ebp - 0xe8]
mov dword [eax + 0x20], ecx
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xfc]
mov byte [edx + 0x40], 1
mov edx, dword [ecx + 0x1c]
push eax
call edx
add esp, 4
jmp case.default.0x45aadd
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xd4]
mov esi, dword [ebp - 0xd0]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov ecx, dword [esi + 0x38]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov ebx, dword [eax + 0x20]
mov ecx, dword [edx + 0x10]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebx]
mov dword [ebp - 0xec], eax
mov eax, dword [eax]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x10c], eax
mov eax, dword [edx + 0x38]
mov dword [ebp - 0xfc], ecx
xor ecx, ecx
mov dword [ebp - 0xd8], ebx
test eax, eax
jle 0x45f2a7
mov ebx, dword [ebp - 0xfc]
add edx, 0x50
mov dword [ebx + ecx*4], edx
inc ecx
add edx, 0x28
cmp ecx, eax
jl 0x45f296
mov ebx, dword [ebp - 0xd8]
mov edx, dword [esi + 0x58]
mov ecx, dword [ebp - 0xfc]
and edx, 0xfffffff7
push ecx
mov ecx, dword [ebp - 0x10c]
or edx, 4
push eax
mov eax, dword [ebp - 0xe8]
mov dword [esi + 0x58], edx
mov edx, dword [edi + 0x10]
push edx
mov edx, dword [ecx + 0x20]
push eax
push ebx
call edx
and dword [esi + 0x58], 0xfffffff3
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xec]
push eax
push esi
call fcn.0041f620
add esp, 0x1c
cmp dword [ebp - 0xc8], 0
jne 0x45f312
mov ecx, dword [ebp - 0x10c]
mov edx, dword [ecx + 0x28]
push ebx
call edx
add esp, 4
test eax, eax
je 0x45f312
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
mov eax, dword [ebp - 0xf0]
mov byte [eax + 0x19], 0
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x38]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 0x19], 0
mov eax, dword [edi + 0xc]
mov edx, dword [ebp - 0xd4]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [ebp - 0xfc], eax
je 0x45f357
mov esi, eax
call fcn.00415370
jmp case.default.0x45aadd
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
mov ecx, dword [eax]
push 0x48
lea edx, [ebp - 0x354]
push 0
push edx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x10c], ecx
call fcn.00476500
mov ebx, dword [ebp - 0xfc]
lea eax, [ebp - 0x34c]
call fcn.00415540
mov eax, dword [ebp - 0x330]
mov ecx, dword [edi + 8]
and eax, 0xbe01
or eax, 1
push ecx
mov ecx, dword [ebp - 0x10c]
mov word [ebp - 0x330], ax
mov eax, dword [esi + 0x20]
lea edx, [ebp - 0x354]
push edx
mov edx, dword [ecx + 0x2c]
push eax
call edx
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xd8]
push eax
push ecx
call fcn.0041f620
mov eax, dword [ebp - 0x314]
add esp, 0x20
test eax, eax
je 0x45f3e6
mov dword [ebp - 0xc8], eax
movzx ecx, byte [ebp - 0x104]
lea eax, [ebp - 0x34c]
call fcn.004298f0
mov esi, dword [ebp - 0xfc]
lea ebx, [ebp - 0x34c]
mov eax, esi
call fcn.00415540
mov ecx, esi
call fcn.00415510
test eax, eax
jne 0x45b6f5
jmp case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x38]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 0x19], 0
jne case.default.0x45aadd
mov edx, dword [esi + 0x20]
mov ebx, dword [ebp - 0xd0]
mov eax, dword [edx]
mov ecx, dword [ebx + 0x58]
and ecx, 0xfffffff7
mov dword [ebp - 0xfc], eax
mov eax, dword [eax]
or ecx, 4
mov dword [ebx + 0x58], ecx
mov edx, dword [esi + 0x20]
mov dword [ebp - 0x10c], eax
mov eax, dword [eax + 0x24]
push edx
call eax
mov ecx, dword [ebp - 0xfc]
and dword [ebx + 0x58], 0xfffffff3
push ecx
push ebx
mov dword [ebp - 0xc8], eax
call fcn.0041f620
add esp, 0xc
cmp dword [ebp - 0xc8], 0
jne 0x45f49f
mov edx, dword [esi + 0x20]
mov eax, dword [ebp - 0x10c]
mov ecx, dword [eax + 0x28]
push edx
call ecx
add esp, 4
test eax, eax
jne 0x45f4a9
mov edi, dword [edi + 8]
dec edi
mov dword [ebp - 0xe0], edi
mov esi, dword [ebp - 0xcc]
mov edx, dword [esi + 0xe8]
test edx, edx
jne 0x45fa90
mov edi, dword [esi + 0x11c]
test edi, edi
je case.default.0x45aadd
mov ebx, dword [ebp - 0x13c]
cmp ebx, dword [ebp - 0x138]
jb case.default.0x45aadd
mov ecx, dword [esi + 0x124]
mov eax, ebx
div ecx
mov eax, dword [esi + 0x120]
push eax
sub ecx, edx
add ecx, ebx
mov dword [ebp - 0x138], ecx
call edi
add esp, 4
test eax, eax
je case.default.0x45aadd
mov dword [ebp - 0xc8], 9
mov edi, dword [ebp - 0xd0]
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 0xa8]
mov ecx, dword [ebp - 0xe0]
mov ebx, dword [ebp - 0xc8]
push edx
push eax
push ecx
push str.statement_aborts_at__d:___s___s
push ebx
mov dword [edi + 0x50], ebx
call fcn.0042cba0
add esp, 0x14
mov eax, edi
call fcn.00458d40
cmp ebx, 0xc0a
jne 0x45f551
mov byte [esi + 0x40], 1
mov al, byte [ebp - 0x111]
mov esi, 1
test al, al
jbe 0x45f598
movzx edi, al
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
dec edi
mov edx, edi
shl edx, 4
mov edx, dword [edx + ecx + 0xc]
push edx
call fcn.00425670
add esp, 4
cmp edi, esi
je 0x45f598
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x1c]
push edx
call fcn.00425670
add esp, 4
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x128]
mov edx, dword [ebp - 0x124]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x13c]
mov dword [eax + 0x24], edx
mov eax, dword [ebp - 0xd0]
add dword [eax + 0x7c], ecx
push eax
call fcn.00415780
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.00476b99
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x10]
mov edi, dword [edi + 4]
mov eax, dword [ebp - 0xd4]
mov esi, dword [ecx + 8]
lea edx, [edi + edi*4]
lea edi, [eax + edx*8]
mov ecx, ebx
mov eax, edi
call fcn.004298f0
mov dword [ebp - 0xc8], eax
test eax, eax
jne case.default.0x45aadd
mov edx, dword [edi + 4]
mov ecx, dword [esi]
mov eax, dword [ecx + 0x4c]
push edx
push esi
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xc8], eax
call fcn.0041f620
add esp, 0x10
and dword [esi + 0x58], 0xffffffdf
jmp case.default.0x45aadd
mov ecx, dword [edi + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 8]
mov dword [ebp - 0xfc], eax
mov eax, dword [eax]
cmp dword [eax + 0x34], 0
mov dword [ebp - 0x10c], eax
je case.default.0x45aadd
mov eax, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xcc]
mov esi, dword [eax + 0xc]
mov dl, byte [ebx + 0x44]
mov eax, dword [edi + 0xc]
mov byte [ebp - 0x105], dl
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xd4]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x45f68b
mov dword [esi + eax*4], edx
inc eax
add edx, 0x28
cmp eax, ecx
jl 0x45f680
mov dl, byte [edi + 3]
lea eax, [ebp - 0x220]
push eax
push esi
mov byte [ebx + 0x44], dl
mov edx, dword [ebp - 0x10c]
mov eax, dword [edx + 0x34]
push ecx
mov ecx, dword [ebp - 0xfc]
push ecx
call eax
mov edx, dword [ebp - 0xfc]
mov cl, byte [ebp - 0x105]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xd0]
push edx
push eax
mov byte [ebx + 0x44], cl
call fcn.0041f620
mov edx, dword [ebp - 0xc8]
add esp, 0x18
test edx, edx
jne 0x45f6fe
cmp dword [edi + 4], edx
je 0x45f6fe
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], ecx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], ecx
cmp dl, 0x13
jne 0x45db50
mov ecx, dword [edi + 0x10]
cmp byte [ecx + 0x10], 0
je 0x45db50
mov al, byte [edi + 3]
cmp al, 4
jne 0x45f72a
mov dword [ebp - 0xc8], 0
jmp case.default.0x45aadd
cmp al, 5
jne 0x45f741
mov edx, dword [ebp - 0xd0]
mov eax, 2
mov byte [edx + 0x56], al
jmp case.default.0x45aadd
mov edx, dword [ebp - 0xd0]
movzx eax, al
mov byte [edx + 0x56], al
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 0x2c]
mov eax, dword [ebp - 0xdc]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 0
jmp case.default.0x45aadd
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx + 0x10]
mov edi, dword [edi + 0xc]
shl eax, 4
mov ecx, dword [eax + edx + 4]
xor eax, eax
test edi, edi
je 0x45f7a8
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x2c]
cmp eax, edi
jae 0x45f7a8
mov eax, edi
call fcn.00414a70
mov ecx, dword [ebp - 0xdc]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.default.0x45aadd
mov eax, dword [edi + 8]
test eax, eax
je 0x45f7cd
dec eax
mov dword [ebp - 0xe0], eax
mov ecx, dword [ebp - 0xcc]
cmp dword [ecx + 0xa4], 0
je case.default.0x45aadd
mov edx, dword [ebp - 0xd0]
test dword [edx + 0x58], 0x800
jne case.default.0x45aadd
mov edi, dword [edi + 0x10]
test edi, edi
je 0x45f7fa
mov ecx, edi
jmp 0x45f802
mov eax, edx
mov ecx, dword [eax + 0xa8]
test ecx, ecx
je case.default.0x45aadd
push edx
call fcn.0042e790
mov edi, dword [ebp - 0xcc]
mov ecx, dword [edi + 0xa4]
mov esi, eax
mov eax, dword [edi + 0xa8]
push esi
push eax
call ecx
add esp, 0xc
mov eax, esi
mov ecx, edi
call fcn.0040fdf0
inc dword [ebp - 0xe0]
cmp dword [ebp - 0xc8], 0
je 0x45aa60
mov esi, dword [ebp - 0xcc]
jmp 0x45f50f
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0xe0]
mov dword [ebx + 0x50], edx
mov al, byte [edi + 8]
mov byte [ebx + 0x56], al
mov dword [ebx + 0x4c], ecx
test edx, edx
je 0x45f8f5
mov al, byte [edi + 3]
test al, al
je 0x45f8a3
movzx edx, al
mov eax, dword [edx*4 + 0x495b3c]
test eax, eax
je 0x45f8a5
mov ecx, dword [edi + 0x10]
test ecx, ecx
je 0x45f8a5
push ecx
push eax
mov eax, dword [ebp - 0xcc]
lea esi, [ebx + 0x2c]
push str._s_constraint_failed:__s
mov edi, esi
call fcn.00437470
add esp, 0xc
jmp 0x45f8cd
xor eax, eax
mov edi, dword [edi + 0x10]
lea esi, [ebx + 0x2c]
test edi, edi
je 0x45f8b7
push edi
push 0x498d00
jmp 0x45f8bd
push eax
push str._s_constraint_failed
mov eax, dword [ebp - 0xcc]
mov edi, esi
call fcn.00437470
add esp, 8
mov eax, dword [esi]
mov ecx, dword [ebx + 0xa8]
mov edx, dword [ebp - 0xe0]
push eax
mov eax, dword [ebp - 0xf4]
push ecx
mov ecx, dword [eax + 4]
push edx
push str.abort_at__d_in___s_:__s
push ecx
call fcn.0042cba0
add esp, 0x14
mov eax, ebx
call fcn.00458d40
mov esi, 5
cmp eax, esi
je 0x45f948
mov esi, dword [ebx + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x45f598
lea esi, [ebp - 0x304]
call fcn.004150a0
jmp 0x45c43a
mov dword [ebp - 0xc8], 0x14
jmp 0x45fa29
mov eax, dword [ebp - 0xe0]
mov dword [ebx + 0x4c], eax
mov byte [esi + 0x3e], 0
mov esi, 5
mov dword [ebx + 0x50], esi
jmp 0x45f598
test edi, edi
je 0x45f98a
push 0x204
mov eax, esi
call fcn.00456ee0
add esp, 4
mov byte [esi + 0x3e], 1
mov esi, dword [ebp - 0xcc]
call fcn.0041ac00
mov eax, dword [ebp - 0xd0]
mov esi, dword [eax + 0x50]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x45f598
mov esi, dword [ebp - 0xd0]
push 1
call fcn.00439ac0
mov esi, eax
add esp, 4
test esi, esi
jne 0x45f598
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd0]
mov byte [ecx + 0x3e], bl
call fcn.00458d40
mov esi, 5
cmp eax, esi
jne 0x45f967
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 0xe0]
mov dword [eax + 0x4c], edx
mov edx, dword [ebp - 0xcc]
mov cl, 1
sub cl, bl
mov byte [edx + 0x3e], cl
mov dword [eax + 0x50], esi
jmp 0x45f598
mov dword [ebp - 0xc8], 8
jmp 0x45fa2f
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xe0]
mov esi, 5
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x50], esi
jmp 0x45f598
mov eax, 0x1144c
call fcn.00436a10
mov dword [ebp - 0xc8], eax
jmp 0x45fa29
mov dword [ebp - 0xc8], 0xd
mov esi, dword [ebp - 0xcc]
cmp byte [esi + 0x40], 0
je 0x45fa41
mov dword [ebp - 0xc8], 7
jmp 0x45fa51
cmp dword [ebp - 0xc8], 0xc0a
je 0x45f50f
mov ecx, dword [ebp - 0xc8]
call fcn.0041ad80
mov edi, dword [ebp - 0xd0]
push eax
push 0x498d00
add edi, 0x2c
mov eax, esi
call fcn.00437470
add esp, 8
jmp 0x45f50f
mov esi, edx
jmp 0x45b6fb
mov esi, eax
jmp 0x45b6fb
mov ebx, dword [ebp - 0xd0]
mov esi, edi
mov eax, 9
mov dword [ebx + 0x50], eax
mov ecx, dword [str.interrupted]
mov dword [ebp - 0xc8], eax
mov eax, str.unknown_error
test ecx, ecx
je 0x45faaf
mov eax, ecx
push eax
push 0x498d00
lea edi, [ebx + 0x2c]
mov eax, esi
call fcn.00437470
add esp, 8
jmp 0x45f50f