Function at 0x41b070
Capabilities:
Encrypt data using speck
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x10c
push ebx
push ebp
mov ebp, dword [esp + 0x118]
push esi
push edi
xor esi, esi
mov ebx, dword [ebp]
mov eax, dword [ebp + 4]
mov edi, dword [ebp + 8]
mov dword [esp + 0xf0], eax
mov ecx, dword [ebx + 8]
push ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x20], ebx
mov byte [esp + 0xf8], 0
mov dword [esp + 0xec], esi
mov al, byte [edx + 0x4d]
mov dword [esp + 0xe8], edi
mov byte [esp + 0xe4], al
mov dword [esp + 0x1c], esi
mov dword [esp + 0x100], esi
mov dword [esp + 0xf0], esi
call fcn.00416da0
mov eax, dword [ebp + 0x5c]
add esp, 4
cmp eax, 7
je 0x41fb6b
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x14], esi
mov dword [ebx + 0x1b4], esi
mov eax, dword [ebx + 0xe0]
cmp eax, esi
jne 0x41fc9e
mov eax, dword [ebx + 0x114]
mov edx, dword [ebp + 0x58]
xor ecx, ecx
cmp eax, esi
setne cl
mov dword [esp + 0x104], ecx
mov dword [esp + 0x14], edx
mov al, byte [ebx + 0x1e]
test al, al
jne 0x41fb6b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xf0]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x104]
test eax, eax
je 0x41b17f
mov edx, dword [ebx + 0x11c]
mov eax, dword [esp + 0xe8]
cmp edx, eax
jne 0x41b178
mov eax, dword [ebx + 0x118]
push eax
call dword [ebx + 0x114]
add esp, 4
test eax, eax
jne 0x41fa20
mov dword [esp + 0xe8], eax
inc dword [esp + 0xe8]
test byte [esi + 2], 2
je 0x41b1a5
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
lea eax, [edi + ecx*8]
push eax
mov dword [esp + 0x1c], eax
call fcn.004163c0
mov edx, dword [esp + 0x1c]
add esp, 4
mov word [edx + 0x1c], 4
xor eax, eax
mov al, byte [esi]
dec eax
cmp eax, 0x90
ja case.0x41b1b5.17
jmp dword [eax*4 + 0x41fd70]
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x41fc9e
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [esp + 0x14]
cdq
mov dword [ecx + 0x10], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 0x14], edx
mov ecx, dword [esi + 8]
dec ecx
mov dword [esp + 0x14], ecx
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov eax, dword [edi + edx*8 + 0x10]
mov dword [esp + 0x14], eax
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
mov eax, dword [esp + 0x14]
lea ecx, [esi + esi*4]
mov edx, dword [edi + ecx*8 + 0x10]
lea ecx, [edi + ecx*8]
mov word [ecx + 0x1c], 4
mov dword [esp + 0x20], edx
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jmp case.0x41b1b5.17
mov eax, dword [esi + 0xc]
lea ecx, [eax + eax*4]
test byte [edi + ecx*8 + 0x1c], 1
je case.0x41b1b5.17
mov eax, dword [esi + 4]
test eax, eax
jne 0x41fa2a
mov edi, dword [ebp + 0xa8]
test edi, edi
je 0x41fa2a
mov eax, dword [ebp + 0xb0]
mov edx, dword [edi + 0x3c]
dec eax
mov dword [ebp + 0xa8], edx
mov dword [ebp + 0xb0], eax
mov eax, dword [ebp + 0x6c]
push eax
push ebx
call fcn.00418670
push edi
call fcn.00417db0
mov ecx, dword [esi + 8]
add esp, 0xc
cmp ecx, 4
mov dword [esp + 0x14], eax
jne 0x41b2ae
mov edx, dword [ebp + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4 + 8]
dec eax
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xe4], edx
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x18]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x41b1b5.17
mov ecx, dword [esi + 0x10]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0x14], ecx
jmp case.0x41b1b5.17
mov eax, dword [esp + 0x18]
mov word [eax + 0x1c], 8
mov edx, dword [esi + 0x10]
mov ecx, dword [edx]
mov dword [eax + 8], ecx
mov edx, dword [edx + 4]
mov dword [eax + 0xc], edx
jmp case.0x41b1b5.17
mov eax, dword [esi + 0x10]
mov byte [esi], 9
push eax
call fcn.0040a490
mov dword [esi + 4], eax
mov al, byte [esp + 0xe4]
add esp, 4
cmp al, 1
je 0x41b3b5
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x18]
push 0
push 1
push 0xffffffffffffffff
push ecx
push edx
call fcn.00415f80
add esp, 0x14
cmp eax, 0x12
mov dword [esp + 0x10], eax
je 0x41fcc1
mov eax, dword [esp + 0xe0]
mov edi, dword [esp + 0x18]
and eax, 0xff
push eax
push edi
call fcn.00418c40
add esp, 8
test eax, eax
jne 0x41fb6b
mov cx, word [edi + 0x1c]
mov dword [edi + 0x24], eax
and ecx, 0xfbff
or ch, 8
mov word [edi + 0x1c], cx
mov al, byte [esi + 1]
cmp al, 0xff
jne 0x41b3a1
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x1c]
push edx
push eax
call fcn.00408e50
add esp, 8
mov ebx, dword [esp + 0x1c]
mov byte [esi + 1], 0xff
mov ecx, dword [edi + 4]
mov dword [esi + 0x10], ecx
mov edx, dword [edi + 0x18]
mov dword [esi + 4], edx
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 0x48]
cmp eax, ecx
jg 0x41fcc1
mov eax, dword [esp + 0x18]
mov word [eax + 0x1c], 0xa02
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov edx, dword [esi + 4]
mov cl, byte [esp + 0xe0]
mov dword [eax + 0x18], edx
mov byte [eax + 0x1f], cl
jmp case.0x41b1b5.17
mov edx, dword [esp + 0x18]
mov word [edx + 0x1c], 1
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
mov esi, dword [esp + 0x18]
push 0
push 0
push eax
push ecx
push esi
call fcn.00415f80
mov dl, byte [esp + 0xf4]
add esp, 0x14
mov byte [esi + 0x1f], dl
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
mov ecx, dword [ebp + 0x48]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*8 - 0x28]
push eax
mov dword [esp + 0x24], eax
call fcn.004262d0
add esp, 4
test eax, eax
jne 0x41fcc1
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
push 0x800
push edx
push eax
call fcn.00426300
add esp, 0xc
jmp case.0x41b1b5.17
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x28], ecx
mov esi, dword [esi + 8]
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x2c], esi
lea edx, [esi + esi*4]
lea ebx, [edi + ecx*8]
mov ecx, eax
lea edi, [edi + edx*8]
dec eax
test ecx, ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], eax
je case.0x41b1b5.17
xor esi, esi
mov edx, dword [edi + 0x24]
push ebx
mov dword [esp + 0x24], edx
push edi
mov dword [edi + 0x24], esi
call fcn.0041aec0
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x24]
add ebx, 0x28
add edi, 0x28
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x24], eax
jne 0x41b493
mov dword [esp + 0x18], edi
jmp case.0x41b1b5.17
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea edx, [eax + eax*4]
lea eax, [esi + esi*4]
lea ecx, [edi + eax*8]
lea ebx, [edi + edx*8]
push ecx
push ebx
mov dword [esp + 0x24], ebx
call fcn.00426300
add esp, 0xc
test byte [ebx + 0x1d], 0x10
je case.0x41b1b5.17
push ebx
call fcn.004162c0
add esp, 4
test eax, eax
jne 0x41fb6b
jmp case.0x41b1b5.17
mov eax, dword [esi + 8]
mov esi, dword [esi + 4]
push 0x1000
lea edx, [eax + eax*4]
lea ecx, [esi + esi*4]
lea eax, [edi + edx*8]
lea edx, [edi + ecx*8]
push edx
push eax
mov dword [esp + 0x24], eax
call fcn.00426300
add esp, 0xc
jmp case.0x41b1b5.17
push 0
push ebp
call fcn.00418590
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x41b1b5.17
push 1
push ebp
call fcn.00418430
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x41fab9
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [esi + 8]
mov esi, dword [esi + 0xc]
lea ecx, [eax + eax*4]
mov ax, word [ebx + 0x1c]
lea edx, [esi + esi*4]
lea ebp, [edi + ecx*8]
mov cl, al
lea esi, [edi + edx*8]
mov dl, byte [ebp + 0x1c]
mov dword [esp + 0x18], esi
or cl, dl
test cl, 1
je 0x41b5ab
push esi
call fcn.004164e0
add esp, 4
jmp case.0x41b1b5.17
test ah, 0x40
je 0x41b5c1
push ebx
call fcn.00416320
add esp, 4
test eax, eax
jne 0x41fb6b
test byte [ebp + 0x1d], 0x40
je 0x41b5d8
push ebp
call fcn.00416320
add esp, 4
test eax, eax
jne 0x41fb6b
test byte [ebx + 0x1c], 0x12
jne 0x41b5fd
mov edx, dword [esp + 0xe0]
and edx, 0xff
push edx
push ebx
call fcn.00419110
add esp, 8
test eax, eax
jne 0x41fb6b
test byte [ebp + 0x1c], 0x12
jne 0x41b621
mov eax, dword [esp + 0xe0]
and eax, 0xff
push eax
push ebp
call fcn.00419110
add esp, 8
test eax, eax
jne 0x41fb6b
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x18]
add eax, ecx
cdq
mov ecx, edx
mov edx, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], esi
mov eax, dword [edx + 0x48]
cdq
cmp ecx, edx
jg 0x41fcc1
jl 0x41b650
cmp esi, eax
ja 0x41fcc1
mov esi, dword [esp + 0x18]
xor ecx, ecx
mov ax, word [esi + 0x1c]
and eax, 0xbf02
or al, 2
cmp esi, ebp
mov word [esi + 0x1c], ax
mov edx, dword [esp + 0x20]
sete cl
add edx, 2
push ecx
push edx
push esi
call fcn.004161a0
add esp, 0xc
test eax, eax
jne 0x41fb6b
cmp esi, ebp
je 0x41b6a5
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 4]
mov edx, ecx
mov edi, dword [eax + 4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x41b6a9
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 4]
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x18]
mov esi, dword [ebx + 4]
add edi, edx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x20]
mov byte [ecx + edx], 0
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x20]
mov byte [ecx + edx + 1], 0
or byte [eax + 0x1d], 2
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0xe0]
mov dword [eax + 0x18], ecx
mov byte [eax + 0x1f], dl
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0xe4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.0041afe0
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
lea ebp, [ebx + ecx*8]
push ebp
call fcn.0041afe0
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov cx, word [ebp + 0x1c]
add esp, 8
lea edx, [eax + eax*4]
lea eax, [ebx + edx*8]
xor edx, edx
mov dx, word [edi + 0x1c]
mov dword [esp + 0x18], eax
or ecx, edx
mov al, cl
mov dword [esp + 0x20], ecx
test al, 1
jne 0x41b958
mov al, byte [ebp + 0x1c]
mov bl, byte [edi + 0x1c]
and al, bl
and al, 4
cmp al, 4
jne 0x41b86c
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x2c], ecx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x30], ebx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x34], edx
xor edx, edx
mov dl, byte [esi]
add edx, 0xffffffaa
cmp edx, 3
ja case.default.0x41b785
jmp dword [edx*4 + 0x41ffb4]
push ecx
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00420100
add esp, 0xc
test eax, eax
jne 0x41b86c
jmp 0x41b844
push ecx
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.004201a0
add esp, 0xc
test eax, eax
jne 0x41b86c
jmp 0x41b844
push ecx
lea edx, [esp + 0x34]
push eax
push edx
call fcn.00420200
add esp, 0xc
test eax, eax
jne 0x41b86c
jmp 0x41b844
mov edx, eax
or edx, ecx
je 0x41b958
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x41b7fe
test ebx, ebx
jne 0x41b7fe
cmp dword [esp + 0x34], 0x80000000
je 0x41b86c
push ecx
push eax
mov eax, dword [esp + 0x3c]
push eax
push ebx
call fcn.00453ed0
jmp 0x41b83c
mov edx, eax
or edx, ecx
je 0x41b958
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x41b82f
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
push ecx
push eax
mov eax, dword [esp + 0x3c]
push eax
push ebx
call fcn.00453e10
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x34]
and ecx, 0xbf04
or ecx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.0x41b1b5.17
push edi
call fcn.004191b0
fstp qword [esp + 0x3c]
push ebp
call fcn.004191b0
fstp qword [esp + 0x48]
xor eax, eax
add esp, 8
mov al, byte [esi]
add eax, 0xffffffaa
cmp eax, 3
ja case.default.0x41b88f
jmp dword [eax*4 + 0x41ffc4]
fld qword [esp + 0x40]
fadd qword [esp + 0x38]
jmp 0x41b93e
fld qword [esp + 0x40]
fsub qword [esp + 0x38]
jmp 0x41b93e
fld qword [esp + 0x40]
fmul qword [esp + 0x38]
jmp 0x41b93e
fld qword [esp + 0x38]
fcomp qword [0x4699c0]
fnstsw ax
test ah, 0x40
jne 0x41b958
fld qword [esp + 0x40]
fdiv qword [esp + 0x38]
jmp 0x41b93e
fld qword [esp + 0x38]
call fcn.00453da8
fld qword [esp + 0x40]
mov esi, eax
mov edi, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
call fcn.00453da8
mov ecx, esi
mov dword [esp + 0x30], eax
or ecx, edi
mov dword [esp + 0x34], edx
je 0x41b958
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x41b920
mov esi, 1
xor edi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
push edi
push esi
push edx
push eax
call fcn.00453e10
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
fild qword [esp + 0x10c]
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
push edx
push eax
call fcn.0040a440
add esp, 8
test eax, eax
je 0x41b96a
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004164e0
add esp, 4
jmp case.0x41b1b5.17
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov dx, word [eax + 0x1c]
and edx, 0xbf08
mov dword [eax + 0xc], ecx
or edx, 8
mov word [eax + 0x1c], dx
mov al, byte [esp + 0x20]
test al, 8
jne case.0x41b1b5.17
mov eax, dword [esp + 0x18]
push eax
call fcn.00426110
add esp, 4
jmp case.0x41b1b5.17
mov edx, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esi + 8]
mov dword [esp + 0x18], edx
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], eax
jle 0x41ba2a
mov ecx, dword [esp + 0x68]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x24]
test byte [eax + 0x1d], 0x10
je 0x41ba05
push eax
call fcn.004162c0
add esp, 4
test eax, eax
jne 0x41fb6b
mov eax, dword [esp + 0x24]
push eax
call fcn.0041afa0
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x70]
add esp, 4
inc eax
add edi, 0x28
cmp eax, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edi
jl 0x41b9df
cmp byte [esi + 1], 0xfb
jne 0x41ba3f
mov edx, dword [esi + 0x10]
xor edi, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edi
jmp 0x41ba4e
mov eax, dword [esi + 0x10]
xor edi, edi
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x30]
push ebp
push ecx
mov word [esp + 0x54], 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
call fcn.0041aec0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
and edx, 0xbf01
mov dword [esp + 0x64], edi
or edx, 1
add esp, 8
mov word [esp + 0x4c], dx
mov cl, byte [eax + 3]
test cl, 8
je 0x41baa0
mov ecx, dword [esi - 4]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
push edx
lea edx, [esp + 0x2c]
push ecx
push edx
call dword [eax + 0xc]
mov al, byte [ebx + 0x1e]
add esp, 0xc
test al, al
jne 0x41fb5e
mov eax, dword [esp + 0x2c]
cmp eax, edi
je 0x41bae0
mov ecx, dword [esi + 4]
push ecx
push eax
call fcn.00416870
mov edx, dword [esp + 0x34]
add esp, 8
mov dword [esi + 0x10], edx
mov byte [esi + 1], 0xf9
cmp dword [esp + 0x5c], edi
je 0x41bb12
lea eax, [esp + 0x30]
push eax
call fcn.004194d0
mov ecx, dword [esp + 0x124]
push eax
push 0x47113c
add ecx, 0x38
push ebx
push ecx
call fcn.004185f0
mov edx, dword [esp + 0x70]
add esp, 0x14
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x30]
and eax, 0xff
push eax
push ecx
call fcn.00418c40
lea edx, [esp + 0x38]
push edx
push ebp
call fcn.0041aec0
push ebp
jmp 0x41f7b2
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov al, byte [edi + ecx*8 + 0x1c]
lea ecx, [edi + ecx*8]
lea edi, [edi + edx*8]
mov dl, byte [ebx + 0x1c]
or al, dl
mov dword [esp + 0x18], edi
test al, 1
je 0x41bb74
push edi
call fcn.004164e0
add esp, 4
jmp case.0x41b1b5.17
push ecx
call fcn.00419230
push ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
call fcn.00419230
mov ebx, eax
mov ebp, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebp
mov al, byte [esi]
add esp, 8
cmp al, 0x52
mov byte [esp + 0x38], al
jne 0x41bbba
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
and ecx, ebx
and eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x41bcc9
cmp al, 0x53
jne 0x41bbd7
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
or ecx, ebx
or eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp 0x41bcc9
mov ecx, ebx
or ecx, ebp
je 0x41bcc9
test ebp, ebp
jg 0x41bc1b
jl 0x41bbeb
test ebx, ebx
jae 0x41bc10
mov dl, 0xa9
sub dl, al
cmp ebp, 0xffffffff
mov al, dl
mov byte [esp + 0x38], al
jl 0x41bc42
jg 0x41bc01
cmp ebx, 0xffffffc0
jbe 0x41bc42
neg ebx
adc ebp, 0
mov dword [esp + 0x30], ebx
neg ebp
mov dword [esp + 0x34], ebp
test ebp, ebp
jl 0x41bc61
jg 0x41bc1b
cmp ebx, 0x40
jb 0x41bc61
mov ecx, dword [esp + 0x24]
test ecx, ecx
jg 0x41bc54
jl 0x41bc2d
mov ecx, dword [esp + 0x20]
test ecx, ecx
jae 0x41bc54
cmp al, 0x54
je 0x41bc54
or eax, 0xffffffff
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x41bcc9
mov dword [esp + 0x30], pe_nt_image_headers32
mov dword [esp + 0x34], 0
jmp 0x41bc1b
xor eax, eax
cdq
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jmp 0x41bcc9
cmp al, 0x54
mov eax, dword [esp + 0x20]
mov ecx, ebx
jne 0x41bc7e
mov edx, dword [esp + 0x24]
call fcn.00454740
mov esi, eax
mov ebp, edx
mov dword [esp + 0x28], esi
jmp 0x41bcbd
mov edi, dword [esp + 0x24]
mov edx, edi
call fcn.00454720
mov esi, eax
mov ebp, edx
test edi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
jg 0x41bcc1
jl 0x41bca3
mov eax, dword [esp + 0x20]
test eax, eax
jae 0x41bcc1
mov ecx, pe_nt_image_headers32
or eax, 0xffffffff
sub ecx, ebx
or edx, 0xffffffff
call fcn.00454740
or esi, eax
or ebp, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov cx, word [eax + 0x1c]
mov edx, dword [esp + 0x24]
and ecx, 0xbf04
or ecx, 4
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], cx
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
push edi
call fcn.00426170
mov eax, dword [esi + 8]
mov ecx, dword [edi + 0x10]
cdq
add esp, 4
add ecx, eax
mov dword [edi + 0x10], ecx
mov eax, dword [edi + 0x14]
adc eax, edx
mov dword [edi + 0x14], eax
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0xe0]
push ecx
push 0x63
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
push edi
call fcn.00427650
mov ax, word [edi + 0x1c]
add esp, 0xc
test al, 4
jne 0x41c23e
mov esi, dword [esi + 8]
test esi, esi
je 0x41fb96
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 4
je case.0x41b1b5.17
push eax
call fcn.004261a0
add esp, 4
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea edi, [edi + eax*8]
mov ax, word [edi + 0x1c]
test al, 1
jne case.0x41b1b5.17
mov edx, dword [esp + 0xe0]
mov cl, al
shr cl, 3
and ecx, 2
push edx
or ecx, eax
push 0x61
push edi
mov word [edi + 0x1c], cx
call fcn.00427650
add esp, 0xc
test byte [edi + 0x1d], 0x40
je 0x41bdd1
push edi
call fcn.00416320
add esp, 4
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], eax
jmp case.0x41b1b5.17
and word [edi + 0x1c], 0xbfe3
mov dword [esp + 0x10], 0
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea edi, [edi + eax*8]
mov ax, word [edi + 0x1c]
test al, 1
jne case.0x41b1b5.17
test al, 0x10
jne 0x41be26
mov ecx, dword [esp + 0xe0]
push ecx
push 0x61
push edi
call fcn.00427650
mov dx, word [edi + 0x1c]
add esp, 0xc
and edx, 0xbf10
or edx, 0x10
mov word [edi + 0x1c], dx
jmp case.0x41b1b5.17
and eax, 0xff10
mov word [edi + 0x1c], ax
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.004261d0
add esp, 4
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
jne case.0x41b1b5.17
push eax
call fcn.00426170
add esp, 4
jmp case.0x41b1b5.17
mov esi, dword [esi + 4]
lea eax, [esi + esi*4]
mov cl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test cl, 1
jne case.0x41b1b5.17
push eax
call fcn.004261a0
add esp, 4
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea ebp, [edi + ecx*8]
lea edx, [eax + eax*4]
mov cx, word [ebp + 0x1c]
lea eax, [edi + edx*8]
mov word [esp + 0x26], cx
mov dword [esp + 0xf8], eax
mov dx, word [eax + 0x1c]
mov word [esp + 0x28], dx
mov ax, word [eax + 0x1c]
mov cx, word [ebp + 0x1c]
mov dl, al
or dl, cl
test dl, 1
mov dl, byte [esi + 3]
je 0x41bf1f
test dl, 0x80
je 0x41beee
mov ebx, dword [esp + 0xf8]
and eax, ecx
not al
and eax, 1
mov dword [esp + 0x20], eax
jmp 0x41bf9a
test dl, 0x10
je 0x41bf17
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
mov cx, word [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
and ecx, 0xbf01
mov dword [esp + 0x18], eax
or ecx, 1
mov word [eax + 0x1c], cx
jmp case.0x41b1b5.17
test dl, 8
jmp 0x41e438
and dl, 0x67
mov byte [esp + 0x24], dl
je 0x41bf63
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push ebp
call fcn.00427650
mov edx, dword [esp + 0xec]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x104]
push edx
push eax
push ecx
call fcn.00427650
mov al, byte [ebx + 0x1e]
add esp, 0x18
test al, al
jne 0x41fb6b
test byte [ebp + 0x1d], 0x40
je 0x41bf72
push ebp
call fcn.00416320
add esp, 4
mov ebx, dword [esp + 0xf8]
test byte [ebx + 0x1d], 0x40
je 0x41bf88
push ebx
call fcn.00416320
add esp, 4
mov edx, dword [esi + 0x10]
push edx
push ebp
push ebx
call fcn.00426350
add esp, 0xc
mov dword [esp + 0x20], eax
xor ecx, ecx
mov cl, byte [esi]
add ecx, 0xffffffb5
cmp ecx, 4
ja case.default.0x41bfa6
jmp dword [ecx*4 + 0x41ffd4]
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x41bfe9
xor edx, edx
test eax, eax
setne dl
jmp 0x41bfe7
xor ecx, ecx
test eax, eax
setl cl
mov eax, ecx
jmp 0x41bfe9
xor edx, edx
test eax, eax
setle dl
jmp 0x41bfe7
xor ecx, ecx
test eax, eax
setg cl
mov eax, ecx
jmp 0x41bfe9
xor edx, edx
test eax, eax
setge dl
mov eax, edx
mov dword [esp + 0x20], eax
mov cl, byte [esi + 3]
test cl, 0x10
je 0x41c021
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
mov cx, word [edi + eax*8 + 0x1c]
lea edi, [edi + eax*8]
and ecx, 0xbf04
mov dword [esp + 0x18], edi
or ecx, 4
mov word [edi + 0x1c], cx
mov eax, dword [esp + 0x20]
cdq
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], edx
jmp 0x41c02d
test eax, eax
je 0x41c02d
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
mov ax, word [ebp + 0x1c]
mov cl, byte [esp + 0x26]
mov dl, al
xor dl, cl
and edx, 0xff
xor edx, eax
mov word [ebp + 0x1c], dx
mov ax, word [ebx + 0x1c]
mov dl, byte [esp + 0x28]
mov cl, al
xor cl, dl
and ecx, 0xff
xor ecx, eax
mov word [ebx + 0x1c], cx
jmp case.0x41b1b5.17
mov edx, dword [esi + 0x10]
mov dword [esp + 0xec], edx
jmp case.0x41b1b5.17
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 0x10]
mov dword [esp + 0x30], edx
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x2c], eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], eax
jle 0x41c134
mov ebp, dword [esp + 0xec]
mov edi, dword [esp + 0xe4]
jmp 0x41c0af
mov edx, dword [esp + 0x30]
test ebp, ebp
je 0x41c0b9
mov ecx, dword [ebp + eax*4]
jmp 0x41c0bb
mov ecx, eax
mov dword [esp + 0x34], ecx
mov esi, dword [edx + eax*4 + 0xc]
mov dword [esp + 0x38], esi
mov edx, dword [edx + 8]
xor ebx, ebx
push esi
mov bl, byte [edx + eax]
mov eax, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x40], ebx
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov edx, dword [esp + 0x2c]
push eax
lea eax, [ecx + edx]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.00426350
add esp, 0xc
mov dword [esp + 0xfc], eax
test eax, eax
jne 0x41c123
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x41c0ab
mov dword [esp + 0xec], 0
jmp case.0x41b1b5.17
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x41c134
neg eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0xec], 0
jmp case.0x41b1b5.17
mov eax, dword [esp + 0xfc]
test eax, eax
jge 0x41c15c
mov esi, dword [esi + 4]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
jne 0x41c16b
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov esi, dword [esi + 0xc]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov cl, byte [edi + edx*8 + 0x1c]
lea eax, [edi + edx*8]
test cl, 1
je 0x41c191
mov ecx, 2
jmp 0x41c1a7
push eax
call fcn.00419230
add esp, 4
or eax, edx
je 0x41c1a5
mov ecx, 1
jmp 0x41c1a7
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
mov dl, byte [edi + eax*8 + 0x1c]
lea eax, [edi + eax*8]
test dl, 1
je 0x41c1c8
mov eax, 2
mov dword [esp + 0x24], eax
jmp 0x41c1e6
push eax
call fcn.00419230
add esp, 4
or eax, edx
je 0x41c1dc
mov eax, 1
jmp 0x41c1de
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp byte [esi], 0x45
jne 0x41c1f9
lea edx, [eax + ecx*2]
xor eax, eax
mov al, byte [ecx + edx + 0x466bc8]
jmp 0x41c207
lea eax, [eax + ecx*2]
xor edx, edx
mov dl, byte [ecx + eax + 0x466bd4]
mov eax, edx
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0xc]
cmp eax, 2
lea ecx, [esi + esi*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x18], edi
jne 0x41c233
mov dx, word [edi + 0x1c]
and edx, 0xbf01
or edx, 1
mov word [edi + 0x1c], dx
jmp case.0x41b1b5.17
cdq
mov dword [edi + 0x10], eax
mov ax, word [edi + 0x1c]
mov dword [edi + 0x14], edx
and eax, 0xbf04
or al, 4
mov word [edi + 0x1c], ax
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea ecx, [eax + eax*4]
lea edx, [esi + esi*4]
lea eax, [edi + ecx*8]
lea edi, [edi + edx*8]
mov dword [esp + 0x18], edi
test byte [eax + 0x1c], 1
je 0x41c278
push edi
call fcn.004164e0
add esp, 4
jmp case.0x41b1b5.17
push eax
call fcn.00419230
add esp, 4
or eax, edx
jne 0x41c29b
mov eax, 1
cdq
push edx
push eax
push edi
call fcn.00419670
add esp, 0xc
jmp case.0x41b1b5.17
xor eax, eax
cdq
push edx
push eax
push edi
call fcn.00419670
add esp, 0xc
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + esi*4]
lea eax, [edi + eax*8]
lea esi, [edi + ecx*8]
mov dword [esp + 0x18], esi
test byte [eax + 0x1c], 1
je 0x41c2d8
push esi
call fcn.004164e0
add esp, 4
jmp case.0x41b1b5.17
push eax
call fcn.00419230
not edx
not eax
push edx
push eax
push esi
call fcn.00419670
add esp, 0x10
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov al, byte [edi + edx*8 + 0x1c]
test al, 1
lea edi, [edi + edx*8]
je 0x41c30f
mov eax, dword [esi + 0xc]
mov dword [esp + 0x20], eax
jmp 0x41e436
push edi
call fcn.004191b0
fcomp qword [0x4699c0]
add esp, 4
fnstsw ax
test ah, 0x40
jne 0x41c32c
mov eax, 1
jmp 0x41c32e
xor eax, eax
mov dword [esp + 0x20], eax
mov cl, byte [esi]
cmp cl, 0x1b
jne 0x41e436
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
mov dword [esp + 0x20], eax
jmp 0x41e436
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
test byte [edi + edx*8 + 0x1c], 1
je case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 0x1c], 1
jne case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
xor ebx, ebx
mov dword [esp + 0x30], ecx
mov edx, dword [esi + 8]
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x60]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x38], ebx
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x120]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x5c], eax
mov cx, word [eax + 0x1c]
and ecx, 0xbf01
or ecx, 1
mov word [eax + 0x1c], cx
mov eax, dword [edi + 0x44]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], ebx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x38], eax
mov ecx, dword [eax]
cmp ecx, ebx
mov dword [esp + 0x40], ecx
je 0x41c47f
push eax
call fcn.00426670
add esp, 4
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41fc5e
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x41c421
mov dword [esp + 0x20], ebx
jmp case.0x41b1b5.17
mov ecx, dword [esp + 0x120]
mov edx, dword [eax + 0x4c]
cmp edx, dword [ecx + 0x54]
jne 0x41c440
mov edx, dword [eax + 0x50]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x3c], ecx
jmp 0x41c4bb
mov cl, byte [eax + 0x1f]
test cl, cl
je 0x41c467
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.00415950
mov ecx, dword [esp + 0x30]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], ecx
jmp 0x41c4b7
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.004216f0
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x41c4b7
mov ecx, dword [eax + 0x10]
cmp ecx, ebx
jle 0x41d836
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esp + 0xa0], ecx
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x20], edx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], ecx
mov cl, byte [esi + 3]
test cl, 0x20
je 0x41c4b1
xor ecx, ecx
jmp 0x41c4b4
mov ecx, dword [edi + 0x54]
mov dword [eax + 0x4c], ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je case.0x41b1b5.17
mov edx, dword [esp + 0x1c]
cmp ecx, dword [edx + 0x48]
ja 0x41fcc1
mov edx, dword [eax + 0x14]
mov edi, dword [esp + 0x120]
mov dword [esp + 0x4c], edx
mov ecx, dword [eax + 0x54]
mov ebp, dword [edi + 0x54]
mov dword [esp + 0x44], ecx
mov ebx, dword [eax + 0x4c]
cmp ebx, ebp
jne 0x41c4ff
mov eax, dword [eax + 0x58]
mov dword [esp + 0x48], eax
jmp 0x41c7b9
xor ebx, ebx
lea ecx, [ecx + edx*4]
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x48], ecx
mov dword [eax + 0x58], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x50], edx
mov ecx, dword [esp + 0x38]
mov eax, dword [edi + 0x54]
mov dword [ecx + 0x4c], eax
mov edx, dword [esp + 0x3c]
cmp edx, ebx
je 0x41c535
mov dword [esp + 0x58], edx
jmp 0x41c594
mov edx, dword [esp + 0x38]
mov al, byte [edx + 0x1f]
test al, al
je 0x41c554
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x9c]
push eax
push ecx
call fcn.00421840
jmp 0x41c566
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x9c]
push edx
push eax
call fcn.004218d0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xa4]
add esp, 8
cmp ecx, edx
mov dword [esp + 0x58], eax
ja 0x41c589
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov dword [edx + 0x5c], eax
jmp 0x41c590
mov eax, dword [esp + 0x38]
mov dword [eax + 0x5c], ebx
mov edx, dword [esp + 0x58]
mov cl, byte [edx]
cmp cl, 0x80
jae 0x41c5af
and ecx, 0xff
mov eax, 1
mov dword [esp + 0x90], ecx
jmp 0x41c5d0
lea ecx, [esp + 0x90]
push ecx
push edx
call fcn.00414650
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x60]
add esp, 8
and eax, 0xff
and eax, 0xff
cmp ecx, 0x18003
mov dword [esp + 0x98], eax
jbe 0x41c5fa
push 0xfbbf
call fcn.00451020
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x41b1b5.17
mov edi, dword [esp + 0x4c]
lea eax, [edi + edi*4 + 3]
cmp eax, ecx
mov dword [esp + 0x50], eax
jle 0x41c610
mov eax, ecx
mov dword [esp + 0x50], eax
cmp dword [esp + 0x3c], ebx
jne 0x41c66c
cmp dword [esp + 0x9c], eax
jge 0x41c66c
lea edx, [esp + 0x60]
xor ecx, ecx
push edx
mov edx, dword [esp + 0x3c]
mov word [esp + 0x80], bx
mov dword [esp + 0x64], ebx
mov cl, byte [edx + 0x1f]
push ecx
push eax
mov eax, dword [esp + 0x4c]
push ebx
push eax
call fcn.00426570
add esp, 0x14
cmp eax, ebx
mov dword [esp + 0x10], eax
jne case.0x41b1b5.17
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x58], edx
add eax, edx
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x98]
add eax, edx
mov dword [esp + 0x88], eax
xor eax, eax
test edi, edi
mov dword [esp + 0x54], eax
jle 0x41c76c
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
cmp edi, edx
jae 0x41c734
mov edx, dword [esp + 0x48]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x88]
mov al, byte [ecx]
cmp al, 0x80
jae 0x41c6d4
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
and eax, 0xff
mov dword [ecx + edx*4], eax
mov eax, 1
jmp 0x41c6ee
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x44]
lea eax, [edx + eax*4]
push eax
push ecx
call fcn.00414650
add esp, 8
and eax, 0xff
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x54]
and eax, 0xff
add ecx, eax
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + edx*4]
push eax
call fcn.00426850
mov ecx, dword [esp + 0x94]
add esp, 4
add ecx, eax
mov dword [esp + 0x94], eax
cmp ecx, eax
mov dword [esp + 0x90], ecx
jb 0x41c75d
jmp 0x41c746
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], 0
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
inc eax
cmp eax, edx
mov dword [esp + 0x54], eax
jl 0x41c693
jmp 0x41c76c
mov edx, dword [esp + 0x8c]
inc edx
mov dword [esp + 0x88], edx
lea eax, [esp + 0x60]
push eax
call fcn.00416390
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
add esp, 4
cmp eax, ecx
mov word [esp + 0x7c], 1
ja 0x41c906
mov edx, dword [esp + 0x90]
mov edi, dword [esp + 0x20]
cmp edx, edi
ja 0x41c906
cmp eax, ecx
jne 0x41c7b5
cmp edx, edi
jne 0x41c906
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
cmp dword [edx + eax*4], 0
je 0x41c89e
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x41c817
mov eax, dword [esp + 0x5c]
push eax
call fcn.004163c0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x50]
push ecx
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x48]
add eax, edx
push eax
call fcn.00426940
mov eax, dword [esp + 0x6c]
mov cl, byte [esp + 0xf0]
add esp, 0x10
mov byte [eax + 0x1f], cl
jmp 0x41c8ba
mov ecx, dword [ecx + eax*4]
push ecx
call fcn.00426850
mov edx, dword [esp + 0x60]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x64]
push edx
push eax
call fcn.0041aec0
mov eax, dword [esp + 0x44]
xor edx, edx
lea ecx, [esp + 0x6c]
mov dl, byte [eax + 0x1f]
mov eax, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x5c]
push ecx
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x58]
push ecx
push edx
call fcn.00426570
add esp, 0x20
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x41b1b5.17
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
mov edx, dword [edx + ecx*4]
push edx
push eax
call fcn.00426940
mov eax, dword [esp + 0x68]
mov cl, byte [esp + 0xec]
add esp, 0xc
mov byte [eax + 0x1f], cl
jmp 0x41c8ba
cmp byte [esi + 1], 0xf8
jne 0x41c8ba
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x5c]
push 0x800
push edx
push eax
call fcn.00426300
add esp, 0xc
mov eax, dword [esp + 0x84]
test eax, eax
je 0x41c8f0
mov eax, dword [esp + 0x5c]
and word [eax + 0x1c], 0xe7ff
mov eax, dword [esp + 0x5c]
or byte [eax + 0x1d], 2
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x64]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x24], eax
mov edx, dword [esp + 0x5c]
push edx
call fcn.004162c0
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x41b1b5.17
push 0xfc09
call fcn.00451020
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x41b1b5.17
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 4]
inc eax
lea ecx, [esi + esi*4]
lea esi, [edi + ecx*8]
mov cl, byte [eax - 1]
test cl, cl
mov byte [esp + 0x24], cl
mov dword [esp + 0x20], eax
je case.0x41b1b5.17
test byte [esi + 0x1d], 0x40
je 0x41c94f
push esi
call fcn.00416320
add esp, 4
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0x24]
push edx
push eax
push esi
call fcn.00427650
mov eax, dword [esp + 0x2c]
add esp, 0xc
add esi, 0x28
mov cl, byte [eax]
inc eax
test cl, cl
mov byte [esp + 0x24], cl
mov dword [esp + 0x20], eax
jne 0x41c940
jmp case.0x41b1b5.17
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x54], eax
mov ebx, dword [esi + 0x10]
lea ecx, [eax + eax*4]
mov dword [esp + 0x58], ebx
lea eax, [edi + ecx*8]
mov dword [esp + 0x4c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x54], ecx
lea edx, [ecx + ecx*4]
xor ecx, ecx
mov cl, byte [ebp + 0x66]
lea edx, [eax + edx*8 - 0x28]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x50], edx
mov esi, dword [esi + 0xc]
cmp eax, edx
lea ecx, [esi + esi*4]
lea ecx, [edi + ecx*8]
mov dword [esp + 0x18], ecx
mov ecx, eax
mov dword [esp + 0x24], ecx
ja 0x41cabe
jmp 0x41c9ea
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
test ebx, ebx
je 0x41ca1c
mov edx, dword [esp + 0xe0]
push edx
mov edx, ecx
sub edx, eax
mov eax, 0x66666667
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dl, byte [edx + ebx]
push edx
push ecx
call fcn.00427650
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov esi, 0x4000
test word [ecx + 0x1c], si
je 0x41ca3b
mov eax, dword [ecx + 0x18]
test eax, eax
jle 0x41ca3b
push ecx
call fcn.00416320
mov ecx, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x5c]
push eax
push ecx
call fcn.00426760
push eax
mov dword [esp + 0x54], eax
call fcn.00426850
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x70], eax
push 0
cdq
add ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x58]
adc ebp, edx
push ecx
mov dword [esp + 0x40], ebp
call fcn.004200d0
mov ecx, dword [esp + 0x44]
add esp, 0x14
add ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
test word [ecx + 0x1c], si
je 0x41ca9b
mov edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x40]
add eax, edx
mov dword [esp + 0x40], eax
jmp 0x41caab
mov eax, dword [esp + 0x64]
test eax, eax
je 0x41caab
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x50]
add ecx, 0x28
cmp ecx, eax
mov dword [esp + 0x24], ecx
jbe 0x41c9e2
mov eax, dword [esp + 0x30]
cdq
push edx
push eax
call fcn.004200d0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
add ecx, eax
mov eax, ecx
mov dword [esp + 0x38], ecx
cdq
push edx
push eax
call fcn.004200d0
mov ecx, dword [esp + 0x54]
add esp, 0x10
cmp ecx, eax
jge 0x41caf1
inc dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x28]
cdq
mov edi, eax
mov eax, dword [esp + 0x30]
mov ebx, edx
cdq
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
sub esi, edi
sbb ecx, ebx
mov ebx, dword [esp + 0x2c]
add esi, ebp
adc ecx, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 0x48]
cdq
cmp ecx, edx
jg 0x41fcc1
jl 0x41cb35
cmp esi, eax
ja 0x41fcc1
push 0
push esi
mov esi, dword [esp + 0x20]
push esi
call fcn.004161a0
add esp, 0xc
test eax, eax
jne 0x41fb6b
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + 4]
cmp ecx, 0x80
mov dword [esp + 0x20], eax
jae 0x41cb69
mov byte [eax], cl
mov eax, 1
jmp 0x41cb73
push ecx
push eax
call fcn.0041fff0
add esp, 8
mov ecx, dword [esp + 0x50]
and eax, 0xff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x24], eax
ja 0x41cbf1
mov edx, dword [esp + 0x5c]
push edx
push eax
call fcn.00426760
add esp, 8
cmp eax, 0x80
mov dword [esp + 0x48], eax
jae 0x41cbb7
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x20]
mov byte [ecx + edx], al
mov eax, 1
jmp 0x41cbcb
mov ecx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x24]
add ecx, eax
push ecx
call fcn.0041fff0
add esp, 8
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0x50]
and eax, 0xff
add ebx, eax
mov eax, dword [esp + 0x24]
add eax, 0x28
mov dword [esp + 0x60], ebx
cmp eax, ecx
mov dword [esp + 0x24], eax
jbe 0x41cb8c
mov eax, dword [esp + 0x4c]
cmp eax, ecx
mov dword [esp + 0x24], eax
ja 0x41cc36
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x68]
sub ecx, eax
add eax, edx
push ecx
push eax
call fcn.00426870
mov edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
add edi, eax
mov eax, dword [esp + 0x34]
add eax, 0x28
add esp, 0x10
cmp eax, ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x24], eax
jbe 0x41cbf9
mov eax, dword [esp + 0x38]
mov word [esi + 0x1c], 0x410
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], 0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x41cc5b
mov dword [esi + 0x10], eax
mov word [esi + 0x1c], 0x4410
mov byte [esi + 0x1f], 1
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, ecx
mov dword [esp + 0x28], eax
je 0x41cc8d
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.00425180
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x41cc95
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x14], ecx
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0x10]
test eax, eax
mov dword [esp + 0x24], esi
jne 0x41cd71
mov eax, dword [ebx + 0x90]
test eax, eax
jle 0x41ccd6
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x41d04a
push esi
call fcn.0040a490
mov dword [esp + 0x2c], eax
add eax, 0x19
push eax
push ebx
call fcn.004090b0
add esp, 0xc
mov dword [esp + 0x2c], eax
test eax, eax
je case.0x41b1b5.17
lea edx, [eax + 0x18]
mov dword [eax], edx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
lea ecx, [eax + 1]
mov edi, dword [edx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0x1c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x41cd35
mov byte [eax + 0x1c], 0
mov byte [eax + 0x1e8], 1
jmp 0x41cd3b
inc dword [eax + 0x1e0]
mov edx, dword [esp + 0x2c]
mov ecx, dword [eax + 0x1dc]
mov dword [edx + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [eax + 0x1f0]
mov dword [eax + 0x1dc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0x1f4]
mov eax, dword [esp + 0x2c]
mov dword [eax + 0xc], edx
jmp case.0x41b1b5.17
mov dword [esp + 0x38], 0
mov ebx, dword [ebx + 0x1dc]
test ebx, ebx
mov dword [esp + 0x30], ebx
je 0x41cdbd
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx]
push ecx
push edx
call fcn.0040a4b0
add esp, 8
test eax, eax
je 0x41cdb5
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
inc ecx
mov dword [esp + 0x38], ecx
mov ebx, dword [eax + 0x10]
test ebx, ebx
mov dword [esp + 0x30], ebx
jne 0x41cd87
jmp 0x41cdbd
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x41cdec
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x1c]
push ecx
push str.no_such_savepoint:__s
add eax, 0x38
push edx
push eax
call fcn.004185f0
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.0x41b1b5.17
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x90]
test eax, eax
mov eax, dword [esp + 0x20]
jg 0x41cfae
cmp eax, 2
jne 0x41ce14
cmp dword [edx + 0x8c], 1
jg 0x41cfb3
mov ecx, dword [edi + 0x10]
test ecx, ecx
jne 0x41ce81
mov cl, byte [edx + 0x1e8]
test cl, cl
je 0x41ce81
mov ebp, 1
cmp eax, ebp
jne 0x41ce83
mov ecx, dword [esp + 0x120]
push ebp
push ecx
call fcn.00418590
mov esi, eax
add esp, 8
test esi, esi
jne 0x41fd52
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x120]
push edi
mov byte [esi + 0x1c], 1
call fcn.00416ae0
add esp, 4
cmp eax, 5
je 0x41fba3
mov byte [esi + 0x1e8], 0
mov edx, dword [edi + 0x5c]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x41cf1c
xor ebp, ebp
mov ecx, dword [edx + 0x1e0]
mov eax, dword [esp + 0x38]
sub ecx, eax
xor eax, eax
dec ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], ecx
mov esi, dword [edx + 4]
test esi, esi
jle 0x41cee8
mov edx, dword [esp + 0x1c]
jmp 0x41ceab
mov ecx, dword [esp + 0x38]
mov edx, dword [edx + 8]
push ecx
mov ecx, dword [esp + 0x24]
shl eax, 4
push ecx
mov eax, dword [eax + edx + 4]
push eax
call fcn.00418510
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x3c], eax
mov ecx, dword [edx + 4]
cmp eax, ecx
jl 0x41cea7
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x20], 2
jne 0x41cf1c
mov esi, dword [esp + 0x1c]
mov ebx, 0x200
test dword [esi + 0xc], ebx
je 0x41cf20
push esi
call fcn.00427150
push 0xffffffffffffffff
push esi
call fcn.004296f0
mov eax, dword [esi + 0xc]
add esp, 0xc
or eax, ebx
mov dword [esi + 0xc], eax
mov edi, dword [esp + 0x30]
jmp 0x41cf20
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x1dc]
cmp eax, edi
je 0x41cf60
mov dword [esp + 0x34], eax
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x1dc], ecx
mov edx, dword [esp + 0x34]
push edx
push esi
call fcn.00408e50
mov edx, dword [esi + 0x1e0]
mov eax, dword [esi + 0x1dc]
add esp, 8
dec edx
mov dword [esi + 0x1e0], edx
mov edi, dword [esp + 0x30]
cmp eax, edi
jne 0x41cf2a
cmp dword [esp + 0x20], 1
jne 0x41cf95
mov eax, dword [edi + 0x10]
mov dword [esi + 0x1dc], eax
mov ecx, dword [esp + 0x30]
push ecx
push esi
call fcn.00408e50
add esp, 8
test ebp, ebp
jne case.0x41b1b5.17
mov eax, dword [esp + 0x1c]
dec dword [eax + 0x1e0]
jmp case.0x41b1b5.17
add edi, 8
mov edx, dword [edi]
mov dword [esi + 0x1f0], edx
mov eax, dword [edi + 4]
mov dword [esi + 0x1f4], eax
jmp case.0x41b1b5.17
cmp eax, 2
jne 0x41cfba
mov eax, str.rollback
jmp 0x41cfbf
mov eax, str.release
mov ecx, dword [esp + 0x120]
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
add ecx, 0x38
push edx
push ecx
call fcn.004185f0
add esp, 0x10
mov dword [esp + 0x10], 5
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 8]
test eax, eax
mov dword [esp + 0x24], esi
je 0x41d01b
mov cl, byte [ebx + 0x1c]
test cl, cl
jne 0x41d01b
mov ecx, 1
test esi, esi
mov dword [esp + 0x28], ecx
je 0x41d03b
cmp dword [ebx + 0x8c], ecx
jle 0x41d023
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x41d04a
mov dword [esp + 0x28], 0
xor edx, edx
mov dl, byte [ebx + 0x1c]
cmp eax, edx
jne 0x41fbbb
test eax, eax
jne 0x41d064
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x41d072
mov ecx, dword [ebx + 0x90]
test ecx, ecx
jle 0x41d023
push str.cannot_commit_transaction___SQL_statements_in_progress
add ebp, 0x38
push ebx
push ebp
call fcn.004185f0
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.0x41b1b5.17
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x41d072
mov eax, str.cannot_commit___no_transaction_is_active
push eax
add ebp, 0x38
push ebx
push ebp
call fcn.004185f0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, dword [ebx + 8]
shl eax, 4
mov eax, dword [eax + ecx + 4]
test eax, eax
mov dword [esp + 0x20], eax
je case.0x41b1b5.17
mov edx, dword [esi + 8]
push edx
push eax
call fcn.00412540
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x41fc2f
test eax, eax
jne 0x41fc5e
mov eax, dword [esi + 8]
test eax, eax
je case.0x41b1b5.17
mov al, byte [ebp + 0x68]
test al, al
je case.0x41b1b5.17
mov al, byte [ebx + 0x1c]
test al, al
je 0x41d0f2
cmp dword [ebx + 0x8c], 1
jle case.0x41b1b5.17
mov eax, dword [ebp + 0x78]
test eax, eax
jne 0x41d113
mov esi, dword [ebx + 0x1e4]
mov ecx, dword [ebx + 0x1e0]
inc esi
mov eax, esi
mov dword [ebx + 0x1e4], esi
add ecx, eax
mov dword [ebp + 0x78], ecx
mov edx, dword [ebp + 0x78]
mov eax, dword [esp + 0x20]
push edx
push eax
call fcn.004215a0
mov ecx, dword [ebx + 0x1f0]
add esp, 8
mov dword [ebp + 0x98], ecx
mov edx, dword [ebx + 0x1f4]
mov dword [esp + 0x10], eax
mov dword [ebp + 0x9c], edx
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], eax
mov esi, dword [esi + 0xc]
mov dword [esp + 0x28], esi
mov edx, dword [ebx + 8]
shl eax, 4
push ecx
push esi
mov eax, dword [eax + edx + 4]
push eax
call fcn.004152d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
cdq
mov dword [ecx + 0x10], eax
add esp, 0xc
mov dword [ecx + 0x14], edx
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 8]
shl ecx, 4
add ecx, edx
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
push edi
call fcn.00426170
mov eax, dword [edi + 0x10]
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 8]
push eax
mov eax, dword [edx + 4]
push ecx
push eax
call fcn.00415310
mov dword [esp + 0x20], eax
mov eax, dword [esi + 8]
add esp, 0x10
cmp eax, 1
jne 0x41d1d9
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
mov edx, dword [ecx + 0xc]
mov dword [edx], eax
mov eax, dword [ebx + 0xc]
or ah, 2
mov dword [ebx + 0xc], eax
jmp 0x41d1eb
cmp eax, 2
jne 0x41d1eb
mov ecx, dword [esp + 0x20]
mov al, byte [edi + 0x10]
mov edx, dword [ecx + 0xc]
mov byte [edx + 0x4c], al
cmp dword [esi + 4], 1
jne case.0x41b1b5.17
push ebx
call fcn.00427150
add esp, 4
mov byte [ebp + 0x64], 0
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 8]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
test eax, eax
mov dword [esp + 0x28], eax
je 0x41d23e
lea ecx, [esp + 0x20]
push ecx
push 1
push eax
call fcn.004152d0
mov edx, dword [esi + 4]
mov eax, dword [ebx + 8]
add esp, 0xc
shl edx, 4
mov ecx, dword [edx + eax + 0xc]
mov eax, dword [ecx + 4]
jmp 0x41d248
mov dword [esp + 0x20], 0
xor eax, eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
cmp edx, dword [esi + 8]
jne 0x41d25e
cmp eax, dword [esi + 0xc]
je case.0x41b1b5.17
mov eax, dword [ebp + 0x38]
push eax
push ebx
call fcn.00408e50
push str.database_schema_has_changed
push ebx
call fcn.004199d0
mov dword [ebp + 0x38], eax
mov esi, dword [esi + 4]
mov edx, dword [ebx + 8]
mov ecx, esi
shl ecx, 4
add esp, 0x10
mov eax, dword [ecx + edx + 0xc]
mov ecx, dword [eax]
mov eax, dword [esp + 0x20]
cmp ecx, eax
je 0x41d29c
push esi
push ebx
call fcn.004296f0
add esp, 8
mov byte [ebp + 0x64], 1
mov dword [esp + 0x10], 0x11
jmp case.0x41b1b5.17
mov al, byte [ebp + 0x64]
test al, al
je 0x41d2c1
mov dword [esp + 0x10], 4
jmp case.0x41b1b5.17
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 8]
mov dword [esp + 0x28], edx
mov eax, dword [esi + 0xc]
mov dword [esp + 0x2c], eax
shl eax, 4
add eax, dword [ebx + 8]
mov dword [esp + 0x3c], eax
mov ebx, dword [eax + 4]
mov dword [esp + 0x34], ebx
mov bl, byte [esi]
cmp bl, 0x27
jne 0x41d30b
mov bl, byte [ebp + 0x66]
mov dword [esp + 0x30], 1
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
cmp al, bl
jae 0x41d313
mov byte [ebp + 0x66], al
jmp 0x41d313
mov dword [esp + 0x30], 0
mov al, byte [esi + 3]
test al, al
je 0x41d33d
lea ecx, [edx + edx*4]
lea edi, [edi + ecx*8]
push edi
call fcn.00426170
mov edi, dword [edi + 0x10]
add esp, 4
cmp edi, 2
mov dword [esp + 0x28], edi
jl 0x41fc43
mov ecx, dword [esp + 0x20]
mov al, byte [esi + 1]
cmp al, 0xfa
jne 0x41d367
mov eax, dword [esi + 0x10]
mov edx, dword [ebp]
mov dword [esp + 0x24], eax
mov ecx, dword [edx + 8]
mov edx, dword [ecx + 0xc]
mov cl, byte [edx + 0x4d]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov cx, word [edx + 6]
inc ecx
jmp 0x41d36e
cmp al, 0xf2
jne 0x41d372
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [esp + 0x2c]
push 1
push eax
push ecx
mov ecx, dword [esi + 4]
push ecx
push ebp
call fcn.00427550
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x41fb6b
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x38]
mov byte [edx + 0x20], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
call fcn.004215d0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x38]
add esp, 0x14
cmp eax, 0x10
mov dword [esp + 0x10], eax
mov dword [ecx + 8], edx
jne 0x41d3e8
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], 0
mov dword [eax], 0
mov dl, byte [esi + 1]
cmp dl, 0xfa
mov edx, dword [esp + 0x38]
setne cl
mov byte [edx + 0x1e], cl
mov eax, dword [esp + 0x38]
mov cl, byte [eax + 0x1e]
test cl, cl
sete cl
mov byte [eax + 0x1f], cl
jmp case.0x41b1b5.17
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push 1
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.00427550
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x41fb6b
xor edx, edx
mov byte [eax + 0x1c], 1
mov dl, byte [esi + 3]
mov ecx, dword [0x466be0]
mov eax, dword [esp + 0x20]
or edx, 9
push ecx
add eax, 4
push edx
push eax
push ebx
push 0
call fcn.004208d0
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41d51b
mov ecx, dword [esp + 0x20]
push 1
mov edx, dword [ecx + 4]
push edx
call fcn.00412540
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41d51b
mov eax, dword [esi + 0x10]
test eax, eax
je 0x41d4f6
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x100]
push 2
push eax
mov edx, dword [ecx + 4]
push edx
call fcn.00424ae0
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41d4ec
mov eax, dword [esp + 0x20]
mov edx, dword [esi + 0x10]
mov ecx, dword [eax]
push ecx
mov ecx, dword [esp + 0x104]
push edx
mov edx, dword [eax + 4]
push 1
push ecx
push edx
call fcn.004215d0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x10]
add esp, 0x14
mov dword [ecx + 8], eax
mov edx, dword [ebp]
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax + 0xc]
mov eax, dword [edx + 8]
mov cl, byte [ecx + 0x4d]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1e], 0
jmp 0x41d51b
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push ecx
push 0
push 1
push 1
push edx
call fcn.004215d0
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
add esp, 0x14
mov byte [eax + 0x1e], 1
mov dl, byte [esi + 3]
cmp dl, 0x10
mov edx, dword [esp + 0x20]
setne cl
mov byte [edx + 0x20], cl
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x1e]
test cl, cl
sete cl
mov byte [eax + 0x1f], cl
jmp case.0x41b1b5.17
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 4]
push 0
push 0xffffffffffffffff
push edx
push eax
push ebp
call fcn.00427550
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x41fb6b
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x20]
mov ecx, dword [esi + 8]
mov dword [edx + 0x10], ecx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1e], 1
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x1f], 0
jmp case.0x41b1b5.17
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax + edx*4]
push ecx
push ebp
call fcn.00416f80
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
add esp, 8
mov dword [eax + edx*4], 0
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x28], eax
cmp dword [eax], 0
je 0x41eef8
xor ecx, ecx
mov cl, byte [esi]
mov dword [esp + 0x24], ecx
mov byte [eax + 0x1c], 0
mov ecx, dword [esp + 0x28]
mov al, byte [ecx + 0x1e]
test al, al
je 0x41d79d
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
push edi
call fcn.0041afe0
push edi
call fcn.00419230
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x5c], edx
add esp, 8
mov byte [eax + 0x19], 0
mov ax, word [edi + 0x1c]
test al, 4
jne 0x41d745
test al, 8
jne 0x41d61e
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esp + 0x50]
xor ebx, ebx
cmp eax, ebx
jne 0x41d6eb
mov ecx, dword [esp + 0x54]
mov eax, 0x80000000
cmp ecx, eax
jne 0x41d6eb
mov dword [esp + 0x114], ebx
mov dword [esp + 0x118], eax
fild qword [esp + 0x114]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
je 0x41d66c
fld qword [edi + 8]
fcomp qword [0x4699c0]
fnstsw ax
test ah, 0x41
jne 0x41d6eb
mov dword [esp + 0x20], 1
fld qword [edi + 8]
fcomp qword [0x4699c0]
fnstsw ax
test ah, 1
mov eax, dword [esp + 0x24]
je 0x41d6af
cmp eax, 0x2e
jl 0x41d6de
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.004218f0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41fc5e
jmp 0x41d6d4
cmp eax, 0x2d
jg 0x41d6de
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.00421bc0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41fc5e
cmp dword [esp + 0x20], ebx
je case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esp + 0x24]
cmp eax, 0x2c
je 0x41d720
cmp eax, 0x2e
je 0x41d720
fild qword [esp + 0x50]
fcomp qword [edi + 8]
fnstsw ax
test ah, 0x41
jne 0x41d747
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
or eax, 0xffffffff
add edx, eax
adc ecx, eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
jmp 0x41d747
fild qword [esp + 0x50]
fcomp qword [edi + 8]
fnstsw ax
test ah, 1
je 0x41d747
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
add ecx, 1
adc eax, ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
jmp 0x41d747
xor ebx, ebx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
push edx
mov edx, dword [ecx]
push eax
push ebx
push edx
call fcn.00421c90
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41fc5e
cmp dword [esp + 0x20], ebx
jne 0x41d80f
mov eax, dword [esp + 0x28]
mov byte [eax + 0x19], 1
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x54]
mov dword [ecx + 0x44], eax
jmp 0x41d80f
mov edx, dword [esi + 0x10]
mov dword [esp + 0x48], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x30], eax
mov al, byte [esp + 0x24]
and eax, 1
mov word [esp + 0x34], dx
shl eax, 3
mov word [esp + 0x36], ax
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x40], edi
test byte [edi + 0x1d], 0x40
je 0x41d7df
push edi
call fcn.00416320
mov ecx, dword [esp + 0x2c]
add esp, 4
lea eax, [esp + 0x20]
lea edx, [esp + 0x30]
push eax
mov eax, dword [ecx]
push 0
push 0
push 0
push edx
push eax
call fcn.00421c90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
mov ecx, dword [esp + 0x28]
xor ebx, ebx
mov byte [ecx + 0x19], al
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x4c], ebx
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp ecx, 0x2e
jl 0x41d861
cmp eax, ebx
jl 0x41d83f
jne 0x41d836
cmp ecx, 0x2f
je 0x41d83f
mov dword [esp + 0x20], ebx
jmp case.0x41b1b5.17
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.00422050
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41fc5e
jmp 0x41d8a1
cmp eax, ebx
jg 0x41d881
jne 0x41d86c
cmp ecx, 0x2c
je 0x41d881
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
push eax
call fcn.00422040
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x41d8a9
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x20]
push ecx
mov eax, dword [edx]
push eax
call fcn.004221b0
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41fc5e
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x19], 0
cmp dword [esp + 0x20], ebx
je case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x20], eax
cmp dword [eax], 0
je case.0x41b1b5.17
mov byte [eax + 0x1c], 0
mov esi, dword [esi + 8]
lea ecx, [esi + esi*4]
lea eax, [edi + ecx*8]
push eax
call fcn.00419230
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 0x3c], edx
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 1
jmp case.0x41b1b5.17
mov ecx, dword [ebp + 0x44]
xor edx, edx
mov dword [esp + 0x20], edx
mov eax, dword [esi + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
lea edi, [edi + ecx*8]
mov ecx, dword [eax]
test ecx, ecx
je 0x41d9f2
mov ecx, dword [esi + 0x10]
test ecx, ecx
jle 0x41d961
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov cx, word [esi + 0x10]
lea edx, [esp + 0x30]
mov word [esp + 0x34], cx
mov dword [esp + 0x40], edi
mov word [esp + 0x36], 0x10
mov dword [esp + 0x2c], edx
jmp 0x41d993
mov edx, dword [edi + 4]
lea ecx, [esp + 0x48]
push 0x97
push ecx
mov ecx, dword [edi + 0x18]
push edx
mov edx, dword [eax + 8]
push ecx
push edx
call fcn.00426b90
add esp, 0x14
mov dword [esp + 0x2c], eax
test eax, eax
je 0x41fb6b
or byte [eax + 6], 0x10
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax]
lea ecx, [esp + 0x28]
push ecx
push 0
push 0
push 0
push edx
push eax
call fcn.00421c90
mov edi, eax
mov eax, dword [esi + 0x10]
add esp, 0x18
mov dword [esp + 0x10], edi
test eax, eax
jne 0x41d9c8
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00426d00
add esp, 4
test edi, edi
jne case.0x41b1b5.17
mov eax, dword [esp + 0x28]
xor edx, edx
test eax, eax
mov eax, dword [esp + 0x24]
sete dl
mov dword [esp + 0x20], edx
mov byte [eax + 0x1d], 0
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x4c], edi
mov edx, dword [esp + 0x20]
cmp byte [esi], 0x32
jne 0x41da0c
test edx, edx
je case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
test edx, edx
jne case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x10]
lea eax, [eax + eax*4]
lea ebx, [edi + edx*8]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x30], ecx
mov edx, dword [esi + 4]
xor edi, edi
mov eax, dword [eax + edx*4]
mov dword [esp + 0x24], eax
mov dword [eax + 0x48], edi
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x4c], edi
mov ecx, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov edx, dword [ecx]
mov dword [esp + 0x28], edx
mov eax, dword [ecx + 8]
mov dx, word [eax + 6]
mov word [esp + 0x20], di
cmp dx, di
mov word [esp + 0x2c], dx
jbe 0x41da97
mov eax, dword [esp + 0x20]
and eax, 0xffff
lea eax, [eax + eax*4]
test byte [ebp + eax*8 + 0x1c], 1
jne 0x41db2e
inc di
cmp di, dx
mov word [esp + 0x20], di
jb 0x41da74
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x41b1b5.17
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 8]
inc edx
push ebx
mov dword [esp + 0x3c], ecx
mov word [esp + 0x40], dx
mov word [esp + 0x42], 0x20
mov dword [esp + 0x4c], ebp
call fcn.00426170
mov edx, dword [esp + 0x28]
mov eax, dword [ebx + 0x10]
add edx, 0x48
mov dword [esp + 0x54], eax
mov ecx, dword [ebx + 0x14]
push edx
push 0
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x34]
push 0
lea eax, [esp + 0x48]
push 0
push eax
push ecx
call fcn.00421c90
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x5a]
add esp, 0x1c
test al, 0x20
jne 0x41eef8
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jne 0x41db1f
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
cmp edx, ecx
je 0x41eef8
mov dword [ebx + 0x10], eax
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x14], eax
jmp case.0x41b1b5.17
mov esi, dword [esi + 8]
mov dword [esp + 0x28], 0
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 0x44]
lea edi, [edi + ecx*8]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x24], eax
je 0x41dbe2
xor ebx, ebx
lea ebp, [esp + 0x28]
mov dword [esp + 0x28], ebx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x30], ecx
mov edx, dword [edi + 0x14]
push ebp
push ebx
push edx
push ecx
push ebx
push eax
mov dword [esp + 0x4c], edx
call fcn.00421c90
mov edx, dword [esp + 0x38]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x28], eax
add esp, 0x18
mov dword [edx + 0x40], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x14]
mov dword [ecx + 0x44], eax
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp edx, ebx
sete dl
mov byte [eax + 0x19], dl
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x1c], bl
mov edx, dword [esp + 0x20]
mov dword [edx + 0x4c], ebx
mov eax, dword [esp + 0x20]
mov byte [eax + 0x1d], bl
mov eax, dword [esp + 0x28]
cmp eax, ebx
je 0x41dbd6
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x48], eax
jmp case.0x41b1b5.17
mov esi, dword [esi + 8]
mov dword [ecx + 0x48], 0
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x18]
mov edx, dword [ecx + 0x30]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 0x34]
mov dword [eax + 0x14], ecx
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x30]
add edx, 1
mov dword [eax + 0x30], edx
mov ecx, dword [eax + 0x34]
adc ecx, 0
mov dword [eax + 0x34], ecx
jmp case.0x41b1b5.17
mov eax, dword [ebp + 0x44]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [esi + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x28], edx
mov eax, dword [edx]
cmp eax, ecx
je 0x41ded5
mov cl, byte [edx + 0x1b]
test cl, cl
jne 0x41dddb
push eax
call fcn.004216e0
mov ecx, eax
add esp, 4
or ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
jne 0x41dcfc
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x2c]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00421bc0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x41dcaf
mov eax, 1
xor edx, edx
mov dword [esp + 0x20], eax
jmp 0x41dcf8
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x20]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00415950
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add esp, 8
cmp eax, 0xffffffff
jne 0x41dcee
cmp edx, 0x7fffffff
jne 0x41dcee
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1b], 1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x41dcfc
add eax, 1
mov dword [esp + 0x20], eax
adc edx, 0
mov dword [esp + 0x24], edx
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x41ddab
mov ebp, dword [ebp + 0xa8]
test ebp, ebp
je 0x41dd39
mov ecx, ebp
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x41dd2b
mov ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x41dd1e
mov esi, dword [esi + 0xc]
mov ecx, dword [ecx + 0x10]
lea eax, [esi + esi*4]
lea edi, [ecx + eax*8]
jmp 0x41dd3f
lea edx, [ecx + ecx*4]
lea edi, [edi + edx*8]
push edi
mov dword [esp + 0x38], edi
call fcn.00426170
mov eax, dword [esp + 0x38]
add esp, 4
mov ecx, dword [eax + 0x14]
lea edx, [eax + 0x10]
mov eax, dword [eax + 0x10]
cmp eax, 0xffffffff
jne 0x41dd6a
cmp ecx, 0x7fffffff
je 0x41fc56
mov esi, dword [esp + 0x28]
cmp byte [esi + 0x1b], 0
jne 0x41fc56
mov esi, dword [esp + 0x24]
add eax, 1
adc ecx, 0
cmp esi, ecx
jg 0x41dd96
jl 0x41dd8e
cmp dword [esp + 0x20], eax
jae 0x41dd96
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
mov dword [edx], ecx
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
cmp edx, 0x7fffffff
jg 0x41ddc2
jl 0x41ddba
cmp eax, 0xffffffff
jae 0x41ddc2
add eax, 1
adc edx, 0
jmp 0x41ddc6
xor eax, eax
xor edx, edx
mov ecx, dword [esp + 0x28]
push edx
push eax
mov edx, dword [ecx]
push edx
call fcn.004216a0
mov edx, dword [esp + 0x34]
add esp, 0xc
mov al, byte [edx + 0x1b]
test al, al
je 0x41debe
mov ecx, dword [ebx + 0x34]
mov eax, dword [ebx + 0x30]
and ecx, 0x3fffffff
add eax, 1
lea esi, [esp + 0x2c]
mov dword [esp + 0x20], eax
adc ecx, 0
push esi
push 0
push ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], 0
push eax
mov eax, dword [edx]
push 0
push eax
call fcn.00421c90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41deba
mov esi, 5
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x41deaa
mov ecx, dword [esp + 0x30]
inc ecx
cmp ecx, 0x64
mov dword [esp + 0x30], ecx
jge 0x41deaa
lea ecx, [esp + 0x20]
push ecx
push 8
call fcn.0040a2d0
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, esi
mov eax, dword [esp + 0x20]
jge 0x41de6e
mov ecx, dword [esp + 0x24]
and eax, 0xffffff
and ecx, 0
jmp 0x41de78
mov ecx, dword [esp + 0x24]
and ecx, 0x3fffffff
add eax, 1
lea edx, [esp + 0x2c]
adc ecx, 0
push edx
push 0
push ecx
mov dword [esp + 0x2c], eax
push eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
push 0
mov ecx, dword [eax]
push ecx
call fcn.00421c90
add esp, 0x18
test eax, eax
je 0x41de2f
mov dword [esp + 0x10], eax
jmp 0x41deba
test eax, eax
mov dword [esp + 0x10], eax
jne 0x41deba
test edx, edx
je 0x41fc56
mov edx, dword [esp + 0x28]
mov byte [edx + 0x19], 0
mov edx, dword [esp + 0x28]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x28]
mov dword [eax + 0x4c], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x24]
mov dword [eax + 0x14], edx
jmp case.0x41b1b5.17
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 4]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x30], edx
mov al, byte [esi]
cmp al, 0x37
mov eax, dword [esi + 0xc]
jne 0x41df25
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [esp + 0x24], edi
mov eax, dword [edi + 0x10]
mov dword [esp + 0x28], eax
mov edx, dword [edi + 0x14]
jmp 0x41df2a
cdq
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dl, byte [esi + 3]
test dl, 1
je 0x41df39
inc dword [ebp + 0x6c]
test byte [esi + 3], 2
je 0x41df4d
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x34], eax
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
je 0x41df65
xor eax, eax
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x18], eax
mov ecx, dword [esp + 0x20]
jmp 0x41df67
xor eax, eax
test byte [esi + 3], 0x10
je 0x41df7a
mov edx, dword [esp + 0x30]
mov edx, dword [edx + 0x48]
mov dword [esp + 0x38], edx
jmp 0x41df7e
mov dword [esp + 0x38], eax
test byte [ecx + 0x1d], 0x40
je 0x41df87
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], eax
push 0
push 0
mov edx, dword [ecx]
push edx
call fcn.004216a0
mov eax, dword [esp + 0x44]
mov cl, byte [esi + 3]
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x30]
and ecx, 8
push ecx
push edx
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x50]
push eax
push ecx
push 0
mov eax, dword [edx]
push eax
call fcn.004222f0
mov ecx, dword [esp + 0x60]
add esp, 0x30
test eax, eax
mov byte [ecx + 0x19], 0
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov byte [edx + 0x1d], 0
mov ecx, dword [esp + 0x30]
mov dword [ecx + 0x4c], 0
jne case.0x41b1b5.17
mov eax, dword [ebx + 0xbc]
test eax, eax
je case.0x41b1b5.17
mov eax, dword [esi + 0x10]
test eax, eax
je case.0x41b1b5.17
mov edx, dword [esp + 0x30]
mov ecx, dword [ebx + 8]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x2c]
shl eax, 4
push edx
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + ecx]
push edx
mov dword [esp + 0x44], eax
mov edi, dword [esi + 0x10]
mov dword [esp + 0x48], edi
mov cl, byte [esi + 3]
and cl, 4
push edi
neg cl
sbb ecx, ecx
push eax
and ecx, 5
add ecx, 0x12
mov dword [esp + 0x54], ecx
mov eax, dword [ebx + 0xb8]
push ecx
push eax
call dword [ebx + 0xbc]
jmp 0x41f9f1
mov eax, dword [ebp + 0x44]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov edx, dword [esi + 4]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x28], eax
mov edx, dword [ebx + 0xbc]
cmp edx, ecx
je 0x41e095
cmp dword [esi + 0x10], ecx
je 0x41e095
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 0x44]
mov dword [esp + 0x24], edx
push eax
call fcn.00426670
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
push eax
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
call fcn.004216a0
mov edx, dword [esp + 0x34]
mov eax, dword [edx]
push eax
call fcn.00424880
mov ecx, dword [esp + 0x38]
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
mov dword [ecx + 0x4c], 0
jne 0x41e115
mov ecx, dword [ebx + 0xbc]
test ecx, ecx
je 0x41e115
mov eax, dword [esi + 0x10]
test eax, eax
je 0x41e115
mov edx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov eax, dword [ebx + 8]
shl edx, 4
mov edx, dword [edx + eax]
mov eax, dword [ebx + 0xb8]
push edx
push 9
push eax
call ecx
add esp, 0x18
test byte [esi + 8], 1
je case.0x41b1b5.17
inc dword [ebp + 0x6c]
jmp case.0x41b1b5.17
mov ecx, dword [ebp + 0x6c]
push ecx
push ebx
call fcn.00418670
add esp, 8
mov dword [ebp + 0x6c], 0
jmp case.0x41b1b5.17
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov edx, dword [ebp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
push eax
mov ecx, dword [eax]
mov dword [esp + 0x28], ecx
call fcn.00426670
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
mov edx, dword [esp + 0x20]
mov al, byte [edx + 0x1f]
test al, al
je 0x41e1b8
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x30]
push eax
push ecx
call fcn.00415950
mov eax, dword [ebx + 0x48]
mov ecx, dword [esp + 0x3c]
cdq
add esp, 8
cmp ecx, edx
mov ecx, dword [esp + 0x30]
jg 0x41fcc1
jl 0x41e1b0
cmp ecx, eax
ja 0x41fcc1
mov eax, ecx
mov dword [esp + 0x28], eax
jmp 0x41e1d9
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.004216f0
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx + 0x48]
add esp, 8
cmp eax, ecx
ja 0x41fcc1
mov esi, dword [esp + 0x18]
push 0
push eax
push esi
call fcn.004161a0
add esp, 0xc
test eax, eax
jne 0x41fb6b
mov dx, word [esi + 0x1c]
mov ecx, dword [esp + 0x28]
and edx, 0xbf10
mov dword [esi + 0x18], ecx
or edx, 0x10
mov word [esi + 0x1c], dx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov cl, byte [eax + 0x1f]
mov eax, dword [esp + 0x24]
test cl, cl
mov ecx, dword [esi + 4]
push ecx
push edx
push 0
push eax
je 0x41e239
call fcn.00415a10
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esi + 0x1f], 1
jmp case.0x41b1b5.17
call fcn.00421710
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [esi + 0x1f], 1
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
mov cl, byte [eax + 0x1c]
test cl, cl
je 0x41e271
mov eax, dword [esp + 0x18]
mov word [eax + 0x1c], 1
jmp case.0x41b1b5.17
mov cl, byte [eax + 0x1d]
test cl, cl
je 0x41e288
mov ecx, dword [eax + 0x38]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 0x3c]
mov dword [esp + 0x2c], edx
jmp 0x41e2ff
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x41e2bb
mov ecx, dword [ecx]
lea edx, [esp + 0x28]
mov dword [esp + 0x30], ecx
push edx
mov ecx, dword [ecx]
mov dword [esp + 0x38], ecx
mov eax, dword [eax + 0x24]
push eax
call dword [ecx + 0x30]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x18], eax
push ecx
push ebp
call fcn.004276b0
add esp, 0x10
jmp 0x41e2ff
push eax
call fcn.00426670
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x19]
test cl, cl
je 0x41e2eb
mov edx, dword [eax + 0x40]
mov dword [esp + 0x28], edx
mov eax, dword [eax + 0x44]
mov dword [esp + 0x2c], eax
jmp 0x41e2ff
mov edx, dword [eax]
lea ecx, [esp + 0x28]
push ecx
push edx
call fcn.00415950
add esp, 8
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x14], edx
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
mov byte [eax + 0x1c], 1
mov edx, dword [esp + 0x20]
mov byte [edx + 0x19], 0
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test eax, eax
je case.0x41b1b5.17
push eax
call fcn.00415930
add esp, 4
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x24], ecx
jne 0x41e36c
mov dword [esp + 0x28], 1
jmp 0x41e382
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.00421bc0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add esp, 8
mov cl, byte [esp + 0x28]
mov byte [eax + 0x1c], cl
mov edx, dword [esp + 0x20]
mov byte [edx + 0x1d], 0
mov eax, dword [esp + 0x20]
mov byte [eax + 0x19], 0
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x4c], 0
mov esi, dword [esi + 8]
test esi, esi
jle case.0x41b1b5.17
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x41b1b5.17
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
inc dword [ebp + 0x80]
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax + edx*4]
mov dword [esp + 0x28], 1
mov dword [esp + 0x20], ecx
mov eax, dword [ecx]
test eax, eax
mov dword [esp + 0x24], eax
je 0x41e42b
lea ecx, [esp + 0x28]
push ecx
push eax
call fcn.004218f0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
add esp, 8
test eax, eax
mov eax, dword [esp + 0x20]
sete dl
mov byte [eax + 0x1a], dl
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x1d], 0
mov edx, dword [esp + 0x20]
mov dword [edx + 0x4c], 0
mov eax, dword [esp + 0x20]
mov byte [eax + 0x19], 0
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x28]
mov byte [ecx + 0x1c], dl
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x41fc9e
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov eax, dword [ecx + eax*4]
test eax, eax
mov dword [esp + 0x20], eax
je case.0x41b1b5.17
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x24], ecx
jne 0x41e481
mov byte [eax + 0x1c], 1
jmp case.0x41b1b5.17
mov dword [esp + 0x28], 1
mov al, byte [esi]
cmp al, 0x43
jne 0x41e49c
lea edx, [esp + 0x28]
push edx
push ecx
call fcn.00422050
jmp 0x41e4a7
lea eax, [esp + 0x28]
push eax
push ecx
call fcn.004221b0
mov ecx, dword [esp + 0x28]
mov dl, byte [esp + 0x30]
mov dword [esp + 0x18], eax
add esp, 8
mov byte [ecx + 0x1c], dl
mov eax, dword [esp + 0x20]
mov dword [eax + 0x4c], 0
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x41e4e7
mov eax, dword [esi + 8]
dec eax
mov dword [esp + 0x14], eax
mov al, byte [esi + 3]
test al, al
je 0x41e4e7
and eax, 0xff
lea ebp, [ebp + eax*4 + 0x78]
inc dword [ebp]
mov ecx, dword [esp + 0x20]
mov byte [ecx + 0x19], 0
jmp case.0x41b1b5.17
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x20], edx
mov eax, dword [esi + 8]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
mov ecx, dword [edx]
test ecx, ecx
mov dword [esp + 0x24], ecx
je case.0x41b1b5.17
test byte [edi + 0x1d], 0x40
je 0x41e53b
push edi
call fcn.00416320
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x41b1b5.17
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 0x18]
mov dword [esp + 0x28], eax
mov edi, dword [edi + 4]
mov dword [esp + 0x2c], edi
mov bl, byte [esi + 3]
test bl, 0x10
je 0x41e556
mov edx, dword [edx + 0x48]
jmp 0x41e558
xor edx, edx
push edx
mov edx, dword [esi + 0xc]
push edx
push 0
cdq
push 0
push 0x477c28
push edx
push eax
push edi
push ecx
call fcn.004222f0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x44]
add esp, 0x24
mov dword [eax + 0x4c], 0
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 0x44]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0x24], ecx
je case.0x41b1b5.17
mov eax, dword [eax + 8]
xor ebx, ebx
mov dword [esp + 0x30], eax
mov dx, word [esi + 0xc]
mov word [esp + 0x34], dx
mov word [esp + 0x36], bx
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea edx, [edi + eax*8]
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x44], edx
push ebx
push ebx
lea edx, [esp + 0x3c]
push ebx
push edx
push ecx
call fcn.00421c90
add esp, 0x18
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x41e5fb
cmp dword [esp + 0x28], ebx
jne 0x41e5fb
mov eax, dword [esp + 0x24]
push eax
call fcn.00424880
add esp, 4
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x20]
mov dword [ecx + 0x4c], ebx
jmp case.0x41b1b5.17
mov edx, dword [esi + 4]
mov eax, dword [ebp + 0x44]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov word [edx + 0x1c], 1
mov eax, dword [esp + 0x20]
test eax, eax
je case.0x41b1b5.17
mov eax, dword [esp + 0x24]
push eax
call fcn.00426670
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
mov ecx, dword [esp + 0x24]
mov al, byte [ecx + 0x1c]
test al, al
jne case.0x41b1b5.17
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x28]
push edx
push eax
push ebx
call fcn.00426f50
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41fc5e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x10], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x14], edx
mov word [eax + 0x1c], 4
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x20], ecx
cmp dword [ecx], 0
je case.0x41b1b5.17
mov edx, dword [ecx + 8]
mov dword [esp + 0x28], edx
mov ax, word [esi + 0x10]
mov word [esp + 0x2c], ax
mov dl, byte [esi + 3]
neg dl
sbb edx, edx
and edx, 8
add edx, 4
mov word [esp + 0x2e], dx
mov eax, dword [esi + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
lea eax, [esp + 0x24]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.00427090
mov dword [esp + 0x1c], eax
mov al, byte [esi]
add esp, 0xc
cmp al, 0x51
mov eax, dword [esp + 0x24]
jne 0x41e6fe
neg eax
jmp 0x41e6ff
inc eax
test eax, eax
mov dword [esp + 0x24], eax
jle case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov dword [esp + 0x24], 0
mov eax, dword [ebx + 0x88]
test eax, eax
mov dword [esp + 0x28], eax
je 0x41e754
mov ecx, 0xbdf20da3
cmp dword [eax + 0x34], ecx
jne 0x41e749
cmp byte [eax + 0x67], 2
jae 0x41e749
mov edx, dword [eax + 0x58]
test edx, edx
jl 0x41e749
inc dword [esp + 0x24]
mov eax, dword [eax + 0x40]
test eax, eax
mov dword [esp + 0x28], eax
jne 0x41e733
mov ecx, dword [esp + 0x18]
mov eax, 1
mov word [ecx + 0x1c], ax
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jle 0x41e77a
mov dword [esp + 0x10], 6
mov byte [ebp + 0x60], 2
jmp case.0x41b1b5.17
mov eax, dword [esi + 0xc]
lea edx, [esp + 0x20]
mov dword [esp + 0x2c], eax
mov ecx, dword [esi + 4]
push edx
mov edx, dword [ebx + 8]
shl eax, 4
push ecx
mov eax, dword [eax + edx + 4]
push eax
call fcn.00424f40
mov ecx, dword [esp + 0x24]
mov edi, eax
add esp, 0xc
mov dword [esp + 0x10], edi
mov word [ecx + 0x1c], 4
mov eax, dword [esp + 0x20]
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
test edi, edi
jne case.0x41b1b5.17
mov eax, dword [esp + 0x20]
test eax, eax
je case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x2c]
push ecx
push eax
push edx
push ebx
call fcn.00429b60
mov al, byte [esp + 0x3c]
add esp, 0x10
inc al
mov byte [esp + 0xf4], al
jmp case.0x41b1b5.17
mov dword [esp + 0x20], 0
mov eax, dword [esi + 0xc]
neg eax
mov edx, dword [esi + 4]
lea ecx, [esp + 0x20]
sbb eax, eax
and eax, ecx
mov ecx, dword [ebx + 8]
push eax
mov eax, dword [esi + 8]
shl eax, 4
push edx
mov edx, dword [eax + ecx + 4]
push edx
call fcn.00424d70
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
add esp, 0xc
test eax, eax
je case.0x41b1b5.17
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 0x6c]
add edx, eax
mov dword [ebp + 0x6c], edx
mov esi, dword [esi + 0xc]
test esi, esi
jle case.0x41b1b5.17
lea ecx, [esi + esi*4]
mov esi, dword [edi + ecx*8 + 0x10]
cdq
lea ecx, [edi + ecx*8 + 0x10]
add esi, eax
mov dword [ecx], esi
mov eax, dword [ecx + 4]
adc eax, edx
mov dword [ecx + 4], eax
jmp case.0x41b1b5.17
mov dword [esp + 0x20], 0
mov eax, dword [esi + 4]
mov edi, dword [ebx + 8]
xor ecx, ecx
shl eax, 4
add eax, edi
mov dword [esp + 0x28], eax
mov dl, byte [esi]
cmp dl, 0x62
lea edx, [esp + 0x20]
setne cl
inc ecx
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 4]
push ecx
push edx
push eax
call fcn.00424ae0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x2c]
add esp, 0xc
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, str.sqlite_temp_master
cmp eax, 1
mov dword [esp + 0x20], eax
je 0x41e8ca
mov ecx, str.sqlite_master
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], ebx
mov edx, dword [esi + 4]
add ebp, 0x38
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ebp
mov edx, dword [esi + 0x10]
push edx
push ecx
mov ecx, dword [ebx + 8]
shl eax, 4
mov edx, dword [eax + ecx]
push edx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.00418300
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
je 0x41fb6b
lea eax, [esp + 0x2c]
mov byte [ebx + 0x7c], 1
mov ecx, dword [esp + 0x28]
push 0
push eax
push fcn.0042c190
push ecx
push ebx
mov dword [esp + 0x4c], 0
call fcn.0042baf0
mov esi, eax
add esp, 0x14
test esi, esi
mov dword [esp + 0x10], esi
jne 0x41e941
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x28]
push edx
push ebx
call fcn.00408e50
add esp, 8
cmp esi, 7
mov byte [ebx + 0x7c], 0
je 0x41fb6b
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
push eax
push ebx
call fcn.004289a0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x41b1b5.17
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
push ecx
push edx
push ebx
call fcn.00429ab0
add esp, 0xc
jmp case.0x41b1b5.17
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
push eax
push ecx
push ebx
call fcn.00429330
add esp, 0xc
jmp case.0x41b1b5.17
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
push edx
push eax
push ebx
call fcn.0042d7f0
add esp, 0xc
jmp case.0x41b1b5.17
mov eax, dword [esi + 8]
mov dword [esp + 0x20], eax
lea ecx, [eax*4 + 4]
push ecx
push ebx
call fcn.004090b0
add esp, 8
mov dword [esp + 0x24], eax
test eax, eax
je 0x41fb6b
mov ecx, dword [esi + 0xc]
lea edx, [ecx + ecx*4]
lea ecx, [edi + edx*8]
mov dword [esp + 0x34], ecx
mov ecx, dword [esi + 4]
lea edx, [ecx + ecx*4]
xor ecx, ecx
mov dword [esp + 0x28], ecx
lea edi, [edi + edx*8]
mov edx, dword [esp + 0x20]
test edx, edx
jle 0x41ea30
lea eax, [ecx + ecx*4]
lea ecx, [edi + eax*8]
push ecx
call fcn.00419230
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add esp, 4
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
inc ecx
cmp ecx, eax
mov dword [esp + 0x28], ecx
jl 0x41ea01
mov eax, dword [esp + 0x24]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x2c]
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x24]
push ecx
xor ecx, ecx
mov cl, byte [esi + 3]
push edx
mov edx, dword [ebx + 8]
push eax
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
call fcn.004252a0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], eax
push ecx
push ebx
call fcn.00408e50
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
push edi
mov ebx, dword [edx + 0x10]
lea ecx, [edx + 0x10]
cdq
sub ebx, eax
mov dword [ecx], ebx
mov esi, dword [ecx + 4]
sbb esi, edx
mov dword [ecx + 4], esi
call fcn.004164e0
mov eax, dword [esp + 0x4c]
add esp, 0x20
test eax, eax
je 0x41eabd
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41fb6b
push fcn.00408df0
push 1
push 0xffffffffffffffff
push eax
push edi
call fcn.00415f80
add esp, 0x14
mov eax, dword [esp + 0xe0]
and eax, 0xff
push eax
push edi
call fcn.00418c40
add esp, 8
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov esi, dword [esi + 8]
lea ecx, [eax + eax*4]
mov al, byte [edi + ecx*8 + 0x1c]
lea edx, [esi + esi*4]
lea ebx, [edi + ecx*8]
test al, 0x20
lea esi, [edi + edx*8]
jne 0x41eb06
push ebx
call fcn.00426240
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 0x20
je 0x41fb6b
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
mov edx, dword [ebx + 0x10]
push eax
push ecx
push edx
call fcn.00420320
add esp, 0xc
jmp case.0x41b1b5.17
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x41fc9e
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov al, byte [edi + eax*8 + 0x1c]
test al, 0x20
je 0x41eb74
mov edx, dword [ebx + 0x10]
lea ecx, [esp + 0x20]
push ecx
push edx
call fcn.004203b0
add esp, 8
test eax, eax
je 0x41eb74
mov esi, dword [esi + 0xc]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push eax
lea edx, [esi + esi*4]
push ecx
lea eax, [edi + edx*8]
push eax
call fcn.00419670
add esp, 0xc
jmp case.0x41b1b5.17
push ebx
call fcn.004164e0
mov esi, dword [esi + 8]
add esp, 4
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x10]
lea ebx, [edi + ecx*8]
mov dword [esp + 0x20], eax
lea edi, [edi + edx*8]
test byte [ebx + 0x1c], 0x20
jne 0x41ebc1
push ebx
call fcn.00426240
mov al, byte [ebx + 0x1c]
add esp, 4
test al, 0x20
je 0x41fb6b
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41ec07
jl 0x41ebcc
and eax, 0xf
jmp 0x41ebd1
mov eax, 0xff
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
push ecx
push edx
push eax
mov eax, dword [ebx + 0x10]
push eax
call fcn.004205c0
add esp, 0x10
mov dword [esp + 0x24], eax
test eax, eax
je 0x41ebfb
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esp + 0x20]
test eax, eax
jl case.0x41b1b5.17
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
mov eax, dword [ebx + 0x10]
push ecx
push edx
push eax
call fcn.00420320
add esp, 0xc
jmp case.0x41b1b5.17
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x38], ecx
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x28], edi
mov al, byte [esi + 3]
test al, al
je 0x41ec6a
mov eax, dword [ebp + 0xa8]
mov edx, dword [ecx + 0x10]
test eax, eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], eax
je 0x41ec6a
cmp dword [eax + 0x20], edx
je 0x41ec62
mov eax, dword [eax + 0x3c]
test eax, eax
mov dword [esp + 0x34], eax
jne 0x41ec50
jmp 0x41ec6a
test eax, eax
jne case.0x41b1b5.17
mov eax, dword [ebp + 0xb0]
mov edx, dword [ebx + 0x70]
cmp eax, edx
jl 0x41ec96
push str.too_many_levels_of_trigger_recursion
add ebp, 0x38
push ebx
push ebp
mov dword [esp + 0x1c], 1
call fcn.004185f0
add esp, 0xc
jmp case.0x41b1b5.17
test byte [edi + 0x1c], 0x40
jne 0x41edb3
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
add eax, edx
mov dword [esp + 0x20], eax
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea ecx, [eax + edx*2]
lea eax, [ecx*4 + 0x40]
push eax
push ebx
mov dword [esp + 0x2c], eax
call fcn.0040d420
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x41fb6b
mov edx, dword [esp + 0x28]
push edx
call fcn.00416390
mov eax, dword [esp + 0x2c]
add esp, 4
mov word [eax + 0x1c], pe_nt_image_headers32
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x10], ecx
mov eax, dword [esp + 0x34]
mov dword [eax], ebp
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x24], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov ecx, dword [eax + 0xc]
mov dword [edx + 0x28], ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 8]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0x18]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0x44]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x34]
mov dx, word [ebp + 0x32]
mov word [eax + 0x1c], dx
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 4]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp + 0x1c]
mov dword [ecx + 0xc], eax
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x20], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 0x24]
lea edx, [eax + eax*4]
lea eax, [ecx + 0x40]
mov dword [esp + 0x2c], eax
lea edx, [ecx + edx*8 + 0x40]
cmp eax, edx
mov dword [esp + 0x30], edx
je 0x41edba
mov ecx, 1
mov word [eax + 0x1c], cx
mov eax, dword [esp + 0x2c]
mov dword [eax], ebx
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
add eax, 0x28
cmp eax, edx
mov dword [esp + 0x2c], eax
jne 0x41ed90
mov ecx, dword [esp + 0x34]
jmp 0x41edba
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x34], ecx
mov esi, dword [ebp + 0xb0]
mov edx, dword [ebp + 0xa8]
inc esi
mov dword [esp + 0x14], 0xffffffff
mov dword [ebp + 0xb0], esi
mov dword [ecx + 0x3c], edx
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx + 0x30]
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0x34]
mov edx, dword [ebx + 0x34]
mov dword [eax + 0x34], edx
mov edx, dword [esp + 0x34]
mov ecx, dword [ebp + 0x6c]
mov dword [edx + 0x38], ecx
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x6c], 0
mov dword [ebp + 0xa8], eax
lea ecx, [eax + 0x18]
mov dword [ebp + 8], ecx
mov edx, dword [eax + 0x24]
mov dword [ebp + 0x18], edx
mov ax, word [eax + 0x28]
mov word [ebp + 0x32], ax
mov eax, edx
inc eax
mov dword [esp + 0xe4], ecx
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
mov dword [esp + 0xf0], ecx
mov dword [ebp + 4], ecx
mov ecx, dword [eax + 4]
mov dword [ebp + 0x1c], ecx
jmp case.0x41b1b5.17
mov ebp, dword [ebp + 0xa8]
push 0x1000
mov dword [esp + 0x24], ebp
mov edi, dword [esi + 4]
mov eax, dword [ebp + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + edx*4 + 4]
mov edx, dword [ebp + 0x10]
add eax, edi
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esp + 0x28], eax
push eax
mov eax, dword [esp + 0x20]
push eax
call fcn.00426300
add esp, 0xc
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
test eax, eax
mov eax, dword [esi + 8]
cdq
je 0x41eeb6
mov ecx, dword [ebx + 0x1f0]
add ecx, eax
mov dword [ebx + 0x1f0], ecx
mov eax, dword [ebx + 0x1f4]
adc eax, edx
mov dword [ebx + 0x1f4], eax
jmp case.0x41b1b5.17
mov ecx, dword [ebp + 0x90]
add ecx, eax
mov dword [ebp + 0x90], ecx
mov eax, dword [ebp + 0x94]
adc eax, edx
mov dword [ebp + 0x94], eax
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
test eax, eax
je 0x41ef05
mov ecx, dword [ebx + 0x1f0]
mov edx, dword [ebx + 0x1f4]
lea eax, [ebx + 0x1f0]
or ecx, edx
jne case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov edx, dword [ebp + 0x90]
mov ecx, dword [ebp + 0x94]
lea eax, [ebp + 0x90]
or edx, ecx
jne case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov ebp, dword [ebp + 0xa8]
test ebp, ebp
je 0x41ef5e
mov ecx, ebp
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x41ef50
mov ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x41ef43
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x41ef67
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
push eax
mov dword [esp + 0x24], eax
call fcn.00426170
mov esi, dword [esi + 8]
lea eax, [esi + esi*4]
lea esi, [edi + eax*8]
push esi
call fcn.00426170
mov ecx, dword [esp + 0x28]
add esp, 8
mov edx, dword [ecx + 0x14]
lea eax, [ecx + 0x10]
mov ecx, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
cmp edx, esi
jg case.0x41b1b5.17
jl 0x41efa7
mov edx, dword [eax]
cmp edx, ecx
jae case.0x41b1b5.17
mov dword [eax], ecx
mov dword [eax + 4], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8 + 0x10]
mov eax, dword [edi + 4]
test eax, eax
jl case.0x41b1b5.17
jg 0x41efd1
cmp dword [edi], 0
jbe case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8 + 0x14]
test eax, eax
lea edi, [edi + ecx*8 + 0x10]
jg case.0x41b1b5.17
jl 0x41efff
cmp dword [edi], 0
jae case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0xc]
mov ebx, dword [edi + edx*8 + 0x10]
lea ecx, [edi + edx*8]
cdq
add ebx, eax
mov dword [ecx + 0x10], ebx
mov edi, dword [ecx + 0x14]
adc edi, edx
mov dword [ecx + 0x14], edi
mov eax, dword [ecx + 0x10]
mov edx, edi
or eax, edx
jne case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
xor ecx, ecx
mov cl, byte [esi + 3]
mov dword [esp + 0x20], ecx
mov eax, dword [esi + 8]
lea edx, [eax + eax*4]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x70], eax
xor eax, eax
lea edi, [edi + edx*8]
mov dword [esp + 0x24], eax
test ecx, ecx
mov dword [esp + 0x2c], edi
jle 0x41f09b
mov ecx, dword [esp + 0x70]
mov dword [ecx + eax*4], edi
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041afa0
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
add esp, 4
inc eax
add edi, 0x28
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], edi
jl 0x41f06b
mov eax, dword [esi + 0x10]
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x1c]
xor edi, edi
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], eax
mov edx, dword [eax + 0x18]
inc edx
mov dword [eax + 0x18], edx
mov eax, dword [esp + 0x30]
mov word [esp + 0x54], 1
mov dword [esp + 0x3c], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], edi
mov cl, byte [eax + 3]
test cl, 8
je 0x41f0f9
mov ecx, dword [esi - 4]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x20]
push edx
lea edx, [esp + 0x34]
push ecx
push edx
call dword [eax + 0x10]
mov eax, dword [esp + 0x70]
add esp, 0xc
cmp eax, edi
je 0x41f142
lea eax, [esp + 0x38]
push eax
call fcn.004194d0
mov ecx, dword [esp + 0x124]
push eax
push 0x47113c
add ecx, 0x38
push ebx
push ecx
call fcn.004185f0
mov edx, dword [esp + 0x78]
add esp, 0x14
mov dword [esp + 0x10], edx
lea eax, [esp + 0x38]
push eax
call fcn.00416390
add esp, 4
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
lea edi, [edi + ecx*8]
mov dword [esp + 0x20], edi
mov edx, dword [esi + 0x10]
push edx
push edi
call fcn.00416470
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x41f193
mov eax, dword [esp + 0x20]
push eax
call fcn.004194d0
push eax
push 0x47113c
add ebp, 0x38
push ebx
push ebp
call fcn.004185f0
add esp, 0x14
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x20]
and ecx, 0xff
push ecx
push edx
call fcn.00418c40
mov eax, dword [esp + 0x28]
push eax
call fcn.004262d0
add esp, 0xc
test eax, eax
jne 0x41fcc1
jmp case.0x41b1b5.17
xor ebp, ebp
or eax, 0xffffffff
lea ecx, [esp + 0x2c]
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
lea edx, [esp + 0x28]
push ecx
mov ecx, dword [esi + 4]
push edx
push eax
push ecx
push ebx
call fcn.00450440
add esp, 0x14
cmp eax, 5
mov dword [esp + 0x10], eax
jne 0x41f206
mov dword [esp + 0x10], ebp
mov dword [esp + 0x24], 1
xor eax, eax
mov dword [esp + 0x20], eax
mov esi, dword [esi + 0xc]
lea edx, [esi + esi*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x30], edi
mov eax, dword [esp + eax*4 + 0x24]
cdq
push edx
push eax
push edi
call fcn.00419670
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
add esp, 0xc
inc eax
add edi, 0x28
cmp eax, 3
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], edi
jl 0x41f219
jmp case.0x41b1b5.17
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 8]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
mov dword [esp + 0x24], eax
call fcn.0040d160
push eax
mov dword [esp + 0x2c], eax
call fcn.00410f20
mov ecx, dword [esp + 0x30]
add esp, 8
cmp ecx, 0xffffffff
mov dword [esp + 0x2c], eax
jne 0x41f283
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
push eax
call fcn.00420800
add esp, 4
test eax, eax
jne 0x41f29c
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x24]
push edx
call fcn.00418380
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp ecx, 5
mov dword [esp + 0x30], eax
jne 0x41f2dd
cmp byte [eax], 0
je 0x41f2cc
mov eax, dword [esp + 0x24]
push eax
call fcn.004132d0
add esp, 4
test eax, eax
jne 0x41f2d9
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
jmp 0x41f3a1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
je 0x41f3a1
cmp eax, 5
je 0x41f2f7
cmp ecx, 5
jne 0x41f3a1
mov dl, byte [ebx + 0x1c]
test dl, dl
je 0x41f36e
cmp dword [ebx + 0x8c], 1
jg 0x41f36e
cmp eax, 5
jne 0x41f32d
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00420830
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41f364
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
jmp 0x41f339
cmp eax, 4
jne 0x41f345
mov ecx, dword [esp + 0x24]
push 2
push ecx
call fcn.00420700
mov ecx, dword [esp + 0x30]
add esp, 8
mov eax, dword [esp + 0x20]
xor edx, edx
cmp ecx, 5
sete dl
inc edx
push edx
push eax
call fcn.004260a0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x41f39d
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ecx
jmp 0x41f3a1
cmp ecx, 5
mov dword [esp + 0x10], 1
mov eax, str.into
je 0x41f385
mov eax, str.out_of
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
add ebp, 0x38
push ebx
push ebp
call fcn.004185f0
add esp, 0x10
jmp case.0x41b1b5.17
mov ecx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00420700
mov dword [esp + 0x30], eax
mov esi, dword [esi + 8]
lea edx, [esi + esi*4]
lea edi, [edi + edx*8]
mov dword [esp + 0x20], edi
mov word [edi + 0x1c], 0xa02
mov eax, dword [esp + 0x30]
push eax
call fcn.0042c170
push eax
mov dword [edi + 4], eax
call fcn.0040a490
mov ecx, dword [esp + 0xf0]
mov dword [edi + 0x18], eax
and ecx, 0xff
mov byte [edi + 0x1f], 1
push ecx
push edi
call fcn.00418c40
jmp 0x41f9f1
add ebp, 0x38
push ebx
push ebp
call fcn.0042d8a0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x41b1b5.17
mov edx, dword [esi + 4]
mov eax, dword [ebx + 8]
shl edx, 4
mov eax, dword [edx + eax + 4]
push eax
mov dword [esp + 0x24], eax
call fcn.00421520
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.0x41b1b5.17
mov esi, dword [esi + 8]
mov dword [esp + 0x10], 0
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
test eax, eax
jne 0x41f45d
push ebx
call fcn.00427150
add esp, 4
jmp case.0x41b1b5.17
mov byte [ebp + 0x64], 1
jmp case.0x41b1b5.17
mov al, byte [esi + 0xc]
test al, al
mov byte [esp + 0x108], al
jne 0x41f481
test dword [ebx + 0xc], 0x80000
jne case.0x41b1b5.17
mov ecx, dword [esp + 0x108]
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
push ecx
mov ecx, dword [ebx + 8]
push edx
shl eax, 4
mov edx, dword [eax + ecx + 4]
push edx
call fcn.00425fd0
add esp, 0xc
cmp al, 6
mov dword [esp + 0x10], eax
jne case.0x41b1b5.17
mov eax, dword [esi + 0x10]
add ebp, 0x38
push eax
push str.database_table_is_locked:__s
push ebx
push ebp
call fcn.004185f0
add esp, 0x10
jmp case.0x41b1b5.17
mov esi, dword [esi + 0x10]
push esi
push ebx
mov dword [esp + 0x28], esi
call fcn.0042e850
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add esp, 8
test eax, eax
je case.0x41b1b5.17
mov ecx, dword [eax + 8]
push ecx
push ebp
call fcn.004276b0
add esp, 8
jmp case.0x41b1b5.17
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
add ebp, 0x38
push ebp
push edx
push eax
push ebx
call fcn.0042e140
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.0x41b1b5.17
mov byte [ebp + 0x67], 2
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 4]
push ecx
push edx
push ebx
call fcn.0042e6a0
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [ebp + 0x67], 0
jmp case.0x41b1b5.17
xor eax, eax
lea edx, [esp + 0x24]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x10]
push edx
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
push eax
mov ecx, dword [eax]
mov dword [esp + 0x34], ecx
call dword [ecx + 0x18]
mov edi, eax
mov eax, dword [esp + 0x30]
push eax
push ebp
mov dword [esp + 0x20], edi
call fcn.004276b0
add esp, 0x10
test edi, edi
jne case.0x41b1b5.17
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
push edi
push 0xffffffffffffffff
mov dword [edx], ecx
mov eax, dword [esi + 4]
push edi
push eax
push ebp
call fcn.00427550
add esp, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x41f5ba
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
mov edx, dword [esp + 0x20]
mov ecx, dword [eax]
mov dword [edx + 0x28], ecx
jmp case.0x41b1b5.17
mov byte [ebx + 0x1e], 1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
push eax
call dword [ecx + 0x1c]
add esp, 4
jmp case.0x41b1b5.17
mov eax, dword [esi + 0xc]
mov ebx, dword [esp + 0x120]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xe4]
lea eax, [eax + edx*8]
mov edx, dword [ebx + 0x44]
mov dword [esp + 0x2c], eax
mov ebx, dword [ebx + 0xc]
lea edi, [eax + 0x28]
mov dword [esp + 0x30], edi
mov ecx, dword [esi + 4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x3c], ecx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x34], edx
mov ecx, dword [edx]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x24], eax
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x44], eax
jle 0x41f674
jmp 0x41f63d
mov edi, dword [esp + 0x30]
lea ecx, [eax + eax*4 + 5]
lea edx, [edi + ecx*8]
mov ecx, dword [esp + 0x48]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.0041afa0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
add esp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x44], eax
jl 0x41f639
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x120]
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x28]
mov byte [edi + 0x67], 1
push ecx
mov ecx, dword [esi + 0x10]
push ecx
mov ecx, dword [esp + 0x34]
push eax
push edx
call dword [ecx + 0x20]
mov edx, dword [esp + 0x4c]
mov ebx, eax
push edx
push edi
mov dword [esp + 0x2c], ebx
mov byte [edi + 0x67], 0
call fcn.004276b0
add esp, 0x1c
test ebx, ebx
jne 0x41f6c5
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
push eax
call dword [ecx + 0x28]
add esp, 4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
test eax, eax
je 0x41f6d5
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x3c]
mov byte [edx + 0x1c], 0
jmp case.0x41b1b5.17
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 0x44]
mov ebx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
lea edx, [eax + eax*4]
lea eax, [edi + edx*8]
mov dword [esp + 0x28], eax
mov cl, byte [ebx + 0x1c]
test cl, cl
je 0x41f70d
push eax
call fcn.004164e0
add esp, 4
jmp case.0x41b1b5.17
mov eax, dword [ebx + 0x24]
lea edi, [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x20], eax
mov ecx, dword [eax]
xor eax, eax
mov dword [esp + 0x24], ecx
mov ecx, 0x10
rep stosd dword es:[edi], eax
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0041aec0
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x38]
and ecx, 0xbf01
or ecx, 1
mov word [esp + 0x5c], cx
mov edx, dword [esi + 8]
mov ecx, dword [ebx + 0x24]
push edx
mov edx, dword [esp + 0x30]
push eax
push ecx
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
push eax
push ecx
call fcn.004276b0
mov eax, dword [esp + 0x80]
add esp, 0x1c
test eax, eax
je 0x41f786
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0xe0]
lea eax, [esp + 0x38]
and edx, 0xff
push edx
push eax
call fcn.00418c40
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push ecx
push edx
call fcn.0041aec0
mov eax, dword [esp + 0x38]
push eax
call fcn.004262d0
add esp, 0x14
test eax, eax
jne 0x41fcc1
jmp case.0x41b1b5.17
mov edx, dword [ebp + 0x44]
mov dword [esp + 0x28], 0
mov ecx, dword [esi + 4]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x2c], eax
mov cl, byte [eax + 0x1c]
test cl, cl
jne case.0x41b1b5.17
mov ecx, dword [eax + 0x24]
mov ecx, dword [ecx]
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx]
mov byte [ebp + 0x67], 1
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 0x24]
push edx
call dword [ecx + 0x24]
mov edi, eax
mov eax, dword [esp + 0x24]
push eax
push ebp
mov dword [esp + 0x1c], edi
mov byte [ebp + 0x67], 0
call fcn.004276b0
add esp, 0xc
test edi, edi
jne 0x41f833
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 0x24]
push edx
call dword [eax + 0x28]
add esp, 4
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne case.0x41b1b5.17
mov esi, dword [esi + 8]
dec esi
mov dword [esp + 0x14], esi
jmp case.0x41b1b5.17
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 8]
mov dword [esp + 0x20], eax
mov esi, dword [esi + 4]
lea edx, [esi + esi*4]
lea ecx, [edi + edx*8]
mov dword [esp + 0x24], ecx
mov edx, dword [eax]
mov ecx, dword [ecx + 4]
push ecx
push eax
call dword [edx + 0x4c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
push edx
push ebp
call fcn.004276b0
add esp, 0x10
mov byte [ebp + 0x64], 0
jmp case.0x41b1b5.17
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x20], eax
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov eax, dword [esi + 8]
mov dword [esp + 0x28], eax
mov ecx, dword [edx + 0x34]
test ecx, ecx
je case.0x41b1b5.17
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi + 0xc]
test eax, eax
lea ecx, [ecx + ecx*4]
mov dword [esp + 0x2c], 0
lea edi, [edi + ecx*8]
mov dword [esp + 0x3c], edi
jle 0x41f902
push edi
call fcn.0041afa0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
add esp, 4
mov dword [ecx + eax*4], edx
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
add edi, 0x28
inc ecx
cmp ecx, eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], ecx
jl 0x41f8ca
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x3c]
push ecx
push eax
mov eax, dword [esp + 0x2c]
push eax
call dword [edx + 0x34]
mov ecx, dword [esp + 0x30]
mov edi, eax
push ecx
push ebp
mov dword [esp + 0x28], edi
call fcn.004276b0
add esp, 0x18
test edi, edi
jne 0x41f942
mov eax, dword [esi + 4]
test eax, eax
je 0x41f942
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x30], edx
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x34], eax
inc dword [ebp + 0x6c]
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 8]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
call fcn.00412510
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0
jmp case.0x41b1b5.17
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 8]
shl ecx, 4
xor eax, eax
mov edi, dword [ecx + edx + 4]
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x41f99b
push edi
call fcn.00412510
mov esi, dword [esi + 0xc]
add esp, 4
cmp eax, esi
jae 0x41f99b
mov eax, esi
push eax
push edi
call fcn.004214d0
mov ecx, dword [esp + 0x20]
add esp, 8
cdq
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
jmp case.0x41b1b5.17
mov esi, dword [esi + 0x10]
test esi, esi
mov eax, esi
jne 0x41f9c1
mov eax, dword [ebp + 0xa0]
test eax, eax
mov dword [esp + 0x20], eax
je case.0x41b1b5.17
mov ecx, dword [ebx + 0x98]
test ecx, ecx
je case.0x41b1b5.17
push eax
push ebp
call fcn.00427170
mov esi, eax
mov eax, dword [ebx + 0x9c]
push esi
push eax
call dword [ebx + 0x98]
push esi
push ebx
call fcn.00408e50
add esp, 0x18
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x120]
inc ecx
test esi, esi
mov dword [esp + 0x14], ecx
jne 0x41fcea
mov edi, dword [esp + 0xe4]
mov ebx, dword [esp + 0x1c]
jmp 0x41b121
mov esi, 9
jmp 0x41fcf7
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x14]
mov dword [ebp + 0x5c], ecx
mov dl, byte [esi + 8]
mov byte [ebp + 0x60], dl
mov dword [ebp + 0x58], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x41fa77
push eax
push 0x47113c
lea ecx, [ebp + 0x38]
push ebx
push ecx
call fcn.004185f0
mov edx, dword [esi + 0x10]
mov eax, dword [ebp + 0xa0]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esi + 4]
push eax
push ecx
push str.abort_at__d_in___s_:__s
push edx
call fcn.0040a230
add esp, 0x24
jmp 0x41fa9b
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x41fa9b
mov eax, dword [ebp + 0xa0]
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 4]
push eax
push ecx
push str.constraint_failed_at__d_in___s_
push edx
call fcn.0040a230
add esp, 0x10
push ebp
call fcn.00416ae0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x41fbd5
mov dword [ebp + 0x5c], esi
jmp 0x41fd52
mov eax, dword [ebp + 0x54]
add eax, 2
or al, 1
mov dword [ebp + 0x54], eax
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
xor eax, eax
mov dword [esp + 0x24], eax
lea edi, [edi + ecx*8]
mov dword [ebp + 0x14], edi
mov dword [esp + 0x20], edi
mov ecx, dword [esi + 8]
test ecx, ecx
jle 0x41fb3a
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 0x1d], 0x10
lea ecx, [ecx + edx*8]
je 0x41fb03
push ecx
call fcn.004162c0
add esp, 4
test eax, eax
jne 0x41fb6b
mov eax, dword [esp + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ecx, [eax + edx*8]
push ecx
call fcn.004190c0
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea ecx, [eax + edx*8]
push ecx
call fcn.0041afa0
mov eax, dword [esp + 0x2c]
add esp, 8
inc eax
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 8]
cmp eax, ecx
jl 0x41fae1
mov edx, dword [esp + 0x1c]
mov al, byte [edx + 0x1e]
test al, al
jne 0x41fb6b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x120]
inc eax
mov esi, 0x64
mov dword [ecx + 0x58], eax
jmp 0x41fd52
lea edx, [esp + 0x30]
push edx
call fcn.00416390
add esp, 4
mov ebp, dword [esp + 0x120]
mov ebx, dword [esp + 0x1c]
push str.out_of_memory
push ebx
lea ecx, [ebp + 0x38]
mov byte [ebx + 0x1e], 1
push ecx
call fcn.004185f0
add esp, 0xc
mov esi, 7
jmp 0x41fcf7
mov dword [esp + 0x10], 0x14
jmp 0x41fc5e
mov eax, dword [esp + 0x14]
mov dword [edi + 0x58], eax
mov byte [esi + 0x1c], 0
mov esi, 5
mov dword [edi + 0x5c], esi
jmp 0x41fd52
test esi, esi
je 0x41fbe7
push ebx
call fcn.0044faf0
add esp, 4
mov byte [ebx + 0x1c], 1
push ebx
call fcn.0044f770
add esp, 4
mov esi, dword [ebp + 0x5c]
neg esi
sbb esi, esi
and esi, 0xffffff9c
add esi, 0x65
jmp 0x41fd52
push 1
push ebp
call fcn.00418590
mov esi, eax
add esp, 8
test esi, esi
jne 0x41fd52
mov cl, byte [esp + 0x20]
push ebp
mov byte [ebx + 0x1c], cl
call fcn.00416ae0
mov esi, 5
add esp, 4
cmp eax, esi
jne 0x41fbcc
mov cl, byte [esp + 0x20]
mov edx, dword [esp + 0x14]
mov al, 1
mov dword [ebp + 0x58], edx
sub al, cl
mov byte [ebx + 0x1c], al
mov dword [ebp + 0x5c], esi
jmp 0x41fd52
mov ecx, dword [esp + 0x14]
mov esi, 5
mov dword [ebp + 0x58], ecx
mov dword [ebp + 0x5c], esi
jmp 0x41fd52
push 0xff0b
call fcn.00451020
add esp, 4
mov dword [esp + 0x10], eax
jmp 0x41fc5e
mov dword [esp + 0x10], 0xd
mov ebx, dword [esp + 0x1c]
mov al, byte [ebx + 0x1e]
test al, al
je 0x41fc70
mov esi, 7
jmp 0x41fc7c
mov esi, dword [esp + 0x10]
cmp esi, 0xc0a
je 0x41fcf0
push esi
call fcn.0044fbb0
mov ebp, dword [esp + 0x124]
push eax
push 0x47113c
push ebx
lea edx, [ebp + 0x38]
push edx
call fcn.004185f0
add esp, 0x14
jmp 0x41fcf7
mov esi, 9
push esi
mov dword [ebp + 0x5c], esi
call fcn.0044fbb0
push eax
push 0x47113c
lea eax, [ebp + 0x38]
push ebx
push eax
call fcn.004185f0
add esp, 0x14
jmp 0x41fcf7
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x1c]
push str.string_or_blob_too_big
add eax, 0x38
push edx
push eax
call fcn.004185f0
mov ebp, dword [esp + 0x12c]
add esp, 0xc
mov esi, 0x12
mov ebx, dword [esp + 0x1c]
jmp 0x41fcf7
mov ebp, dword [esp + 0x120]
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0xa0]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
mov dword [ebp + 0x5c], esi
call fcn.0040a230
push ebp
call fcn.00416ae0
add esp, 0x18
cmp esi, 0xc0a
jne 0x41fd2a
mov byte [ebx + 0x1e], 1
mov al, byte [esp + 0xf4]
mov esi, 1
test al, al
jbe 0x41fd52
mov ecx, dword [esp + 0xf4]
and ecx, 0xff
dec ecx
push ecx
push ebx
call fcn.004296f0
add esp, 8
mov edx, dword [esp + 0x120]
push edx
call fcn.00416e00
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret