Function at 0x41c0e0
Capabilities:
Enumerate pe sections
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x32c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor ecx, ecx
mov eax, dword [esi]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], ecx
mov al, byte [edx + 0x49]
mov byte [esp + 0x4c], al
lea eax, [esi + 0x94]
push eax
mov dword [esp + 0xec], eax
call fcn.00419320
mov eax, dword [esi + 0x64]
add esp, 4
cmp eax, 7
je 0x42041f
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dword [esi + 0x64], ecx
mov dword [esi + 0x78], ecx
mov dword [eax + 0x19c], ecx
mov edx, dword [eax + 0xd8]
cmp edx, ecx
jne 0x4203cd
mov ecx, dword [esi + 0x60]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov al, byte [edx + 0x1e]
test al, al
jne 0x42041f
mov eax, dword [esp + 0x28]
mov edx, dword [esi + 0x14]
mov edi, dword [esp + 0x30]
lea eax, [eax + eax*4]
lea ebx, [edx + eax*4]
mov eax, dword [edi + 0x100]
test eax, eax
je 0x41c1dc
mov edx, dword [esp + 0x98]
cmp dword [edi + 0x108], edx
jne 0x41c1d5
mov ecx, dword [edi + 0x104]
push ecx
call eax
add esp, 4
test eax, eax
jne 0x4201f3
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x98], eax
inc dword [esp + 0x98]
xor edx, edx
mov dl, byte [ebx]
mov al, byte [edx + 0x451dd8]
test al, 2
mov byte [esp + 0x6b], al
je 0x41c215
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x30], eax
call fcn.00417a20
mov edx, dword [esp + 0x30]
add esp, 4
mov ecx, edx
mov word [edx + 0x1c], 1
jmp 0x41c291
test al, 4
je 0x41c267
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x4c]
lea edx, [edx + edx*4]
lea edx, [eax + edx*8]
mov dword [esp + 0x20], edx
mov dl, byte [esp + 0x6b]
test dl, 8
je 0x41c257
mov edx, dword [ebx + 8]
lea edx, [edx + edx*4]
lea edx, [eax + edx*8]
mov dword [esp + 0x58], edx
mov dl, byte [esp + 0x6b]
test dl, 0x20
je 0x41c291
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x2c], ecx
jmp 0x41c291
test dl, 0x10
je 0x41c291
mov edx, dword [ebx + 0xc]
lea edx, [edx + edx*4]
lea eax, [eax + edx*8]
jmp 0x41c28d
test al, 8
je 0x41c27d
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea edx, [eax + edx*8]
mov dword [esp + 0x58], edx
jmp 0x41c291
test al, 0x10
je 0x41c291
mov eax, dword [ebx + 0xc]
mov edx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x50], eax
mov al, byte [ebx]
mov edx, eax
and edx, 0xff
mov dword [esp + 0x24], edx
dec edx
cmp edx, 0x90
ja case.0x41c2ac.13
jmp dword [edx*4 + 0x4204a8]
mov eax, dword [edi + 0xd8]
test eax, eax
jne 0x4203cd
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x28]
lea ecx, [edx + ecx*8]
cdq
mov dword [ecx], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 4], edx
mov eax, dword [ebx + 8]
dec eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], eax
jmp case.0x41c2ac.13
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov dword [esp + 0x28], edx
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
cdq
mov esi, dword [ecx]
mov dword [ecx], eax
mov word [ecx + 0x1c], 4
mov dword [ecx + 4], edx
mov dword [esp + 0x28], esi
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x50]
test byte [eax + 0x1c], 1
jne case.0x41c2ac.40
jmp case.0x41c2ac.13
mov word [ecx + 0x1c], 4
mov eax, dword [ebx + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41c2ac.13
mov word [ecx + 0x1c], 4
mov edx, dword [ebx + 0x10]
mov eax, dword [edx]
mov dword [ecx], eax
mov edx, dword [edx + 4]
mov dword [ecx + 4], edx
jmp case.0x41c2ac.13
mov word [ecx + 0x1c], 8
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
mov dword [ecx + 8], edx
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 0x10]
mov byte [ebx], 0x1d
push ecx
call fcn.0040e830
mov cl, byte [esp + 0x50]
add esp, 4
cmp cl, 1
mov dword [ebx + 4], eax
je 0x41c430
mov edx, dword [ebx + 0x10]
mov edi, dword [esp + 0x2c]
push 0
push 1
push 0xffffffffffffffff
push edx
push edi
call fcn.004174e0
mov eax, dword [esp + 0x60]
and eax, 0xff
push eax
push edi
call fcn.004184c0
add esp, 0x1c
test eax, eax
jne 0x42041f
push edi
call fcn.00417920
add esp, 4
test eax, eax
jne 0x42041f
mov cx, word [edi + 0x1c]
mov dword [edi + 0x24], eax
and ecx, 0xfbff
or ch, 8
mov word [edi + 0x1c], cx
mov al, byte [ebx + 1]
cmp al, 0xff
jne 0x41c40c
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0040d3d0
add esp, 8
mov edx, dword [esp + 0x30]
mov byte [ebx + 1], 0xff
mov ecx, dword [edi + 0x14]
mov dword [ebx + 0x10], ecx
mov edi, dword [edi + 0x18]
mov dword [ebx + 4], edi
mov eax, dword [edx + 0x50]
cmp edi, eax
jg 0x4203fc
jmp case.0x41c2ac.13
cmp eax, dword [edi + 0x50]
jg 0x4203fc
mov ecx, dword [esp + 0x2c]
mov word [ecx + 0x1c], 0xa02
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x14], eax
mov edx, dword [ebx + 4]
mov al, byte [esp + 0x4c]
mov dword [ecx + 0x18], edx
mov byte [ecx + 0x1f], al
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
mov esi, dword [esp + 0x2c]
push 0
push 0
push ecx
push edx
push esi
call fcn.004174e0
mov al, byte [esp + 0x60]
add esp, 0x14
mov byte [esi + 0x1f], al
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
dec eax
mov edx, ebx
dec ebx
test edx, edx
mov dword [esp + 0x18], ebx
jle case.0x41c2ac.13
lea ecx, [ecx + ecx*4]
lea eax, [eax + eax*4]
shl ecx, 3
mov dword [esp + 0x14], ecx
shl eax, 3
jmp 0x41c4af
mov eax, dword [esp + 0x1c]
mov ebx, dword [esi + 0x38]
add ebx, eax
add eax, 0x28
push ebx
mov dword [esp + 0x20], eax
call fcn.00425210
add esp, 4
test eax, eax
jne 0x4203fc
mov edi, dword [esi + 0x4c]
mov eax, dword [esp + 0x14]
add edi, eax
add eax, 0x28
push edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], eax
call fcn.00417a20
push 0x800
push ebx
push edi
mov word [edi + 0x1c], 1
call fcn.004183c0
mov eax, dword [esp + 0x28]
add esp, 0x10
mov ecx, eax
dec eax
test ecx, ecx
mov dword [esp + 0x18], eax
jg 0x41c4ab
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 4]
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebx + 8]
mov esi, dword [esi + 0x4c]
lea edx, [ecx + ecx*4]
lea ecx, [ebx + ebx*4]
lea edi, [esi + edx*8]
mov edx, eax
lea esi, [esi + ecx*8]
dec eax
test edx, edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x2c], esi
je case.0x41c2ac.13
inc eax
mov dword [esp + 0x14], eax
mov ebx, dword [esi + 0x24]
push edi
push esi
mov dword [esi + 0x24], 0
call fcn.0041bf10
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x24], ebx
add esp, 8
add edi, 0x28
add esi, 0x28
dec eax
mov dword [esp + 0x14], eax
jne 0x41c53f
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], edi
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 8]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esp + 0x20]
push 0x1000
lea eax, [ebx + ebx*4]
push edx
lea edi, [ecx + eax*8]
push edi
mov dword [esp + 0x38], edi
call fcn.004183c0
add esp, 0xc
test byte [edi + 0x1d], 0x10
je case.0x41c2ac.13
push edi
call fcn.00417920
add esp, 4
test eax, eax
jne 0x42041f
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 8]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esp + 0x20]
push 0x1000
lea eax, [ebx + ebx*4]
push edx
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x38], eax
call fcn.004183c0
add esp, 0xc
jmp case.0x41c2ac.13
push 1
push esi
call fcn.004199c0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x42024b
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x58]
mov ax, word [eax + 0x1c]
mov bl, byte [edx + 0x1c]
mov cl, al
or cl, bl
test cl, 1
je 0x41c625
mov eax, dword [esp + 0x2c]
push eax
call fcn.00417b40
add esp, 4
jmp case.0x41c2ac.13
test ah, 0x40
je 0x41c637
mov ecx, dword [esp + 0x20]
push ecx
call fcn.00417980
add esp, 4
mov edx, dword [esp + 0x20]
test byte [edx + 0x1c], 0x12
jne 0x41c662
mov eax, dword [esp + 0x4c]
mov ecx, edx
and eax, 0xff
push eax
push ecx
call fcn.004189c0
add esp, 8
test eax, eax
jne 0x42041f
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x58]
test byte [ebx + 0x1d], 0x40
je 0x41c675
push ebx
call fcn.00417980
add esp, 4
test byte [ebx + 0x1c], 0x12
jne 0x41c69b
mov edx, dword [esp + 0x4c]
and edx, 0xff
push edx
push ebx
call fcn.004189c0
add esp, 8
test eax, eax
jne 0x42041f
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0x18]
add eax, dword [ecx + 0x18]
cdq
mov dword [esp + 0xf4], eax
mov eax, dword [edi + 0x50]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x4203fc
jl 0x41c6ca
cmp dword [esp + 0xf4], eax
ja 0x4203fc
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0xf4]
xor eax, eax
mov dx, word [edi + 0x1c]
and edx, 0xbf02
or edx, 2
cmp edi, ebx
sete al
add ecx, 2
push eax
push ecx
push edi
mov word [edi + 0x1c], dx
call fcn.00417710
add esp, 0xc
test eax, eax
jne 0x42041f
cmp edi, ebx
je 0x41c726
mov ebx, dword [esp + 0x58]
mov eax, edi
mov ecx, dword [ebx + 0x18]
mov esi, dword [ebx + 0x14]
mov edi, dword [eax + 0x14]
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]
jmp 0x41c72e
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x20]
mov edi, dword [ebx + 0x18]
mov ecx, dword [edx + 0x18]
mov esi, dword [edx + 0x14]
mov edx, dword [eax + 0x14]
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 edx, dword [eax + 0x14]
mov ecx, dword [esp + 0xf4]
mov byte [ecx + edx], 0
mov edx, dword [eax + 0x14]
mov byte [ecx + edx + 1], 0
or byte [eax + 0x1d], 2
mov dword [eax + 0x18], ecx
mov cl, byte [esp + 0x4c]
mov byte [eax + 0x1f], cl
jmp case.0x41c2ac.13
mov esi, dword [esp + 0x20]
push esi
call fcn.0041c020
mov edi, dword [esp + 0x5c]
push edi
call fcn.0041c020
mov cx, word [esi + 0x1c]
mov dx, word [edi + 0x1c]
mov eax, ecx
and edx, 0xffff
and eax, 0xffff
add esp, 8
or eax, edx
test al, 1
mov dword [esp + 0x1c], eax
jne 0x41c930
and cl, byte [edi + 0x1c]
and cl, 4
cmp cl, 4
jne 0x41c86d
mov edx, dword [esp + 0x58]
mov ecx, dword [esi]
mov esi, dword [esi + 4]
mov edi, dword [edi]
mov edx, dword [edx + 4]
xor eax, eax
mov al, byte [ebx]
add eax, 0xffffffac
cmp eax, 3
ja case.default.0x41c7da
jmp dword [eax*4 + 0x4206ec]
add edi, ecx
adc edx, esi
jmp 0x41c84e
sub edi, ecx
sbb edx, esi
jmp 0x41c84e
push esi
push ecx
push edx
push edi
call fcn.00406880
jmp 0x41c84c
mov eax, ecx
or eax, esi
je 0x41c930
mov eax, ecx
and eax, esi
cmp eax, 0xffffffff
jne 0x41c81e
test edi, edi
jne 0x41c81e
cmp edx, 0x80000000
jne 0x41c81e
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push edi
call fcn.0044db90
jmp 0x41c84c
mov eax, ecx
or eax, esi
je 0x41c930
mov eax, ecx
and eax, esi
cmp eax, 0xffffffff
jne 0x41c843
mov ecx, 1
xor esi, esi
push esi
push ecx
push edx
push edi
call fcn.0044dad0
mov edi, eax
mov eax, dword [esp + 0x2c]
mov cx, word [eax + 0x1c]
mov dword [eax], edi
and ecx, 0xbf04
mov dword [eax + 4], edx
or ecx, 4
mov word [eax + 0x1c], cx
jmp case.0x41c2ac.13
push esi
call fcn.0041a550
fstp qword [esp + 0x3c]
push edi
call fcn.0041a550
xor eax, eax
add esp, 8
mov al, byte [ebx]
add eax, 0xffffffac
cmp eax, 3
ja case.default.0x41c88c
jmp dword [eax*4 + 0x4206fc]
fadd qword [esp + 0x38]
jmp 0x41c902
fsub qword [esp + 0x38]
jmp 0x41c902
fmul qword [esp + 0x38]
jmp 0x41c902
fld qword [esp + 0x38]
fcomp qword [0x4552e8]
fnstsw ax
test ah, 0x40
jne 0x41c92e
fdiv qword [esp + 0x38]
jmp 0x41c902
fld qword [esp + 0x38]
call fcn.0044daa0
mov esi, eax
mov edi, edx
call fcn.0044daa0
mov ecx, esi
or ecx, edi
je 0x41c930
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x41c8e4
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0044dad0
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], edx
fild qword [esp + 0x170]
fstp qword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push edx
push eax
call fcn.0040e7e0
add esp, 8
test eax, eax
je 0x41c942
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00417b40
add esp, 4
jmp case.0x41c2ac.13
fstp st(0)
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00417b40
add esp, 4
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], edx
mov dx, word [eax + 0x1c]
mov dword [eax + 0xc], ecx
mov cl, byte [esp + 0x1c]
and edx, 0xbf08
or edx, 8
test cl, 8
mov word [eax + 0x1c], dx
jne case.0x41c2ac.13
push eax
call fcn.00425090
add esp, 4
jmp case.0x41c2ac.13
mov eax, dword [esi + 0x24]
xor ecx, ecx
mov cl, byte [ebx + 3]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x1c], ecx
test ecx, ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea edx, [eax + edx*8]
mov dword [esp + 0x48], edx
jle 0x41c9e4
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
push eax
mov dword [ecx], eax
call fcn.0041bfe0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
add esp, 4
add edx, 4
add ecx, 0x28
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], eax
jne 0x41c9b0
cmp byte [ebx + 1], 0xfb
jne 0x41ca01
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x18c], 0
mov dword [esp + 0x188], edx
jmp 0x41ca14
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x18c], eax
mov eax, dword [eax]
mov dword [esp + 0x188], eax
mov eax, dword [ebx + 0xc]
mov edx, dword [esi + 0x4c]
mov word [esp + 0x1ac], 1
mov dword [esp + 0x1a0], edi
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
xor ecx, ecx
mov dword [esp + 0x2c], eax
push eax
lea eax, [esp + 0x194]
mov dword [esp + 0x1b4], ecx
push eax
mov dword [esp + 0x1bc], ecx
call fcn.0041bf10
mov ecx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x190]
and ecx, 0xbf01
mov dword [esp + 0x1c4], 0
or ecx, 1
add esp, 8
mov word [esp + 0x1ac], cx
mov cl, byte [eax + 3]
test cl, 8
je 0x41ca92
mov edx, dword [ebx - 4]
mov dword [esp + 0x1c0], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18c]
push edx
push ecx
call dword [eax + 0xc]
mov al, byte [edi + 0x1e]
add esp, 0xc
test al, al
jne 0x4202d0
mov eax, dword [esp + 0x18c]
test eax, eax
je 0x41cadb
mov edx, dword [ebx + 4]
push edx
push eax
call fcn.00419f80
mov eax, dword [esp + 0x194]
add esp, 8
mov dword [ebx + 0x10], eax
mov byte [ebx + 1], 0xf9
mov eax, dword [esp + 0x1bc]
test eax, eax
je 0x41cb11
lea ecx, [esp + 0x190]
push ecx
call fcn.0041a7e0
push eax
push 0x45b2cc
lea edx, [esi + 0x74]
push edi
push edx
call fcn.0041b110
mov eax, dword [esp + 0x1d0]
add esp, 0x14
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x190]
and ecx, 0xff
push ecx
push edx
call fcn.004184c0
mov edi, dword [esp + 0x34]
lea eax, [esp + 0x198]
push eax
push edi
call fcn.0041bf10
push edi
call fcn.00425210
add esp, 0x14
test eax, eax
jne 0x4203fc
jmp case.0x41c2ac.13
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x20]
mov dl, byte [ecx + 0x1c]
mov cl, byte [eax + 0x1c]
or dl, cl
test dl, 1
je 0x41cb78
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00417b40
add esp, 4
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x58]
push edx
call fcn.0041a5e0
mov esi, eax
mov eax, dword [esp + 0x24]
push eax
mov edi, edx
call fcn.0041a5e0
xor ecx, ecx
add esp, 8
mov cl, byte [ebx]
sub ecx, 0x50
je 0x41cbc4
dec ecx
je 0x41cbbe
dec ecx
mov edx, edi
mov ecx, eax
mov eax, esi
je 0x41cbb3
call fcn.0044ddc0
mov esi, eax
mov edi, edx
jmp 0x41cbc8
call fcn.0044dda0
mov esi, eax
mov edi, edx
jmp 0x41cbc8
or esi, eax
or edi, edx
jmp 0x41cbc8
and esi, eax
and edi, edx
mov eax, dword [esp + 0x2c]
mov cx, word [eax + 0x1c]
mov dword [eax], esi
and ecx, 0xbf04
mov dword [eax + 4], edi
or ecx, 4
mov word [eax + 0x1c], cx
jmp case.0x41c2ac.13
mov esi, dword [esp + 0x20]
push esi
call fcn.004250c0
mov eax, dword [ebx + 8]
mov ecx, dword [esi]
cdq
add esp, 4
add ecx, eax
mov dword [esi], ecx
mov eax, dword [esi + 4]
adc eax, edx
mov dword [esi + 4], eax
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x20]
push edx
push 0x63
push edi
call fcn.00425900
mov ax, word [edi + 0x1c]
add esp, 0xc
test al, 4
jne 0x41cc3c
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x4202e5
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
and eax, 0xbf04
or al, 4
mov word [edi + 0x1c], ax
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 4
je case.0x41c2ac.13
mov ecx, eax
push ecx
call fcn.0041c0b0
add esp, 4
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x20]
mov ax, word [edx + 0x1c]
test al, 1
jne case.0x41c2ac.13
mov cl, al
mov esi, edx
mov edx, dword [esp + 0x4c]
shr cl, 3
and ecx, 2
push edx
or ecx, eax
push 0x61
push esi
mov word [esi + 0x1c], cx
call fcn.00425900
add esp, 0xc
test byte [esi + 0x1d], 0x40
je 0x41ccb8
push esi
call fcn.00417980
add esp, 4
and word [esi + 0x1c], 0xbfe3
mov dword [esp + 0x10], eax
jmp case.0x41c2ac.13
and word [esi + 0x1c], 0xbfe3
mov dword [esp + 0x10], 0
jmp case.0x41c2ac.13
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x1c]
test al, 1
jne case.0x41c2ac.13
test al, 0x10
jne 0x41cd07
mov eax, dword [esp + 0x4c]
mov esi, ecx
push eax
push 0x61
push esi
call fcn.00425900
mov cx, word [esi + 0x1c]
add esp, 0xc
and ecx, 0xbf10
or ecx, 0x10
mov word [esi + 0x1c], cx
jmp case.0x41c2ac.13
and eax, 0xff10
mov word [ecx + 0x1c], ax
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x20]
test byte [edx + 0x1c], 0xd
jne case.0x41c2ac.13
mov eax, edx
push eax
call fcn.004250f0
add esp, 4
jmp case.0x41c2ac.13
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
jne case.0x41c2ac.13
mov edx, ecx
push edx
call fcn.004250c0
add esp, 4
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 1
jne case.0x41c2ac.13
mov ecx, eax
push ecx
call fcn.0041c0b0
add esp, 4
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
mov al, byte [edx + 0x1c]
mov dl, byte [ecx + 0x1c]
or al, dl
test al, 1
je 0x41cda6
mov al, byte [ebx + 3]
test al, 0x10
je 0x41cd9f
mov ebx, dword [ebx + 8]
mov eax, dword [esi + 0x4c]
lea edx, [ebx + ebx*4]
lea eax, [eax + edx*8]
mov dword [esp + 0x2c], eax
jmp 0x41d049
test al, 8
jmp 0x41e79d
mov dl, byte [ebx + 3]
and dl, 0x67
mov byte [esp + 0xc8], dl
je 0x41cdf1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
call fcn.00425900
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0x5c]
push eax
push ecx
push edx
call fcn.00425900
mov al, byte [edi + 0x1e]
add esp, 0x18
test al, al
jne 0x42041f
mov eax, dword [esp + 0x20]
test byte [eax + 0x1d], 0x40
je 0x41ce04
push eax
call fcn.00417980
add esp, 4
mov edi, dword [esp + 0x50]
test byte [edi + 0x1d], 0x40
je 0x41ce17
push edi
call fcn.00417980
add esp, 4
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x20]
push eax
push ecx
push edi
call fcn.004181a0
xor ecx, ecx
add esp, 0xc
mov cl, byte [ebx]
add ecx, 0xffffffb7
cmp ecx, 4
ja case.default.0x41ce35
jmp dword [ecx*4 + 0x42070c]
xor edx, edx
test eax, eax
sete dl
mov eax, edx
jmp 0x41ce78
xor ecx, ecx
test eax, eax
setne cl
jmp 0x41ce76
xor edx, edx
test eax, eax
setl dl
mov eax, edx
jmp 0x41ce78
xor ecx, ecx
test eax, eax
setle cl
jmp 0x41ce76
xor edx, edx
test eax, eax
setg dl
mov eax, edx
jmp 0x41ce78
xor ecx, ecx
test eax, eax
setge cl
mov eax, ecx
test byte [ebx + 3], 0x10
je 0x41e79b
mov ebx, dword [ebx + 8]
mov ecx, dword [esi + 0x4c]
lea edx, [ebx + ebx*4]
lea ecx, [ecx + edx*8]
mov dword [esp + 0x2c], ecx
mov dx, word [ecx + 0x1c]
and edx, 0xbf04
or edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x94], eax
jmp case.0x41c2ac.13
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 8]
xor edi, edi
test ecx, ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x44], edx
jle 0x41cf8e
mov ecx, dword [esp + 0x94]
lea edx, [eax + 0xc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x48], edx
jmp 0x41cefb
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x41cf0e
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
jmp 0x41cf10
mov edx, edi
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 8]
xor ebx, ebx
mov ecx, dword [ecx]
mov bl, byte [eax + edi]
mov eax, dword [esi + 0x4c]
push ecx
mov ecx, dword [esp + 0x48]
add ecx, edx
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
push ecx
mov ecx, dword [esp + 0x1c]
add ecx, edx
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
push eax
call fcn.004181a0
add esp, 0xc
mov dword [esp + 0xa4], eax
test eax, eax
jne 0x41cf81
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov eax, 4
inc edi
add edx, eax
add ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], edx
cmp edi, eax
mov dword [esp + 0x48], ecx
jl 0x41cef7
mov dword [esp + 0x94], 0
jmp case.0x41c2ac.13
test ebx, ebx
je 0x41cf8e
neg eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x94], 0
jmp case.0x41c2ac.13
mov eax, dword [esp + 0xa4]
test eax, eax
jge 0x41cfb6
mov ebx, dword [ebx + 4]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
je 0x41e7a3
mov ebx, dword [ebx + 0xc]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x1c], 1
je 0x41cfda
mov esi, 2
jmp 0x41cff4
mov edx, dword [esp + 0x20]
push edx
call fcn.0041a5e0
add esp, 4
or eax, edx
je 0x41cff2
mov esi, 1
jmp 0x41cff4
xor esi, esi
mov eax, dword [esp + 0x58]
test byte [eax + 0x1c], 1
je 0x41d005
mov eax, 2
jmp 0x41d01b
push eax
call fcn.0041a5e0
add esp, 4
or eax, edx
je 0x41d019
mov eax, 1
jmp 0x41d01b
xor eax, eax
cmp byte [ebx], 0x43
jne 0x41d030
lea eax, [eax + esi*2]
xor ecx, ecx
mov cl, byte [esi + eax + 0x451e6c]
mov eax, ecx
jmp 0x41d03c
lea edx, [eax + esi*2]
xor eax, eax
mov al, byte [esi + edx + 0x451e78]
cmp eax, 2
jne 0x41f488
mov eax, dword [esp + 0x2c]
mov cx, word [eax + 0x1c]
and ecx, 0xbf01
or ecx, 1
mov word [eax + 0x1c], cx
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 8]
mov ecx, dword [esi + 0x4c]
mov edx, dword [esp + 0x20]
lea eax, [ebx + ebx*4]
lea esi, [ecx + eax*8]
mov al, byte [edx + 0x1c]
test al, 1
mov dword [esp + 0x2c], esi
je 0x41d088
push esi
call fcn.00417b40
add esp, 4
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x20]
push eax
call fcn.0041a5e0
add esp, 4
or eax, edx
jne 0x41d0af
mov eax, 1
cdq
push edx
push eax
push esi
call fcn.0041a950
add esp, 0xc
jmp case.0x41c2ac.13
xor eax, eax
cdq
push edx
push eax
push esi
call fcn.0041a950
add esp, 0xc
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 8]
mov edx, dword [esi + 0x4c]
mov eax, dword [esp + 0x20]
lea ecx, [ebx + ebx*4]
lea esi, [edx + ecx*8]
mov cl, byte [eax + 0x1c]
test cl, 1
mov dword [esp + 0x2c], esi
je 0x41d0ec
push esi
call fcn.00417b40
add esp, 4
jmp case.0x41c2ac.13
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041a5e0
not edx
not eax
push edx
push eax
push esi
call fcn.0041a950
add esp, 0x10
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x20]
test byte [edx + 0x1c], 1
je 0x41d11c
mov eax, dword [ebx + 0xc]
jmp 0x41e79b
mov eax, dword [esp + 0x20]
push eax
call fcn.0041a550
fcomp qword [0x4552e8]
add esp, 4
fnstsw ax
test ah, 0x40
jne 0x41d13d
mov eax, 1
jmp 0x41d13f
xor eax, eax
cmp byte [ebx], 0x45
jne 0x41e79b
xor ecx, ecx
test eax, eax
sete cl
mov eax, ecx
jmp 0x41e79b
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0xc]
test byte [ecx + 0x1c], 1
jne 0x41e7a3
add ecx, 0x28
dec eax
test eax, eax
jle 0x4201ce
test byte [ecx + 0x1c], 1
je 0x41d167
mov ebx, dword [ebx + 8]
mov dword [esp + 0x20], ecx
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x20]
test byte [edx + 0x1c], 1
jne case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 8]
mov ecx, 0xa
mov dword [esp + 0x1c], eax
xor eax, eax
lea edi, [esp + 0x1c8]
mov edx, dword [ebx + 4]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + ecx*8]
mov dword [esp + 0x18], eax
mov cx, word [eax + 0x1c]
and ecx, 0xbf01
or ecx, 1
mov word [eax + 0x1c], cx
mov eax, dword [esi + 0x30]
mov edi, dword [eax + edx*4]
xor eax, eax
cmp dword [edi], eax
je 0x41d292
push edi
call fcn.00425350
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov ecx, dword [edi]
mov dword [esp + 0x34], eax
mov dword [esp + 0x6c], ecx
mov cl, byte [edi + 0x14]
test cl, cl
je 0x41d226
mov dword [esp + 0x78], eax
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x14], ecx
jmp 0x41d2ae
mov edx, dword [edi + 0x58]
mov eax, dword [esi + 0x50]
cmp edx, eax
jne 0x41d247
mov eax, dword [edi + 0x5c]
mov dword [esp + 0x78], eax
mov ecx, dword [edi + 0x68]
mov dword [esp + 0x34], ecx
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x14], ecx
jmp 0x41d2ae
mov al, byte [edi + 0x19]
test al, al
je 0x41d277
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x230]
push edx
push eax
call fcn.00415630
mov ecx, dword [esp + 0x238]
add esp, 8
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 0x44]
mov dword [esp + 0x14], ecx
jmp 0x41d2ae
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x78]
push edx
push eax
call fcn.00420df0
mov ecx, dword [edi + 0x44]
add esp, 8
mov dword [esp + 0x14], ecx
jmp 0x41d2ae
mov edx, dword [edi + 0x2c]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x78], edx
mov ecx, dword [edi + 0x30]
mov edx, dword [edi + 0x44]
mov dword [esp + 0x34], ecx
mov dword [edi + 0x58], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x78]
test eax, eax
je case.0x41c2ac.13
mov ecx, dword [esp + 0x30]
cmp eax, dword [ecx + 0x50]
jg 0x4203fc
mov edx, dword [edi + 0x58]
mov ecx, dword [esi + 0x50]
mov eax, dword [edi + 0x60]
cmp edx, ecx
mov dword [esp + 0x24], eax
jne 0x41d2e4
mov eax, dword [edi + 0x64]
mov dword [esp + 0x54], eax
jmp 0x41d4d5
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x48], 0
lea eax, [eax + ecx*4]
mov dword [edi + 0x64], eax
mov edx, dword [esp + 0x78]
mov dword [esp + 0x54], eax
mov dword [edi + 0x5c], edx
mov eax, dword [esi + 0x50]
mov esi, dword [esp + 0x34]
test esi, esi
mov dword [edi + 0x58], eax
jne 0x41d35a
mov al, byte [edi + 0x19]
test al, al
je 0x41d327
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x48]
push ecx
push edx
call fcn.00420e90
jmp 0x41d336
mov ecx, dword [esp + 0x6c]
lea eax, [esp + 0x48]
push eax
push ecx
call fcn.00420eb0
mov edx, dword [esp + 0x50]
mov esi, eax
mov eax, dword [esp + 0x80]
add esp, 8
cmp edx, eax
jl 0x41d353
mov dword [esp + 0x34], esi
mov dword [edi + 0x68], esi
jmp 0x41d35a
mov dword [edi + 0x68], 0
mov cl, byte [esi]
cmp cl, 0x80
jae 0x41d372
and ecx, 0xff
mov eax, 1
mov dword [esp + 0x7c], ecx
jmp 0x41d38c
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.00414ef0
mov ecx, dword [esp + 0x84]
add esp, 8
and eax, 0xff
and eax, 0xff
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x41d3e8
cmp dword [esp + 0x48], ecx
jge 0x41d3e8
xor esi, esi
xor eax, eax
mov word [esp + 0x1e4], si
mov dword [esp + 0x1d8], esi
mov al, byte [edi + 0x19]
lea edx, [esp + 0x1c8]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x78]
push esi
push ecx
call fcn.00425240
add esp, 0x14
cmp eax, esi
mov dword [esp + 0x10], eax
jne case.0x41c2ac.13
mov esi, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x38]
lea edx, [ecx + esi]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x14]
add eax, esi
test edx, edx
mov dword [esp + 0x10], eax
jle 0x41d48f
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x54]
sub eax, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x38], eax
jmp 0x41d41d
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x44]
jae 0x41d47a
mov dword [eax + esi], ecx
mov al, byte [edx]
cmp al, 0x80
jae 0x41d43e
and eax, 0xff
mov dword [esi], eax
mov eax, 1
jmp 0x41d451
mov ecx, dword [esp + 0x10]
push esi
push ecx
call fcn.00414ef0
add esp, 8
and eax, 0xff
mov ecx, dword [esp + 0x10]
mov edx, dword [esi]
and eax, 0xff
push edx
add ecx, eax
mov dword [esp + 0x14], ecx
call fcn.00417d00
mov ecx, dword [esp + 0x80]
add esp, 4
add ecx, eax
mov dword [esp + 0x7c], ecx
jmp 0x41d481
mov dword [eax + esi], 0
mov eax, dword [esp + 0x14]
add esi, 4
dec eax
mov dword [esp + 0x14], eax
jne 0x41d419
lea eax, [esp + 0x1c8]
push eax
call fcn.004179f0
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
add esp, 4
cmp edx, esi
mov word [esp + 0x1e4], 1
ja 0x41d607
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
jg 0x41d607
cmp edx, esi
jne 0x41d4d5
cmp eax, ecx
jne 0x41d607
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x54]
cmp dword [ecx + esi*4], 0
je 0x41d5a4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x41d524
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00417a20
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
push ebx
mov eax, dword [edx + esi*4]
mov edx, dword [ecx + esi*4]
mov esi, dword [esp + 0x3c]
push eax
add edx, esi
push edx
call fcn.00417d20
mov cl, byte [esp + 0x5c]
add esp, 0x10
mov byte [ebx + 0x1f], cl
jmp 0x41d5c6
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + esi*4]
push ecx
call fcn.00417d00
mov ebx, dword [esp + 0x1c]
lea edx, [esp + 0x1cc]
push ebx
push edx
mov dword [esp + 0x44], eax
call fcn.0041bf10
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x1d4]
xor ecx, ecx
push eax
mov cl, byte [edi + 0x19]
mov eax, dword [esp + 0x64]
push ecx
push edx
mov ecx, dword [eax + esi*4]
mov edx, dword [esp + 0x84]
push ecx
push edx
call fcn.00425240
add esp, 0x20
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x41c2ac.13
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
push ebx
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x1e0]
push edx
push eax
call fcn.00417d20
mov cl, byte [esp + 0x58]
add esp, 0xc
mov byte [ebx + 0x1f], cl
jmp 0x41d5c6
cmp byte [ebx + 1], 0xf8
jne 0x41d5c2
mov edx, dword [ebx + 0x10]
mov ebx, dword [esp + 0x18]
push 0x800
push edx
push ebx
call fcn.004183c0
add esp, 0xc
jmp 0x41d5c6
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1ec]
test eax, eax
je 0x41d5f5
mov ax, word [ebx + 0x1c]
and eax, 0xe7ff
or ah, 2
mov word [ebx + 0x1c], ax
mov ecx, dword [esp + 0x1dc]
mov dword [ebx + 0x14], ecx
mov edx, dword [esp + 0x1ec]
mov dword [ebx + 0x24], edx
push ebx
call fcn.00417920
add esp, 4
mov dword [esp + 0x10], eax
jmp case.0x41c2ac.13
mov dword [esp + 0x10], 0xb
jmp case.0x41c2ac.13
mov eax, dword [ebx + 0x10]
mov edx, dword [esi + 0x4c]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
lea ecx, [eax + eax*4]
lea eax, [ebx + ebx*4]
lea esi, [edx + ecx*8]
mov edi, esi
lea ebx, [esi + eax*8 - 0x28]
cmp esi, ebx
ja case.0x41c2ac.13
test byte [edi + 0x1d], 0x40
je 0x41d64a
push edi
call fcn.00417980
add esp, 4
mov ecx, dword [esp + 0x4c]
mov eax, 0x66666667
push ecx
mov ecx, edi
sub ecx, esi
imul ecx
mov ecx, dword [esp + 0x3c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dl, byte [edx + ecx]
push edx
push edi
call fcn.00425900
add edi, 0x28
add esp, 0xc
cmp edi, ebx
jbe 0x41d63b
jmp case.0x41c2ac.13
xor eax, eax
mov edx, dword [esi + 0x4c]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 8]
lea edi, [edx + ecx*8]
lea eax, [eax + eax*4]
xor ecx, ecx
mov dword [esp + 0x14], edi
mov cl, byte [esi + 0x7f]
lea eax, [edi + eax*8 - 0x28]
cmp edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
ja 0x41d7a2
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41d706
mov edx, dword [esp + 0x4c]
mov ecx, edi
push edx
mov edx, dword [esp + 0x18]
sub ecx, edx
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x20]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dl, byte [edx + ecx]
push edx
push edi
call fcn.00425900
add esp, 0xc
test byte [edi + 0x1d], 0x40
je 0x41d71c
mov eax, dword [edi + 0x18]
test eax, eax
jle 0x41d71c
push edi
call fcn.00417980
add esp, 4
mov eax, dword [esp + 0x18]
push eax
push edi
call fcn.00425440
push eax
mov dword [esp + 0x44], eax
call fcn.00417d00
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x50], eax
cdq
add ecx, eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x44]
adc eax, edx
push 0
push ecx
mov dword [esp + 0xc8], eax
call fcn.00420800
mov ecx, dword [esp + 0x48]
add esp, 0x14
add ecx, eax
test byte [edi + 0x1d], 0x40
mov dword [esp + 0x34], ecx
je 0x41d783
mov edx, dword [edi]
mov eax, dword [esp + 0x54]
add eax, edx
mov dword [esp + 0x54], eax
jmp 0x41d793
mov eax, dword [esp + 0x44]
test eax, eax
je 0x41d793
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x24]
add edi, 0x28
cmp edi, eax
jbe 0x41d6cf
mov eax, dword [esp + 0x34]
cdq
push edx
push eax
call fcn.00420800
mov edi, eax
mov eax, dword [esp + 0x3c]
add eax, edi
mov dword [esp + 0x3c], eax
cdq
push edx
push eax
call fcn.00420800
add esp, 0x10
cmp edi, eax
jge 0x41d7cd
inc dword [esp + 0x34]
mov eax, dword [esp + 0x54]
cdq
mov edi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x38], edi
mov edi, edx
cdq
mov ecx, edx
mov edx, dword [esp + 0x38]
sub eax, edx
mov edx, dword [esp + 0xb0]
sbb ecx, edi
add eax, edx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xb4]
adc ecx, eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x50]
cdq
cmp ecx, edx
jg 0x4203fc
jl 0x41d821
cmp dword [esp + 0xd8], eax
ja 0x4203fc
mov ebx, dword [ebx + 0xc]
mov edx, dword [esi + 0x4c]
mov eax, dword [esp + 0xd8]
push 0
lea ecx, [ebx + ebx*4]
push eax
lea edi, [edx + ecx*8]
push edi
mov dword [esp + 0x38], edi
call fcn.00417710
add esp, 0xc
test eax, eax
jne 0x42041f
mov eax, dword [esp + 0x34]
mov ebx, dword [edi + 0x14]
cmp eax, 0x80
jae 0x41d863
mov byte [ebx], al
mov eax, 1
jmp 0x41d86d
push eax
push ebx
call fcn.00420720
add esp, 8
mov esi, dword [esp + 0x14]
and eax, 0xff
mov edi, eax
mov eax, dword [esp + 0x24]
cmp esi, eax
ja 0x41d8ef
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.00425440
add esp, 8
cmp eax, 0x80
jae 0x41d89f
mov byte [edi + ebx], al
mov eax, 1
jmp 0x41d8ac
lea edx, [edi + ebx]
push eax
push edx
call fcn.00420720
add esp, 8
and eax, 0xff
add esi, 0x28
add edi, eax
mov eax, dword [esp + 0x24]
cmp esi, eax
jbe 0x41d880
mov esi, dword [esp + 0x14]
cmp esi, eax
ja 0x41d8ef
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xd8]
push eax
sub ecx, edi
push esi
lea edx, [edi + ebx]
push ecx
push edx
call fcn.00425520
add edi, eax
mov eax, dword [esp + 0x34]
add esi, 0x28
add esp, 0x10
cmp esi, eax
jbe 0x41d8c6
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xd8]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x54]
test ecx, ecx
mov word [eax + 0x1c], 0x410
mov dword [eax + 0x20], 0
je 0x41d91a
mov dword [eax], ecx
mov word [eax + 0x1c], 0x4410
mov byte [eax + 0x1f], 1
jmp case.0x41c2ac.13
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + edx*4]
lea edx, [esp + 0x180]
push edx
mov eax, dword [ecx]
push eax
call fcn.00424320
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x18c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
add esp, 8
mov dword [eax], ecx
mov word [eax + 0x1c], 4
mov dword [eax + 4], edx
jmp case.0x41c2ac.13
mov al, byte [edi + 0x1c]
test al, al
je 0x41d979
cmp dword [edi + 0x90], 1
jle case.0x41c2ac.13
mov ebx, dword [ebx + 4]
mov ecx, dword [edi + 8]
lea eax, [ebx + ebx*2]
mov eax, dword [ecx + eax*8 + 4]
mov ecx, dword [esi + 0xd4]
test ecx, ecx
jne 0x41d9ad
mov ebx, dword [edi + 0x1dc]
mov edx, dword [edi + 0x1d8]
inc ebx
mov ecx, ebx
mov dword [edi + 0x1dc], ebx
add edx, ecx
mov dword [esi + 0xd4], edx
mov ecx, dword [esi + 0xd4]
push ecx
push eax
call fcn.00420bd0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov edx, dword [ebx + 0x10]
test eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x14], edx
jne 0x41da72
mov eax, dword [edi + 0x94]
test eax, eax
jle 0x41d9f0
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x41dcaa
mov esi, dword [esp + 0x14]
push esi
call fcn.0040e830
mov ebx, eax
lea eax, [ebx + 9]
push eax
push edi
call fcn.0040d5e0
add esp, 0xc
test eax, eax
je case.0x41c2ac.13
lea ecx, [ebx + 1]
lea edi, [eax + 8]
mov edx, ecx
mov dword [eax], edi
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 [esp + 0x30]
mov dl, byte [ecx + 0x1c]
test dl, dl
je 0x41da51
mov edx, dword [ecx + 0x1d4]
mov byte [ecx + 0x1c], 0
mov byte [ecx + 0x1e0], 1
mov dword [eax + 4], edx
mov dword [ecx + 0x1d4], eax
jmp case.0x41c2ac.13
mov edx, dword [ecx + 0x1d8]
inc edx
mov dword [ecx + 0x1d8], edx
mov edx, dword [ecx + 0x1d4]
mov dword [eax + 4], edx
mov dword [ecx + 0x1d4], eax
jmp case.0x41c2ac.13
mov ebx, dword [edi + 0x1d4]
mov dword [esp + 0x18], 0
test ebx, ebx
mov dword [esp + 0x24], ebx
je 0x41daba
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx]
push eax
push ecx
call fcn.0040e850
add esp, 8
test eax, eax
je 0x41dab2
mov ecx, dword [esp + 0x18]
mov ebx, dword [ebx + 4]
inc ecx
test ebx, ebx
mov dword [esp + 0x18], ecx
jne 0x41da88
mov dword [esp + 0x24], ebx
jmp 0x41daba
test ebx, ebx
mov dword [esp + 0x24], ebx
jne 0x41dade
mov edx, dword [esp + 0x14]
add esi, 0x74
push edx
push str.no_such_savepoint:__s
push edi
push esi
call fcn.0041b110
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.0x41c2ac.13
mov eax, dword [edi + 0x94]
test eax, eax
mov eax, dword [esp + 0x54]
jg 0x41dc42
cmp eax, 2
jne 0x41db02
cmp dword [edi + 0x90], 1
jg 0x41dc47
mov ecx, dword [ebx + 4]
test ecx, ecx
jne 0x41db48
mov cl, byte [edi + 0x1e0]
test cl, cl
je 0x41db48
cmp eax, 1
mov dword [esp + 0x44], 1
jne 0x41db50
push esi
mov byte [edi + 0x1c], al
call fcn.00419070
add esp, 4
cmp eax, 5
je 0x420309
mov byte [edi + 0x1e0], 0
mov eax, dword [esi + 0x64]
mov dword [esp + 0x10], eax
jmp 0x41dbcd
mov dword [esp + 0x44], 0
mov ebx, dword [edi + 0x1d8]
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 4]
sub ebx, eax
xor eax, eax
dec ebx
cmp ecx, eax
mov dword [esp + 0x1c], eax
jle 0x41dbaf
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x54]
mov edx, dword [edi + 8]
mov eax, dword [esp + 0x14]
push ebx
push ecx
mov ecx, dword [edx + eax + 4]
push ecx
call fcn.00419a80
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 4]
inc eax
add edx, 0x18
cmp eax, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
jl 0x41db6e
cmp dword [esp + 0x54], 2
jne 0x41dbcd
test byte [edi + 0xc], 0x10
je 0x41dbcd
push edi
call fcn.00425800
push 0
push edi
call fcn.00427610
add esp, 0xc
mov eax, dword [edi + 0x1d4]
mov ecx, dword [esp + 0x24]
cmp eax, ecx
je 0x41dc09
mov edx, dword [eax + 4]
push eax
push edi
mov dword [edi + 0x1d4], edx
call fcn.0040d3d0
mov edx, dword [edi + 0x1d8]
mov eax, dword [edi + 0x1d4]
mov ecx, dword [esp + 0x2c]
add esp, 8
dec edx
cmp eax, ecx
mov dword [edi + 0x1d8], edx
jne 0x41dbdb
cmp dword [esp + 0x54], 1
jne case.0x41c2ac.13
mov eax, dword [esp + 0x24]
push eax
push edi
mov ecx, dword [eax + 4]
mov dword [edi + 0x1d4], ecx
call fcn.0040d3d0
mov eax, dword [esp + 0x4c]
add esp, 8
test eax, eax
jne case.0x41c2ac.13
dec dword [edi + 0x1d8]
jmp case.0x41c2ac.13
cmp eax, 2
jne 0x41dc4e
mov eax, str.rollback
jmp 0x41dc53
mov eax, str.release
push eax
push str.cannot__s_savepoint___SQL_statements_in_progress
add esi, 0x74
push edi
push esi
call fcn.0041b110
add esp, 0x10
mov dword [esp + 0x10], 5
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
test eax, eax
mov dword [esp + 0x38], eax
je 0x41dcc4
mov cl, byte [edi + 0x1c]
test cl, cl
jne 0x41dcc4
test ebx, ebx
je 0x41dc9c
cmp dword [edi + 0x90], 1
jle 0x41dcc4
push str.cannot_rollback_transaction___SQL_statements_in_progress
jmp 0x41dcaa
cmp dword [edi + 0x94], 1
jle 0x41dcc4
push str.cannot_commit_transaction___SQL_statements_in_progress
add esi, 0x74
push edi
push esi
call fcn.0041b110
add esp, 0xc
mov dword [esp + 0x10], 5
jmp case.0x41c2ac.13
xor edx, edx
mov dl, byte [edi + 0x1c]
cmp eax, edx
jne 0x420321
test eax, eax
jne 0x41dce0
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
jmp 0x42006e
test ebx, ebx
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x41dcee
mov eax, str.cannot_commit___no_transaction_is_active
push eax
jmp 0x42006e
mov eax, dword [ebx + 4]
mov ecx, dword [edi + 8]
lea eax, [eax + eax*2]
mov eax, dword [ecx + eax*8 + 4]
test eax, eax
je case.0x41c2ac.13
mov edx, dword [ebx + 8]
push edx
push eax
call fcn.00413040
add esp, 8
cmp eax, 5
mov dword [esp + 0x10], eax
je 0x42037d
test eax, eax
je case.0x41c2ac.13
cmp eax, 8
jne 0x4202ed
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 0xc]
test eax, eax
jge 0x41dd4c
or ecx, 0xffffffff
sub ecx, eax
mov eax, ecx
neg ebx
mov ecx, dword [edi + 8]
lea edx, [esp + 0xf0]
lea eax, [eax + eax*2]
push edx
inc ebx
mov edx, dword [ecx + eax*8 + 4]
push ebx
push edx
call fcn.00416e70
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xfc]
add esp, 0xc
cdq
mov dword [ecx], eax
mov ax, word [ecx + 0x1c]
and eax, 0xbf04
mov dword [ecx + 4], edx
or al, 4
mov word [ecx + 0x1c], ax
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov edx, dword [edi + 8]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x50]
push eax
lea esi, [edx + ecx*8]
call fcn.004250c0
mov ecx, dword [esp + 0x54]
mov eax, dword [ebx + 8]
inc eax
mov edx, dword [ecx]
mov ecx, dword [esi + 4]
push edx
push eax
push ecx
call fcn.00417040
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 8]
add esp, 0x10
test eax, eax
jne 0x41dde0
mov eax, dword [esp + 0x50]
mov edx, dword [esi + 0x14]
mov ecx, dword [eax]
mov dword [edx], ecx
mov eax, dword [edi + 0xc]
or al, 0x10
mov dword [edi + 0xc], eax
jmp 0x41ddf1
cmp eax, 1
jne 0x41ddf1
mov eax, dword [esp + 0x50]
mov edx, dword [esi + 0x14]
mov cl, byte [eax]
mov byte [edx + 0x48], cl
cmp dword [ebx + 4], 1
jne case.0x41c2ac.13
push edi
call fcn.00425800
add esp, 4
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
xor ecx, ecx
lea edx, [eax + eax*2]
mov eax, dword [edi + 8]
mov eax, dword [eax + edx*8 + 4]
cmp eax, ecx
je 0x41dea6
lea ecx, [esp + 0xa0]
push ecx
push 1
push eax
call fcn.00416e70
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x41c2ac.13
mov edx, dword [esp + 0xa0]
mov eax, dword [ebx + 8]
cmp edx, eax
je case.0x41c2ac.13
mov eax, dword [esi + 0x74]
push eax
push edi
call fcn.0040d3d0
push str.database_schema_has_changed
push edi
call fcn.0041aca0
mov dword [esi + 0x74], eax
mov ebx, dword [ebx + 4]
mov edx, dword [edi + 8]
add esp, 0x10
lea ecx, [ebx + ebx*2]
mov eax, dword [edx + ecx*8 + 0x14]
mov ecx, dword [eax]
mov eax, dword [esp + 0xa0]
cmp ecx, eax
je 0x41de90
push ebx
push edi
call fcn.00427610
add esp, 8
push edi
call fcn.00425800
add esp, 4
mov dword [esp + 0x10], 0x11
jmp case.0x41c2ac.13
mov dword [esp + 0x10], ecx
mov dword [esp + 0xa0], ecx
jmp 0x41de3f
mov edi, dword [edi + 8]
xor ecx, ecx
mov edx, dword [ebx + 4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x48], edx
mov edx, dword [ebx + 8]
lea ecx, [ecx + ecx*2]
cmp al, 0xa
mov dword [esp + 0x44], edx
lea ecx, [edi + ecx*8]
mov edi, dword [ecx + 4]
mov dword [esp + 0x24], edi
jne 0x41df00
mov eax, dword [ecx + 0x14]
mov cl, byte [esi + 0x7f]
mov dword [esp + 0x1c], 1
mov al, byte [eax + 0x48]
cmp al, cl
jae 0x41df08
mov byte [esi + 0x7f], al
jmp 0x41df08
mov dword [esp + 0x1c], 0
mov al, byte [ebx + 3]
test al, al
je 0x41df34
lea ecx, [edx + edx*4]
mov edx, dword [esi + 0x4c]
lea edi, [edx + ecx*8]
push edi
mov dword [esp + 0x5c], edi
call fcn.004250c0
mov edi, dword [edi]
add esp, 4
cmp edi, 2
mov dword [esp + 0x44], edi
jl 0x4203b3
mov al, byte [ebx + 1]
cmp al, 0xfa
jne 0x41df5f
mov ecx, dword [esi]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x18], eax
mov edx, dword [ecx + 8]
mov ecx, dword [edx + 0x14]
mov dl, byte [ecx + 0x49]
xor ecx, ecx
mov cx, word [eax + 6]
mov byte [eax + 4], dl
mov eax, ecx
inc eax
mov dword [esp + 0x14], eax
jmp 0x41df6a
cmp al, 0xf2
jne 0x41df6a
mov edx, dword [ebx + 0x10]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
push 1
push eax
push ecx
push edx
push esi
call fcn.00425820
mov edi, eax
add esp, 0x14
test edi, edi
je 0x42041f
mov eax, dword [edi]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
mov byte [edi + 0x14], 1
call fcn.00420c30
mov edx, dword [esp + 0x2c]
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
mov dword [edi + 0x40], edx
je 0x41dff9
cmp eax, 5
je 0x420391
cmp eax, 0x10
jne 0x4202ed
mov dl, byte [ebx + 1]
mov dword [edi], 0
cmp dl, 0xfa
mov dword [esp + 0x10], 0
setne al
test al, al
mov byte [edi + 0x18], al
sete al
mov byte [edi + 0x19], al
jmp case.0x41c2ac.13
mov ecx, dword [edi]
push ecx
call fcn.004242f0
add esp, 4
test al, 0xf0
jne 0x4203b3
mov ecx, eax
and ecx, 7
cmp ecx, 5
je 0x41e01f
cmp ecx, 2
jne 0x4203b3
mov dl, al
and dl, 1
shr eax, 1
mov cl, dl
and al, 1
test cl, cl
mov byte [edi + 0x18], dl
mov byte [edi + 0x19], al
je 0x41e03e
cmp byte [ebx + 1], 0xfa
je 0x4203b3
test al, al
je case.0x41c2ac.13
cmp byte [ebx + 1], 0xfa
jne 0x4203b3
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
push 1
push 0xffffffffffffffff
push ecx
push eax
push esi
call fcn.00425820
mov edi, eax
add esp, 0x14
test edi, edi
je 0x42041f
mov byte [edi + 0x14], 1
mov edx, dword [0x451e84]
lea eax, [edi + 0x28]
push eax
mov eax, dword [esp + 0x34]
push edx
push 0x1f4
push 1
push 0
push eax
call fcn.0044b140
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41e14a
mov ecx, dword [edi + 0x28]
push 1
push ecx
call fcn.00413040
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41e14a
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x41e12d
mov eax, dword [edi + 0x28]
lea edx, [esp + 0xe4]
push 2
push edx
push eax
call fcn.00423c60
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41e119
mov ecx, dword [edi]
mov edx, dword [ebx + 0x10]
mov eax, dword [esp + 0xe4]
push ecx
mov ecx, dword [edi + 0x28]
push edx
push 1
push eax
push ecx
call fcn.00420c30
mov ebx, dword [ebx + 0x10]
mov dword [esp + 0x24], eax
mov dword [edi + 0x40], ebx
mov edx, dword [esi]
add esp, 0x14
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x14]
mov dl, byte [ecx + 0x49]
mov byte [ebx + 4], dl
mov byte [edi + 0x18], 0
mov al, byte [edi + 0x18]
test al, al
sete dl
mov byte [edi + 0x19], dl
jmp case.0x41c2ac.13
mov eax, dword [edi]
mov ecx, dword [edi + 0x28]
push eax
push 0
push 1
push 1
push ecx
call fcn.00420c30
add esp, 0x14
mov dword [esp + 0x10], eax
mov byte [edi + 0x18], 1
mov al, byte [edi + 0x18]
test al, al
sete dl
mov byte [edi + 0x19], dl
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 4]
push 0
push 0xffffffffffffffff
push ecx
push eax
push esi
call fcn.00425820
add esp, 0x14
test eax, eax
je 0x42041f
mov byte [eax + 0x14], 1
mov byte [eax + 0x15], 1
mov dl, byte [ebx + 8]
mov byte [eax + 0x18], 1
mov byte [eax + 0x16], dl
mov byte [eax + 0x19], 0
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ebx*4]
push ecx
push esi
call fcn.00418d80
mov edx, dword [esi + 0x30]
add esp, 8
mov dword [edx + ebx*4], 0
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov edi, dword [ecx + eax*4]
mov ecx, dword [edi]
test ecx, ecx
je 0x41e4a3
mov al, byte [edi + 0x18]
mov byte [edi + 0x14], 0
test al, al
je 0x41e38f
mov edx, dword [esp + 0x50]
push edx
call fcn.0041c020
mov eax, dword [esp + 0x54]
push eax
call fcn.0041a5e0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x78], eax
mov byte [edi + 0x11], 0
add esp, 8
mov ax, word [ecx + 0x1c]
mov dword [esp + 0x74], edx
test al, 4
jne 0x41e345
test al, 8
je 0x41e7a3
mov eax, dword [esp + 0x70]
xor edx, edx
cmp eax, edx
jne 0x41e2e9
mov ecx, dword [esp + 0x74]
mov eax, 0x80000000
cmp ecx, eax
jne 0x41e2e9
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x138], edx
mov dword [esp + 0x13c], eax
fild qword [esp + 0x138]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
je 0x41e267
fld qword [ecx + 8]
fcomp qword [0x4552e8]
fnstsw ax
test ah, 0x41
jne 0x41e2ed
fld qword [ecx + 8]
fcomp qword [0x4552e8]
mov dword [esp + 0x64], 1
fnstsw ax
test ah, 1
mov eax, dword [esp + 0x24]
je 0x41e2b6
cmp eax, 0x7b
je 0x41e291
cmp eax, 0x6e
jne 0x41e7a3
mov eax, dword [edi]
lea edx, [esp + 0x64]
push edx
push eax
call fcn.00420ed0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov eax, dword [esp + 0x64]
jmp 0x41e79b
cmp eax, 0x4f
je 0x41e2c4
cmp eax, 0x38
jne 0x41e7a3
mov edx, dword [edi]
lea ecx, [esp + 0x64]
push ecx
push edx
call fcn.00420f70
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov eax, dword [esp + 0x64]
jmp 0x41e79b
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x24]
cmp eax, 0x4f
je 0x41e322
cmp eax, 0x6e
je 0x41e322
fild qword [esp + 0x70]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 0x41
jne 0x41e345
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
or eax, 0xffffffff
add edx, eax
adc ecx, eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
jmp 0x41e345
fild qword [esp + 0x70]
fcomp qword [ecx + 8]
fnstsw ax
test ah, 1
je 0x41e345
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
add ecx, 1
adc eax, edx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
lea eax, [esp + 0x64]
push eax
mov eax, dword [edi]
push 0
push ecx
push edx
push 0
push eax
call fcn.00415c90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x41e409
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [edi + 8], ecx
mov byte [edi + 0x11], 1
mov dword [edi + 0xc], edx
jmp 0x41e409
mov eax, dword [edi + 0x40]
mov dx, word [ebx + 0x10]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x7b
mov word [esp + 0x100], dx
je 0x41e3bd
cmp eax, 0x38
mov word [esp + 0x102], 0
jne 0x41e3c7
mov word [esp + 0x102], 8
mov eax, dword [ebx + 0xc]
mov edx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0x108], eax
push 0
push 0
lea eax, [esp + 0x108]
push 0
push eax
push ecx
call fcn.00415c90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov byte [edi + 0x11], al
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp ecx, 0x6e
mov byte [edi + 0x17], 0
mov dword [edi + 0x58], edx
je 0x41e467
cmp ecx, 0x7b
je 0x41e467
cmp eax, edx
jg 0x41e43f
jne 0x41e42b
cmp ecx, 0x4f
je 0x41e43f
mov ecx, dword [edi]
push ecx
call fcn.00421030
add esp, 4
mov dword [esp + 0x64], eax
jmp 0x41e79b
mov eax, dword [edi]
lea edx, [esp + 0x64]
push edx
push eax
call fcn.004211b0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov byte [edi + 0x11], al
mov eax, dword [esp + 0x64]
jmp 0x41e79b
cmp eax, edx
jl 0x41e47b
jne 0x41e472
cmp ecx, 0x7b
je 0x41e47b
mov dword [esp + 0x64], edx
jmp case.0x41c2ac.13
mov edx, dword [edi]
lea ecx, [esp + 0x64]
push ecx
push edx
call fcn.00421040
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov byte [edi + 0x11], al
mov eax, dword [esp + 0x64]
jmp 0x41e79b
mov al, byte [edi + 0x15]
test al, al
jne case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov esi, dword [ecx + eax*4]
cmp dword [esi], 0
je case.0x41c2ac.13
mov edx, dword [esp + 0x58]
mov byte [esi + 0x14], 0
push edx
call fcn.0041a5e0
mov dword [esi + 0x20], eax
add esp, 4
mov dword [esi + 0x24], edx
mov byte [esi + 0x11], 0
mov byte [esi + 0x17], 1
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x30]
xor eax, eax
mov edi, dword [edx + ecx*4]
cmp dword [edi], 0
je 0x41e58c
lea eax, [esp + 0x278]
push 0xc0
push eax
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov eax, dword [edi + 0x40]
push ecx
push edx
push eax
call fcn.00417b90
add esp, 0x14
mov dword [esp + 0x38], eax
test eax, eax
je 0x42041f
cmp byte [ebx], 0x80
jne 0x41e53f
or byte [eax + 6], 0x10
mov edx, dword [edi]
lea ecx, [esp + 0x114]
push ecx
push 0
push 0
push 0
push eax
push edx
call fcn.00415c90
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x50]
push eax
call fcn.00417f60
mov eax, dword [esp + 0x2c]
add esp, 0x1c
test eax, eax
jne case.0x41c2ac.13
mov ecx, dword [esp + 0x114]
xor eax, eax
test ecx, ecx
sete al
mov byte [edi + 0x17], 0
mov dword [edi + 0x58], 0
cmp byte [ebx], 0x80
je 0x41e79b
test eax, eax
jne case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 4]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x38], ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
push edi
lea ecx, [eax + edx*8]
mov dword [esp + 0x20], ecx
call fcn.004250c0
mov edx, dword [edi]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x10c], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x110], eax
add esp, 4
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x18], eax
je case.0x41c2ac.13
lea eax, [esp + 0x278]
push 0xc0
push eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
mov eax, dword [esp + 0x1c]
push ecx
push edx
mov ecx, dword [eax + 0x40]
push ecx
call fcn.00417b90
mov edi, eax
add esp, 0x14
test edi, edi
je 0x42041f
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
or byte [edi + 6], 4
lea eax, [esp + 0x88]
push eax
push 0
push 0
push 0
push edi
push ecx
mov dword [edx + 0x58], 0
call fcn.00415c90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4203a5
mov eax, dword [esp + 0x88]
test eax, eax
jge 0x41e6ac
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x88]
push edx
push eax
call fcn.00421040
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x90]
add esp, 8
test eax, eax
je 0x41e6ac
mov ebx, dword [ebx + 8]
push edi
dec ebx
mov dword [esp + 0x2c], ebx
call fcn.00417f60
add esp, 4
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x88]
push ecx
push edi
push edx
call fcn.00425750
push edi
mov dword [esp + 0x20], eax
call fcn.00417f60
mov eax, dword [esp + 0x20]
add esp, 0x10
test eax, eax
jne 0x4202ed
mov eax, dword [esp + 0x88]
test eax, eax
jg 0x41e7a3
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x148]
push eax
push ecx
call fcn.004255f0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov ecx, dword [esp + 0x148]
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x14c]
cmp ecx, eax
jne 0x41e72a
cmp edx, dword [esp + 0x10c]
je 0x41e7a3
mov eax, dword [esp + 0x50]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x41c2ac.13
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov esi, dword [eax + edx*4]
mov eax, dword [esi]
test eax, eax
je 0x41e7b0
mov edi, dword [esp + 0x50]
lea edx, [esp + 0xd4]
push edx
push 0
mov edx, dword [edi + 4]
mov ecx, dword [edi]
push edx
push ecx
push 0
push eax
mov dword [esp + 0xec], 0
call fcn.00415c90
mov dword [esp + 0x28], eax
mov eax, dword [edi]
mov dword [esi + 8], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [edi + 4]
add esp, 0x18
test eax, eax
sete dl
mov dword [esi + 0xc], ecx
mov byte [esi + 0x11], dl
mov byte [esi + 0x14], 0
mov dword [esi + 0x58], 0
test eax, eax
je case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov al, byte [esi + 0x15]
test al, al
jne case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov edx, dword [eax + ebx*4]
mov eax, dword [edx + 0x48]
mov dword [ecx], eax
mov edx, dword [edx + 0x4c]
mov dword [ecx + 4], edx
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ebx*4]
mov ebx, dword [eax + 0x48]
add ebx, 1
mov dword [eax + 0x48], ebx
mov edi, dword [eax + 0x4c]
adc edi, 0
mov dword [eax + 0x4c], edi
jmp 0x41f492
mov edx, dword [esi + 0x30]
xor eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 4]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
test eax, eax
je 0x41ea7b
xor ecx, ecx
push eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], ecx
call fcn.004242f0
and eax, 3
add esp, 4
cmp al, 1
jne 0x4203b3
mov eax, dword [esp + 0x34]
mov cl, byte [eax + 0x13]
test cl, cl
jne 0x41e97c
mov ecx, eax
mov edx, dword [ecx]
push edx
call fcn.00420de0
mov ecx, eax
add esp, 4
or ecx, edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
jne 0x41e8e0
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x24]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00420f70
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41e897
mov eax, 1
xor edx, edx
mov dword [esp + 0x5c], eax
jmp 0x41e8dc
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x5c]
push edx
mov ecx, dword [eax]
push ecx
call fcn.00415630
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
add esp, 8
cmp eax, 0xffffffff
jne 0x41e8d2
cmp edx, 0x7fffffff
jne 0x41e8d2
mov edx, dword [esp + 0x34]
mov byte [edx + 0x13], 1
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
jmp 0x41e8e0
add eax, 1
mov dword [esp + 0x5c], eax
adc edx, 0
mov dword [esp + 0x60], edx
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x41e950
mov ecx, dword [esi + 0x4c]
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*8]
push ebx
call fcn.004250c0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
add esp, 4
cmp eax, 0xffffffff
jne 0x41e90f
cmp ecx, 0x7fffffff
je 0x4203c0
mov edx, dword [esp + 0x34]
cmp byte [edx + 0x13], 0
jne 0x4203c0
mov edx, dword [esp + 0x60]
add eax, 1
adc ecx, 0
cmp edx, ecx
jg 0x41e93b
jl 0x41e933
cmp dword [esp + 0x5c], eax
jae 0x41e93b
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x5c]
mov dword [ebx], eax
mov ecx, dword [esp + 0x60]
mov dword [ebx + 4], ecx
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
cmp edx, 0x7fffffff
jg 0x41e967
jl 0x41e95f
cmp eax, 0xffffffff
jae 0x41e967
add eax, 1
adc edx, 0
jmp 0x41e96b
xor eax, eax
xor edx, edx
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [edx]
push eax
call fcn.00420da0
add esp, 0xc
mov ecx, dword [esp + 0x34]
mov al, byte [ecx + 0x13]
test al, al
je 0x41ea64
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
xor ebx, ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x41e9ca
mov ecx, eax
and ecx, 0xffffff
cmp ecx, eax
jne 0x41e9c6
cmp ebx, edx
jne 0x41e9c6
add eax, 1
adc edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
jmp 0x41ea00
mov ebx, dword [esp + 0x14]
lea edx, [esp + 0x5c]
push edx
push 8
call fcn.0040e670
add esp, 8
cmp ebx, 5
jge 0x41e9f8
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
and eax, 0xffffff
and edx, 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
jmp 0x41ea00
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
mov ecx, eax
or ecx, edx
je 0x41ea31
lea ecx, [esp + 0x24]
push ecx
push 0
push edx
mov edx, dword [esp + 0x40]
push eax
push 0
mov eax, dword [edx]
push eax
call fcn.00415c90
mov edx, dword [esp + 0x78]
add esp, 0x18
inc ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], ebx
cmp ebx, 0x64
jge 0x41ea4a
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x41ea4a
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x41e99f
mov dword [edi + 0x38], eax
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [edi + 0x3c], edx
jne 0x41ea64
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4203c0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov byte [eax + 0x11], 0
mov byte [eax + 0x17], 0
mov dword [eax + 0x58], 0
mov dx, word [ecx + 0x1c]
mov eax, dword [esp + 0x5c]
and edx, 0xbf04
mov dword [ecx], eax
or edx, 4
mov word [ecx + 0x1c], dx
mov edx, dword [esp + 0x60]
mov dword [ecx + 4], edx
jmp case.0x41c2ac.13
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 8]
mov eax, dword [edx + 0x4c]
lea ecx, [ecx + ecx*4]
mov edi, dword [edx + 0x30]
lea esi, [eax + ecx*8]
mov ecx, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
mov ecx, dword [ebx + 4]
mov edi, dword [edi + ecx*4]
mov ecx, dword [eax]
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0xac], ecx
mov cl, byte [ebx + 3]
test cl, 1
mov dword [esp + 0x1c], edi
je 0x41eae4
inc dword [edx + 0x84]
test byte [ebx + 3], 2
je 0x41eaf9
mov ecx, dword [esp + 0x30]
mov edx, dword [eax]
mov dword [ecx + 0x30], edx
mov eax, dword [eax + 4]
mov dword [ecx + 0x34], eax
mov ax, word [esi + 0x1c]
test al, 1
je 0x41eb09
xor ecx, ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
mov cl, byte [edi + 0x15]
test cl, cl
je 0x41ebcc
mov al, byte [edi + 0x16]
test al, al
jne 0x41eb2c
mov ecx, dword [edi + 0x30]
mov edx, dword [esp + 0x30]
push ecx
push edx
call fcn.0040d3d0
add esp, 8
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], ecx
mov eax, dword [esi + 0x18]
mov dword [edi + 0x2c], eax
mov ecx, dword [esi + 0x14]
cmp ecx, dword [esi + 0x24]
je 0x41eba5
mov dl, byte [edi + 0x16]
test dl, dl
jne 0x41eba5
add eax, 2
push eax
call fcn.0040d170
add esp, 4
mov dword [edi + 0x30], eax
test eax, eax
je 0x42041c
mov edx, dword [esp + 0x1c]
mov esi, dword [esi + 0x14]
mov edi, eax
mov ecx, dword [edx + 0x2c]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [edx + 0x2c]
mov eax, dword [edx + 0x30]
mov edi, dword [esp + 0x1c]
mov byte [ecx + eax], 0
mov ecx, dword [edx + 0x2c]
mov edx, dword [edx + 0x30]
mov byte [ecx + edx + 1], 0
mov byte [edi + 0x14], 0
jmp 0x41ec22
mov al, byte [edi + 0x16]
mov dword [edi + 0x30], ecx
test al, al
jne 0x41ebc6
mov ax, word [esi + 0x1c]
mov dword [esi + 0x24], 0
and eax, 0xfbff
or ah, 0x10
mov word [esi + 0x1c], ax
mov byte [edi + 0x14], 0
jmp 0x41ec22
test ah, 0x40
je 0x41ebd9
mov ecx, dword [esi]
mov dword [esp + 0x1c], ecx
jmp 0x41ebe1
mov dword [esp + 0x1c], 0
mov edx, dword [edi]
push 0
push 0
push edx
call fcn.00420da0
mov al, byte [ebx + 3]
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0x18]
and eax, 8
push eax
mov eax, dword [esi + 0x14]
push ecx
mov ecx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0xc0]
push eax
mov eax, dword [edi]
push ecx
push edx
push 0
push eax
call fcn.00421390
add esp, 0x2c
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov byte [edi + 0x11], 0
test eax, eax
mov byte [edi + 0x17], 0
mov dword [edi + 0x58], 0
jne case.0x41c2ac.13
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx + 0xbc]
test ecx, ecx
je case.0x41c2ac.13
mov eax, dword [ebx + 0x10]
test eax, eax
je case.0x41c2ac.13
mov edx, dword [esp + 0xac]
mov edi, dword [edi + 4]
push edx
mov edx, dword [esp + 0xac]
push edx
push eax
mov eax, dword [esp + 0x3c]
lea edx, [edi + edi*2]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xb8]
mov edx, dword [esi + edx*8]
push edx
mov dl, byte [ebx + 3]
and dl, 4
neg dl
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
add esp, 0x18
jmp case.0x41c2ac.13
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov eax, dword [eax + edx*4]
mov edx, dword [edi + 0xbc]
cmp edx, ecx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x24], eax
je 0x41ecde
cmp dword [ebx + 0x10], ecx
je 0x41ecde
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
mov eax, dword [esp + 0x24]
push eax
call fcn.00425350
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov ecx, dword [esp + 0x24]
push eax
push eax
mov edx, dword [ecx]
push edx
call fcn.00420da0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
call fcn.00423860
mov edx, dword [esp + 0x34]
add esp, 0x10
test eax, eax
mov dword [esp + 0x10], eax
mov dword [edx + 0x58], 0
jne 0x41ed68
mov ecx, dword [edi + 0xbc]
test ecx, ecx
je 0x41ed68
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x41ed68
mov edx, dword [esp + 0xd0]
push edx
mov edx, dword [esp + 0xd0]
push edx
push eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 4]
lea edx, [eax + eax*2]
mov eax, dword [edi + 8]
mov edx, dword [eax + edx*8]
mov eax, dword [edi + 0xb8]
push edx
push 9
push eax
call ecx
add esp, 0x18
test byte [ebx + 8], 1
je case.0x41c2ac.13
inc dword [esi + 0x84]
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
test eax, eax
je 0x41ed94
mov ecx, dword [esi + 0x84]
push ecx
push edi
call fcn.00419fe0
add esp, 8
mov dword [esi + 0x84], 0
jmp case.0x41c2ac.13
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea ecx, [eax + edx*8]
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov dword [esp + 0x2c], ecx
mov ebx, dword [eax + edx*4]
push ebx
mov ecx, dword [ebx]
mov dword [esp + 0x1c], ecx
call fcn.00425350
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov al, byte [ebx + 0x19]
test al, al
je 0x41ee22
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x140]
push edx
push eax
call fcn.00415630
mov eax, dword [edi + 0x50]
mov ecx, dword [esp + 0x14c]
cdq
add esp, 8
cmp ecx, edx
mov ecx, dword [esp + 0x140]
jg 0x4203fc
jl 0x41ee17
cmp ecx, eax
ja 0x4203fc
mov eax, ecx
mov dword [esp + 0x80], eax
jmp 0x41ee49
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x80]
push edx
push eax
call fcn.00420df0
mov eax, dword [esp + 0x88]
mov ecx, dword [edi + 0x50]
add esp, 8
cmp eax, ecx
jg 0x4203fc
mov edi, dword [esp + 0x2c]
push 0
push eax
push edi
call fcn.00417710
add esp, 0xc
test eax, eax
jne 0x42041f
mov dx, word [edi + 0x1c]
mov ecx, dword [esp + 0x80]
and edx, 0xbf10
mov dword [edi + 0x18], ecx
or edx, 0x10
mov word [edi + 0x1c], dx
mov al, byte [ebx + 0x19]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x18]
test al, al
mov eax, dword [edi + 0x14]
push eax
push ecx
push 0
push edx
je 0x41eeab
call fcn.00415760
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [edi + 0x1f], 1
jmp case.0x41c2ac.13
call fcn.00420e40
add esp, 0x10
mov dword [esp + 0x10], eax
mov byte [edi + 0x1f], 1
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov edi, dword [ecx + eax*4]
push edi
call fcn.00425350
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov al, byte [edi + 0x11]
test al, al
je 0x41eefb
mov edx, dword [edi + 8]
mov dword [esp + 0xb8], edx
mov eax, dword [edi + 0xc]
mov dword [esp + 0xbc], eax
jmp 0x41ef36
mov al, byte [edi + 0x15]
test al, al
je 0x41ef18
mov ecx, dword [edi + 0x38]
mov dword [esp + 0xb8], ecx
mov edx, dword [edi + 0x3c]
mov dword [esp + 0xbc], edx
jmp 0x41ef36
mov al, byte [edi + 0x14]
test al, al
jne case.0x41c2ac.13
mov ecx, dword [edi]
lea eax, [esp + 0xb8]
push eax
push ecx
call fcn.00415630
add esp, 8
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov dword [eax], edx
mov dx, word [eax + 0x1c]
and edx, 0xbf04
mov dword [eax + 4], ecx
or edx, 4
mov word [eax + 0x1c], dx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + eax*4]
mov byte [eax + 0x14], 1
mov byte [eax + 0x11], 0
mov eax, dword [eax]
test eax, eax
je case.0x41c2ac.13
push eax
call fcn.00415610
add esp, 4
jmp case.0x41c2ac.13
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
lea ecx, [esp + 0xc4]
mov esi, dword [eax + edx*4]
push ecx
mov eax, dword [esi]
push eax
call fcn.00420f70
mov dl, byte [esp + 0xcc]
mov dword [esp + 0x18], eax
mov byte [esi + 0x14], dl
mov byte [esi + 0x17], 0
mov byte [esi + 0x11], 0
mov dword [esi + 0x58], 0
mov eax, dword [esp + 0xcc]
add esp, 8
test eax, eax
je case.0x41c2ac.13
mov ebx, dword [ebx + 8]
test ebx, ebx
jle case.0x41c2ac.13
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
inc dword [esi + 0xc8]
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
je 0x41f047
lea edx, [esp + 0x8c]
push edx
push eax
call fcn.00420ed0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x94]
add esp, 8
mov byte [esi + 0x17], 0
test eax, eax
sete al
mov byte [esi + 0x12], al
mov dword [esi + 0x58], 0
mov byte [esi + 0x11], 0
mov cl, byte [esp + 0x8c]
mov byte [esi + 0x14], cl
mov eax, dword [esp + 0x8c]
jmp 0x41e79b
mov dword [esp + 0x8c], 1
mov cl, byte [esp + 0x8c]
mov byte [esi + 0x14], cl
mov eax, dword [esp + 0x8c]
jmp 0x41e79b
mov eax, dword [edi + 0xd8]
test eax, eax
jne 0x4203cd
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov edi, dword [eax + edx*4]
test edi, edi
je case.0x41c2ac.13
mov eax, dword [edi]
mov dword [esp + 0x90], 1
cmp byte [ebx], 0x6b
jne 0x41f0a9
lea ecx, [esp + 0x90]
push ecx
push eax
call fcn.00421040
jmp 0x41f0b7
lea edx, [esp + 0x90]
push edx
push eax
call fcn.004211b0
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x98]
mov byte [edi + 0x14], al
mov dword [edi + 0x58], 0
mov eax, dword [esp + 0x98]
add esp, 8
test eax, eax
jne 0x41f100
mov eax, dword [ebx + 8]
mov bl, byte [ebx + 3]
dec eax
test bl, bl
mov dword [esp + 0x28], eax
je 0x41f100
and ebx, 0xff
mov ecx, dword [esi + ebx*4 + 0xc0]
lea eax, [esi + ebx*4 + 0xc0]
inc ecx
mov dword [eax], ecx
mov byte [edi + 0x11], 0
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x30]
mov edi, dword [edx + ecx*4]
mov eax, dword [edi]
test eax, eax
mov dword [esp + 0x38], eax
je case.0x41c2ac.13
mov eax, dword [esp + 0x58]
mov esi, eax
test byte [eax + 0x1d], 0x40
je 0x41f141
push esi
call fcn.00417980
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x41c2ac.13
mov edx, dword [ebx + 0xc]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
push edx
push 0
push 0
cdq
push 0x45e904
push edx
push eax
mov eax, dword [esp + 0x50]
push ecx
push eax
call fcn.00421390
add esp, 0x20
mov dword [esp + 0x10], eax
mov dword [edi + 0x58], 0
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x30]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x38], eax
mov edi, dword [eax]
test edi, edi
je case.0x41c2ac.13
mov cx, word [ebx + 0xc]
mov eax, dword [eax + 0x40]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x124], eax
mov eax, dword [esi + 0x4c]
mov word [esp + 0x128], cx
lea edx, [ebx + ebx*4]
mov word [esp + 0x12a], 0
lea ecx, [eax + edx*8]
lea edx, [esp + 0xec]
push edx
push 0
push 0
lea eax, [esp + 0x130]
push 0
push eax
push edi
mov dword [esp + 0x144], ecx
call fcn.00415c90
add esp, 0x18
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41f1fe
mov eax, dword [esp + 0xec]
test eax, eax
jne 0x41f1fe
push edi
call fcn.00423860
add esp, 4
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x58], 0
jmp case.0x41c2ac.13
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax]
test ecx, ecx
je case.0x41c2ac.13
mov dl, byte [eax + 0x14]
test dl, dl
jne case.0x41c2ac.13
lea edx, [esp + 0x130]
push edx
push ecx
call fcn.004255f0
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4202ed
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x130]
mov cx, word [eax + 0x1c]
and ecx, 0xbf04
or ecx, 4
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x134]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp case.0x41c2ac.13
mov edx, dword [ebx + 4]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + edx*4]
cmp dword [ecx], 0
je case.0x41c2ac.13
mov edx, dword [ecx + 0x40]
mov dword [esp + 0x118], edx
mov ax, word [ebx + 0x10]
mov word [esp + 0x11c], ax
mov dl, byte [ebx + 3]
neg dl
sbb edx, edx
and edx, 8
add edx, 4
mov word [esp + 0x11e], dx
mov eax, dword [ebx + 0xc]
mov edx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [esp + 0x9c]
mov dword [esp + 0x120], eax
lea eax, [esp + 0x118]
push edx
push eax
push ecx
call fcn.00425750
mov dword [esp + 0x1c], eax
mov al, byte [ebx]
add esp, 0xc
cmp al, 0x2a
mov eax, dword [esp + 0x9c]
jne 0x41f2f4
neg eax
jmp 0x41f2f5
inc eax
test eax, eax
mov dword [esp + 0x9c], eax
jle case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [edi + 0x8c]
xor ecx, ecx
test eax, eax
je 0x41f357
cmp dword [eax + 0x44], 0xbdf20da3
jne 0x41f337
cmp byte [eax + 0x80], 2
jae 0x41f337
mov edx, dword [eax + 0x60]
test edx, edx
jl 0x41f337
inc ecx
mov eax, dword [eax + 8]
test eax, eax
jne 0x41f31d
cmp ecx, 1
jle 0x41f357
mov dword [esp + 0x10], 6
mov dword [esi + 0x68], 2
jmp case.0x41c2ac.13
mov esi, dword [ebx + 0xc]
mov eax, dword [edi + 8]
mov edx, dword [ebx + 4]
lea ecx, [esp + 0xc0]
lea esi, [esi + esi*2]
push ecx
shl esi, 3
push edx
mov ecx, dword [esi + eax + 4]
push ecx
call fcn.004240a0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xcc]
add esp, 0xc
mov dx, word [ecx + 0x1c]
and edx, 0xbf04
or edx, 4
mov word [ecx + 0x1c], dx
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [ecx + 4], edx
jne case.0x41c2ac.13
mov eax, dword [esp + 0xc0]
test eax, eax
je case.0x41c2ac.13
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 8]
push ecx
add esi, edx
push eax
push esi
call fcn.00427b60
add esp, 0xc
jmp case.0x41c2ac.13
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
neg edx
sbb edx, edx
lea eax, [esp + 0x1c]
and edx, eax
mov eax, dword [ebx + 8]
push edx
mov dword [esp + 0x20], 0
lea edx, [eax + eax*2]
mov eax, dword [edi + 8]
push ecx
mov ecx, dword [eax + edx*8 + 4]
push ecx
call fcn.00423ed0
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0xc]
add esp, 0xc
test eax, eax
je case.0x41c2ac.13
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x84]
add edx, eax
mov dword [esi + 0x84], edx
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jle case.0x41c2ac.13
mov ecx, dword [esi + 0x4c]
lea edx, [ebx + ebx*4]
mov esi, dword [ecx + edx*8]
lea ecx, [ecx + edx*8]
cdq
add esi, eax
mov dword [ecx], esi
mov eax, dword [ecx + 4]
adc eax, edx
mov dword [ecx + 4], eax
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 4]
mov ecx, dword [edi + 8]
sub al, 0x36
mov dword [esp + 0x1c], 0
neg al
sbb eax, eax
lea edx, [ebx + ebx*2]
and al, 0xfd
lea ecx, [ecx + edx*8]
add eax, 5
push eax
lea edx, [esp + 0x20]
mov eax, dword [ecx + 4]
push edx
push eax
call fcn.00423c60
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [esp + 0x2c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dx, word [ecx + 0x1c]
and edx, 0xbf04
or edx, 4
mov word [ecx + 0x1c], dx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
push edi
mov dword [esp + 0x18], eax
call fcn.00420a40
mov eax, dword [ebx + 8]
add esp, 4
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x41f4dc
mov edx, dword [edi + 8]
lea ecx, [eax + eax*2]
mov ecx, dword [edx + ecx*8 + 0x14]
mov dl, byte [ecx + 0x4a]
and dl, 1
cmp dl, 1
jne 0x41f586
cmp eax, 1
mov eax, str.sqlite_temp_master
je 0x41f4eb
mov eax, str.sqlite_master
mov ecx, dword [ebx + 4]
lea edx, [esi + 0x74]
mov dword [esp + 0x15c], ecx
mov ecx, dword [ebx + 0x10]
push ecx
push eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x168], edx
mov dword [esp + 0x160], edi
lea edx, [eax + eax*2]
mov eax, dword [edi + 8]
mov ecx, dword [eax + edx*8]
push ecx
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s
push edi
call fcn.00419890
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x41f537
mov dword [esp + 0x10], 7
jmp 0x41f586
lea edx, [esp + 0x158]
push 0
push edx
push fcn.00429f80
push ebx
push edi
mov byte [edi + 0x80], 1
mov dword [esp + 0x178], 0
call fcn.00429990
add esp, 0x14
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41f575
mov eax, dword [esp + 0x164]
mov dword [esp + 0x10], eax
push ebx
push edi
call fcn.0040d3d0
add esp, 8
mov byte [edi + 0x80], 0
push edi
call fcn.00420b10
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, 7
je 0x42041f
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 4]
push ebx
push edi
call fcn.004267b0
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
push ecx
push edx
push edi
call fcn.004277a0
add esp, 0xc
jmp case.0x41c2ac.13
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 4]
push eax
push ecx
push edi
call fcn.004271f0
add esp, 0xc
jmp case.0x41c2ac.13
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
push edx
push eax
push edi
call fcn.0042b760
add esp, 0xc
jmp case.0x41c2ac.13
mov eax, dword [ebx + 8]
mov dword [esp + 0x24], eax
lea ecx, [eax*4 + 4]
push ecx
push edi
call fcn.0040d5e0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x42041f
mov ecx, dword [ebx + 0xc]
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x48], 0
lea edx, [ecx + ecx*4]
mov ecx, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea edi, [eax + edx*8]
lea ecx, [eax + ecx*8]
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x20], ecx
jle 0x41f68a
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x14]
push eax
call fcn.0041a5e0
mov ecx, dword [esp + 0x20]
add esp, 4
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 0x28
add ecx, 4
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], eax
jne 0x41f65a
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x84]
mov dword [eax + ecx*4], 0
mov ecx, dword [edi]
push edx
mov edx, dword [esp + 0x28]
push ecx
push edx
push eax
xor eax, eax
mov al, byte [ebx + 3]
mov ebx, dword [esp + 0x40]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*2]
mov edx, dword [ecx + eax*8 + 4]
push edx
call fcn.00424440
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
push eax
push ebx
call fcn.0040d3d0
mov eax, dword [esp + 0xa0]
mov ecx, dword [edi]
cdq
sub ecx, eax
mov dword [edi], ecx
mov ebx, dword [edi + 4]
mov ecx, dword [esp + 0x3c]
sbb ebx, edx
push ecx
mov dword [edi + 4], ebx
call fcn.00417b40
mov eax, dword [esp + 0xa4]
add esp, 0x20
test eax, eax
je 0x41f723
mov eax, dword [esp + 0x38]
test eax, eax
je 0x42041f
mov edx, dword [esp + 0x20]
push fcn.0040d370
push 1
push 0xffffffffffffffff
push eax
push edx
call fcn.004174e0
add esp, 0x14
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x20]
and eax, 0xff
push eax
push ecx
call fcn.004184c0
add esp, 8
jmp case.0x41c2ac.13
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov eax, dword [esi + 0x4c]
lea edx, [ecx + ecx*4]
lea ecx, [ebx + ebx*4]
lea edi, [eax + edx*8]
lea ebx, [eax + ecx*8]
test byte [edi + 0x1c], 0x20
jne 0x41f76e
push edi
call fcn.00425170
mov al, byte [edi + 0x1c]
add esp, 4
test al, 0x20
je 0x42041f
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov ecx, dword [edi]
push edx
push eax
push ecx
call fcn.00420830
add esp, 0xc
jmp case.0x41c2ac.13
mov eax, dword [edi + 0xd8]
test eax, eax
jne 0x4203cd
mov eax, dword [ebx + 4]
mov esi, dword [esi + 0x4c]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + edx*8]
lea esi, [esi + eax*8]
mov al, byte [edi + 0x1c]
test al, 0x20
mov dword [esp + 0x2c], esi
je 0x41f7e8
mov edx, dword [edi]
lea ecx, [esp + 0x150]
push ecx
push edx
call fcn.004208c0
add esp, 8
test eax, eax
je 0x41f7e8
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
push eax
push ecx
push esi
call fcn.0041a950
add esp, 0xc
jmp case.0x41c2ac.13
push edi
call fcn.00417b40
mov ebx, dword [ebx + 8]
add esp, 4
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov ebx, dword [esi + 0x54]
lea eax, [ebx + 1]
mov dword [esi + 0x54], eax
mov ecx, dword [esi + 0x58]
cmp ebx, ecx
jl 0x41f831
mov dword [esi + 0x58], eax
mov edx, dword [esi + 0x5c]
shl eax, 4
push eax
push edx
push edi
call fcn.00417840
add esp, 0xc
mov dword [esi + 0x5c], eax
test eax, eax
je 0x42041f
mov edi, dword [esp + 0x30]
mov eax, dword [esi + 0x5c]
shl ebx, 4
add ebx, eax
mov eax, dword [edi + 0x30]
mov dword [ebx], eax
mov ecx, dword [edi + 0x34]
mov dword [ebx + 4], ecx
mov edx, dword [esi + 0x84]
mov dword [ebx + 8], edx
jmp case.0x41c2ac.13
mov ebx, dword [esi + 0x54]
dec ebx
mov eax, ebx
mov dword [esi + 0x54], ebx
mov ecx, dword [esi + 0x5c]
shl eax, 4
add eax, ecx
mov ecx, dword [eax]
mov dword [edi + 0x30], ecx
mov edx, dword [eax + 4]
mov dword [edi + 0x34], edx
mov eax, dword [eax + 8]
mov dword [esi + 0x84], eax
jmp case.0x41c2ac.13
mov esi, dword [esp + 0x20]
push esi
call fcn.004250c0
mov edi, dword [esp + 0x5c]
push edi
call fcn.004250c0
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov ecx, dword [esi + 4]
add esp, 8
cmp ecx, edi
jg case.0x41c2ac.13
jl 0x41f8af
mov edx, dword [esi]
cmp edx, eax
jae case.0x41c2ac.13
mov dword [esi], eax
mov dword [esi + 4], edi
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
test ecx, ecx
jl case.0x41c2ac.13
jg 0x41e7a3
cmp dword [eax], 0
jbe case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
test ecx, ecx
jg case.0x41c2ac.13
jl 0x41e7a3
cmp dword [eax], 0
jae case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
or ecx, edx
jne case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 0x4c]
xor edx, edx
mov dl, byte [ebx + 3]
lea eax, [eax + eax*4]
mov dword [esp + 0x44], edx
lea eax, [ecx + eax*8]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x24]
cmp edx, ecx
mov dword [esp + 0x38], eax
jle 0x41f991
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
mov dword [ecx], eax
call fcn.0041bfe0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add esp, 4
add edx, 4
add ecx, 0x28
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
jne 0x41f95b
xor ecx, ecx
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x1f0], edx
mov edx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x220], eax
mov edx, dword [eax + 0x18]
inc edx
mov dword [eax + 0x18], edx
mov eax, dword [esp + 0x1f0]
mov word [esp + 0x214], 1
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x208], edi
mov dword [esp + 0x224], ecx
mov dword [esp + 0x228], ecx
mov cl, byte [eax + 3]
test cl, 8
je 0x41fa02
mov ecx, dword [ebx - 4]
mov dword [esp + 0x228], ecx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
push edx
lea edx, [esp + 0x1f4]
push ecx
push edx
call dword [eax + 0x10]
mov eax, dword [esp + 0x230]
add esp, 0xc
test eax, eax
je 0x41fa50
lea eax, [esp + 0x1f8]
push eax
call fcn.0041a7e0
push eax
push 0x45b2cc
add esi, 0x74
push edi
push esi
call fcn.0041b110
mov ecx, dword [esp + 0x238]
add esp, 0x14
mov dword [esp + 0x10], ecx
lea edx, [esp + 0x1f8]
push edx
call fcn.004179f0
add esp, 4
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x4c]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
push edx
lea eax, [ecx + eax*8]
push eax
mov dword [esp + 0x24], eax
call fcn.00417ad0
mov ebx, dword [esp + 0x24]
add esp, 8
cmp eax, 1
mov dword [esp + 0x10], eax
jne 0x41faa8
push ebx
call fcn.0041a7e0
push eax
push 0x45b2cc
lea eax, [esi + 0x74]
push edi
push eax
call fcn.0041b110
add esp, 0x14
mov ecx, dword [esp + 0x4c]
and ecx, 0xff
push ecx
push ebx
call fcn.004184c0
push ebx
call fcn.00425210
add esp, 0xc
test eax, eax
jne 0x4203fc
jmp case.0x41c2ac.13
add esi, 0x74
push edi
push esi
call fcn.0042b810
add esp, 8
mov dword [esp + 0x10], eax
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
lea edx, [eax + eax*2]
mov eax, dword [edi + 8]
mov eax, dword [eax + edx*8 + 4]
push eax
call fcn.00420b70
add esp, 4
cmp eax, 0x65
mov dword [esp + 0x10], eax
jne case.0x41c2ac.13
mov ebx, dword [ebx + 8]
mov dword [esp + 0x10], 0
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
test eax, eax
jne 0x41fb32
push edi
call fcn.00425800
add esp, 4
jmp case.0x41c2ac.13
mov byte [esi + 0x7e], 1
jmp case.0x41c2ac.13
mov cl, byte [ebx + 0xc]
mov eax, dword [ebx + 4]
mov byte [esp + 0xe0], cl
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0xe0]
push edx
lea edx, [eax + eax*2]
mov eax, dword [edi + 8]
push ecx
mov ecx, dword [eax + edx*8 + 4]
push ecx
call fcn.00425030
add esp, 0xc
cmp al, 6
mov dword [esp + 0x10], eax
jne case.0x41c2ac.13
mov edx, dword [ebx + 0x10]
add esi, 0x74
push edx
push str.database_table_is_locked:__s
push edi
push esi
call fcn.0041b110
add esp, 0x10
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 0x10]
push ebx
push edi
call fcn.0042c690
add esp, 8
mov dword [esp + 0x10], eax
test ebx, ebx
je case.0x41c2ac.13
mov eax, dword [esi + 0x74]
push eax
push edi
call fcn.0040d3d0
mov ecx, dword [ebx + 8]
add esp, 8
mov dword [esi + 0x74], ecx
mov dword [ebx + 8], 0
jmp case.0x41c2ac.13
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
add esi, 0x74
push esi
push edx
push eax
push edi
call fcn.0042c000
add esp, 0x10
mov dword [esp + 0x10], eax
jmp case.0x41c2ac.13
mov byte [esi + 0x80], 2
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 4]
push ecx
push edx
push edi
call fcn.0042c490
add esp, 0xc
mov dword [esp + 0x10], eax
mov byte [esi + 0x80], 0
jmp case.0x41c2ac.13
mov eax, dword [ebx + 0x10]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], 0
push edx
mov ecx, dword [eax]
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], ecx
call dword [ecx + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x74]
push eax
push edi
call fcn.0040d3d0
mov eax, dword [esp + 0x2c]
add esp, 0x10
mov ecx, dword [eax + 8]
mov dword [esi + 0x74], ecx
mov dword [eax + 8], 0
mov eax, dword [esp + 0x10]
test eax, eax
jne case.0x41c2ac.13
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
push 0
push 0xffffffffffffffff
mov dword [edx], eax
mov ecx, dword [ebx + 4]
push 0
push ecx
push esi
call fcn.00425820
add esp, 0x14
test eax, eax
je 0x41fc90
mov edx, dword [esp + 0x24]
mov dword [eax + 0x50], edx
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov ecx, dword [edx]
mov dword [eax + 0x54], ecx
jmp case.0x41c2ac.13
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
push edx
mov byte [edi + 0x1e], 1
call dword [eax + 0x1c]
add esp, 4
jmp case.0x41c2ac.13
mov eax, dword [ebx + 0xc]
mov edx, dword [esi + 0x4c]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov ecx, dword [ebx + 4]
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + ecx*4]
mov edx, dword [eax]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x54], edx
mov ecx, dword [ecx + 0x50]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], edx
mov edi, dword [ecx]
mov ecx, dword [edi]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x28]
test ecx, ecx
mov dword [esp + 0x24], ecx
jle 0x41fd2b
add eax, 0x50
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push eax
mov dword [ecx], eax
call fcn.0041bfe0
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add esp, 4
add edx, 0x28
add ecx, 4
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], eax
jne 0x41fcf7
push edi
call fcn.0042bf60
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov byte [esi + 0x80], 1
mov ecx, dword [ebx + 0x10]
push edx
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x58]
push edx
push eax
call dword [ecx + 0x20]
mov byte [esi + 0x80], 0
mov edx, dword [esi + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
push edx
push eax
call fcn.0040d3d0
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x50]
push edi
mov dword [esi + 0x74], ecx
push edx
mov dword [edi + 8], 0
call fcn.0042bf70
mov eax, dword [esp + 0x38]
add esp, 0x28
test eax, eax
jne 0x41fdae
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
push eax
call dword [ecx + 0x28]
add esp, 4
test eax, eax
je 0x41fdae
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
mov edx, dword [esp + 0x6c]
mov byte [edx + 0x14], 0
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + eax*4]
mov cl, byte [eax + 0x14]
test cl, cl
jne case.0x41c2ac.13
mov eax, dword [eax + 0x50]
lea edx, [esp + 0x178]
push edx
push eax
mov ebx, dword [eax]
mov ecx, dword [ebx]
call dword [ecx + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x74]
push eax
push edi
call fcn.0040d3d0
mov ecx, dword [ebx + 8]
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x74], ecx
mov dword [ebx + 8], 0
mov dx, word [eax + 0x1c]
mov ecx, dword [esp + 0x188]
and edx, 0xbf04
add esp, 0x10
or edx, 4
mov word [eax + 0x1c], dx
mov edx, dword [esp + 0x17c]
mov dword [eax], ecx
mov dword [eax + 4], edx
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx + eax*4]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x1c], ecx
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x4c]
lea eax, [eax + edx*8]
mov dl, byte [ecx + 0x14]
test dl, dl
mov dword [esp + 0x44], eax
je 0x41fe5f
push eax
call fcn.00417b40
add esp, 4
jmp case.0x41c2ac.13
mov ecx, dword [esp + 0x1c]
lea edi, [esp + 0x238]
mov edx, dword [ecx + 0x50]
mov ecx, 0x10
mov eax, dword [edx]
lea edx, [esp + 0x240]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
mov dword [esp + 0x38], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x44]
push ecx
push edx
call fcn.0041bf10
mov eax, dword [esp + 0x264]
mov ecx, dword [ebx + 8]
and eax, 0xbf01
lea edx, [esp + 0x240]
or al, 1
push ecx
mov word [esp + 0x268], ax
mov eax, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x48]
mov ecx, dword [eax + 0x50]
push ecx
call dword [edx + 0x2c]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x74]
push eax
push ecx
call fcn.0040d3d0
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x25c]
mov edx, dword [eax + 8]
mov dword [esi + 0x74], edx
mov dword [eax + 8], 0
mov eax, dword [esp + 0x68]
and eax, 0xff
push eax
push ecx
call fcn.004184c0
mov edi, dword [esp + 0x68]
lea edx, [esp + 0x264]
push edx
push edi
call fcn.0041bf10
push edi
call fcn.00425210
add esp, 0x30
test eax, eax
jne 0x4203fc
jmp case.0x41c2ac.13
mov eax, dword [ebx + 4]
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x14], eax
mov cl, byte [eax + 0x14]
test cl, cl
jne case.0x41c2ac.13
mov edx, eax
mov eax, dword [edx + 0x50]
mov eax, dword [eax]
push eax
mov dword [esp + 0x3c], eax
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
call fcn.0042bf60
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov byte [esi + 0x80], 1
mov eax, dword [edx + 0x50]
push eax
call dword [ecx + 0x24]
mov byte [esi + 0x80], 0
mov edx, dword [esi + 0x74]
push edx
push edi
mov dword [esp + 0x20], eax
call fcn.0040d3d0
mov eax, dword [esp + 0x48]
push eax
push edi
mov ecx, dword [eax + 8]
mov dword [esi + 0x74], ecx
mov dword [eax + 8], 0
call fcn.0042bf70
mov eax, dword [esp + 0x28]
add esp, 0x18
test eax, eax
jne 0x41e7a3
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x50]
push eax
call dword [ecx + 0x28]
add esp, 4
test eax, eax
jne case.0x41c2ac.13
mov ebx, dword [ebx + 8]
dec ebx
mov dword [esp + 0x28], ebx
jmp case.0x41c2ac.13
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x38], edx
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1c], eax
test byte [eax + 0x1c], 0x12
jne 0x42000c
mov edx, dword [esp + 0x4c]
and edx, 0xff
push edx
push eax
call fcn.004189c0
add esp, 8
test eax, eax
jne 0x42041f
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x38]
push ebx
call fcn.0042bf60
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx]
mov edx, dword [ecx + 0x14]
push edx
push ebx
call dword [eax + 0x4c]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x74]
push eax
push edi
call fcn.0040d3d0
mov ecx, dword [ebx + 8]
push ebx
mov dword [esi + 0x74], ecx
push edi
mov dword [ebx + 8], 0
call fcn.0042bf70
add esp, 0x1c
jmp case.0x41c2ac.13
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov edx, dword [eax + 0x34]
test edx, edx
jne 0x420088
push str.read_only_table
add esi, 0x74
push edi
push esi
call fcn.0041b110
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x41c2ac.13
mov edx, dword [esi + 0x24]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x48], edx
mov edx, dword [esi + 0x4c]
lea eax, [eax + eax*4]
test ecx, ecx
lea eax, [edx + eax*8]
mov dword [esp + 0x14], eax
jle 0x4200df
mov edx, dword [esp + 0x48]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
push eax
call fcn.0041bfe0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add esp, 4
mov dword [ecx], eax
add eax, 0x28
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
add ecx, 4
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], eax
jne 0x4200af
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0042bf60
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x16c]
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
call dword [eax + 0x34]
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x24], eax
push ecx
push edi
call fcn.0040d3d0
mov eax, dword [esp + 0x34]
push eax
push edi
mov edx, dword [eax + 8]
mov dword [esi + 0x74], edx
mov dword [eax + 8], 0
call fcn.0042bf70
mov eax, dword [ebx + 4]
add esp, 0x24
test eax, eax
je 0x420153
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x420153
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x16c]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
inc dword [esi + 0x84]
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 4]
mov eax, dword [edi + 8]
lea edx, [ebx + ebx*2]
mov ecx, dword [eax + edx*8 + 4]
push ecx
call fcn.004168e0
lea edx, [esp + 0x114]
push edx
push eax
call fcn.00410610
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
jne case.0x41c2ac.13
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x2c]
cdq
mov word [ecx + 0x1c], 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x41c2ac.13
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x4201ab
mov esi, ebx
jmp 0x4201b1
mov esi, dword [esi + 0xcc]
test esi, esi
je case.0x41c2ac.13
mov eax, dword [edi + 0x98]
test eax, eax
je case.0x41c2ac.13
mov ecx, dword [edi + 0x9c]
push esi
push ecx
call eax
add esp, 8
jmp case.0x41c2ac.13
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 8]
inc ecx
test eax, eax
mov dword [esp + 0x28], ecx
je 0x41c179
mov edi, dword [esp + 0x30]
jmp 0x42046e
mov dword [esp + 0x10], 9
jmp 0x42046e
mov edx, dword [ebx + 4]
mov eax, dword [esp + 0x28]
mov dword [esi + 0x64], edx
mov dword [esi + 0x60], eax
mov ecx, dword [ebx + 8]
mov dword [esi + 0x68], ecx
mov ebx, dword [ebx + 0x10]
test ebx, ebx
je 0x42022d
push ebx
push 0x45b2cc
lea edx, [esi + 0x74]
push edi
push edx
call fcn.0041b110
add esp, 0x10
push esi
call fcn.00419070
mov edi, 5
add esp, 4
cmp eax, edi
jne 0x42033b
mov dword [esi + 0x64], edi
jmp 0x42048f
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
add eax, 2
mov dword [esp + 0x84], 0
or al, 1
mov dword [esi + 0x50], eax
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
mov dword [esi + 0x78], eax
mov ecx, dword [ebx + 8]
test ecx, ecx
jle 0x4202b3
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
push eax
call fcn.00418970
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041bfe0
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x20]
mov ecx, dword [ebx + 8]
add esp, 8
inc eax
add edx, 0x28
cmp eax, ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x18], edx
jl 0x42027b
mov al, byte [edi + 0x1e]
test al, al
jne 0x42041f
mov edx, dword [esp + 0x28]
mov edi, 0x64
inc edx
mov dword [esi + 0x60], edx
jmp 0x42048f
lea eax, [esp + 0x190]
push eax
call fcn.004179f0
add esp, 4
jmp 0x42041f
mov dword [esp + 0x10], 0x14
mov edi, dword [esp + 0x30]
mov al, byte [edi + 0x1e]
test al, al
je 0x420447
mov dword [esp + 0x10], 7
jmp 0x420451
mov ecx, dword [esp + 0x28]
mov dword [esi + 0x60], ecx
mov byte [edi + 0x1c], 0
mov edi, 5
mov dword [esi + 0x64], edi
jmp 0x42048f
test ebx, ebx
je 0x42034d
push edi
call fcn.0044a8c0
add esp, 4
mov byte [edi + 0x1c], 1
push edi
call fcn.0044a570
add esp, 4
mov edi, dword [esi + 0x64]
neg edi
sbb edi, edi
and edi, 0xffffff9c
add edi, 0x65
jmp 0x42048f
mov bl, byte [esp + 0x38]
push esi
mov byte [edi + 0x1c], bl
call fcn.00419070
add esp, 4
cmp eax, 5
jne 0x420332
mov edx, dword [esp + 0x28]
mov al, 1
sub al, bl
mov dword [esi + 0x60], edx
mov byte [edi + 0x1c], al
mov edi, 5
mov dword [esi + 0x64], edi
jmp 0x42048f
mov ecx, dword [esp + 0x28]
mov edi, 5
mov dword [esi + 0x60], ecx
mov dword [esi + 0x64], edi
jmp 0x42048f
mov edx, dword [esp + 0x28]
mov edi, 5
mov dword [esi + 0x60], edx
mov dword [esi + 0x64], edi
jmp 0x42048f
push edi
call fcn.00417f60
add esp, 4
jmp 0x4202ed
mov dword [esp + 0x10], 0xb
jmp 0x4202ed
mov dword [esp + 0x10], 0xd
jmp 0x4202ed
mov eax, 9
push eax
mov dword [esp + 0x14], eax
mov dword [esi + 0x64], eax
call fcn.0044a980
push eax
mov eax, dword [esp + 0x38]
push 0x45b2cc
lea ecx, [esi + 0x74]
push eax
push ecx
call fcn.0041b110
mov edi, dword [esp + 0x44]
add esp, 0x14
jmp 0x42046e
mov edi, dword [esp + 0x30]
push str.string_or_blob_too_big
lea edx, [esi + 0x74]
push edi
push edx
call fcn.0041b110
add esp, 0xc
mov dword [esp + 0x10], 0x12
jmp 0x42046e
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x30]
push str.out_of_memory
push eax
mov byte [eax + 0x1e], 1
lea eax, [esi + 0x74]
push eax
call fcn.0041b110
mov edi, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x10], 7
jmp 0x42046e
cmp dword [esp + 0x10], 0xc0a
je 0x42046e
mov ecx, dword [esp + 0x10]
push ecx
call fcn.0044a980
push eax
push 0x45b2cc
lea edx, [esi + 0x74]
push edi
push edx
call fcn.0041b110
add esp, 0x14
mov ebx, dword [esp + 0x10]
push esi
mov dword [esi + 0x64], ebx
call fcn.00419070
add esp, 4
cmp ebx, 0xc0a
jne 0x42048a
mov byte [edi + 0x1e], 1
mov edi, 1
mov eax, dword [esp + 0xe8]
push eax
call fcn.00419370
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret