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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x374
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x68]
mov ecx, dword [ebx + 0x58]
push esi
mov esi, dword [ebx]
push edi
xor edi, edi
cmp dword [ebx + 0xa0], edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x18], eax
mov al, byte [esi + 0x54]
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
mov byte [esp + 0x63], 0
mov byte [esp + 0x4c], al
mov dword [esp + 0x70], edi
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0x20], ecx
je 0x443d4f
push ebx
call fcn.0043d490
add esp, 4
cmp dword [esi + 0x174], edi
je 0x443d79
mov ecx, dword [esi + 0x17c]
mov eax, dword [ebx + 0xb4]
xor edx, edx
div ecx
mov dword [esp + 0x8c], edi
sub ecx, edx
mov dword [esp + 0x88], ecx
jmp 0x443d8a
or eax, 0xffffffff
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
cmp dword [ebx + 0x24], 7
je 0x449d98
mov dword [ebx + 0x24], edi
mov dword [ebx + 0x38], edi
mov dword [ebx + 0x3c], edi
mov edx, dword [esi + 0x128]
test edx, edx
mov dword [esi + 0x1c8], edi
jne 0x449f48
mov eax, dword [ebx + 0x20]
mov ecx, dword [esp + 0x50]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*4]
mov cl, byte [edi]
mov edx, 1
add dword [esp + 0x98], edx
movzx eax, cl
adc dword [esp + 0x9c], 0
cmp eax, 0xb5
mov dword [esp + 0x18], edi
mov dword [esp + 0x3c], eax
ja case.0x443dea.89
jmp dword [eax*4 + 0x449f84]
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ecx, [eax + edx*8]
mov edx, edi
sub edx, dword [esp + 0x50]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov word [ecx + 0x10], 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
jmp case.0x443dea.9
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 0x10], 4
lea eax, [edx + ecx*8]
je case.0x443dea.89
mov eax, dword [eax]
mov ecx, dword [esp + 0x50]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov edi, edx
mov dword [esp + 0x18], edx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 0xc]
sub eax, edx
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov word [ecx + 0x10], 4
cmp dword [edi + 8], 0
jne 0x446cad
add edi, 0x14
jmp 0x443dbe
mov edi, dword [edi + 4]
mov eax, dword [esp + 0x20]
lea edx, [edi + edi*4]
mov ecx, dword [eax + edx*8]
lea eax, [eax + edx*8]
mov edx, dword [esp + 0x50]
lea ecx, [ecx + ecx*4]
mov ecx, dword [edx + ecx*4 + 8]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*4 - 0x14]
mov edi, edx
mov dword [esp + 0x18], edx
mov word [eax + 0x10], 0
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
sub edi, dword [esp + 0x50]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x40], edx
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], edx
mov word [ecx + 0x10], 4
mov ecx, dword [esp + 0x50]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov edi, edx
mov dword [esp + 0x18], edx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], dl
je case.0x443dea.89
mov edx, dword [ebx + 0xd0]
test edx, edx
je 0x449936
cmp dword [edi + 4], 0
jne 0x449936
mov ecx, dword [edx + 4]
mov eax, dword [ebp + 8]
add dword [eax + 0xd8], 0xffffffff
mov dword [eax + 0xd0], ecx
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
add dword [esi + 0x70], ecx
mov ebx, edx
mov dword [esi + 0x68], ecx
adc dword [esi + 0x74], eax
mov dword [esi + 0x6c], eax
call fcn.0043df50
cmp dword [edi + 8], 4
mov ecx, dword [ebp + 8]
jne 0x443f7d
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0x68]
mov eax, dword [eax + edx*4 + 8]
sub eax, 1
mov edx, dword [ecx + 0x68]
mov ecx, dword [ecx + 0x58]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x20], ecx
lea ecx, [edx + eax*4]
mov edi, ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x18], ecx
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, eax
mov eax, dword [edi + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [eax], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov word [eax + 0x10], 8
mov edx, dword [edi + 0x10]
fld qword [edx]
add edi, 0x14
fstp qword [eax]
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x40], eax
call fcn.0041c9d0
cmp byte [esp + 0x4c], 1
mov dword [edi + 4], eax
je 0x44409e
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
mov eax, esi
call fcn.0043b790
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449c94
movzx ecx, byte [esp + 0x4c]
mov eax, esi
call fcn.0043aab0
test eax, eax
jne 0x449d98
or word [esi + 0x10], 0x2000
mov dword [esi + 0x18], eax
mov esi, dword [esp + 0x18]
mov bl, 0xfa
cmp byte [esi + 1], bl
jne 0x444080
mov eax, dword [esi + 0x10]
test eax, eax
je 0x444080
mov ecx, dword [esp + 0x1c]
call fcn.00419270
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
mov byte [esi + 1], bl
mov ecx, dword [eax + 8]
mov ebx, dword [ebp + 8]
mov dword [esi + 0x10], ecx
mov edx, dword [eax + 0xc]
mov dword [esi + 4], edx
mov esi, dword [esp + 0x1c]
mov eax, dword [edi + 4]
cmp eax, dword [esi + 0x78]
jg 0x449c94
mov byte [edi], 0x49
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, eax
mov word [ecx + 0x10], 0x2202
mov edx, dword [edi + 0x10]
mov dword [ecx + 8], edx
mov eax, dword [edi + 4]
mov dl, byte [esp + 0x4c]
mov dword [ecx + 0xc], eax
mov byte [ecx + 0x12], dl
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x444ce8
lea eax, [eax + eax*4]
mov dword [esp + 0x24], eax
movzx eax, word [edi + 2]
cdq
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x134], edx
mov edx, dword [esp + 0x24]
mov edx, dword [eax + edx*8]
cmp edx, dword [esp + 0x130]
jne 0x444ce8
mov edx, dword [esp + 0x24]
mov eax, dword [eax + edx*8 + 4]
cmp eax, dword [esp + 0x134]
jne 0x444ce8
mov word [ecx + 0x10], 0x2210
add edi, 0x14
jmp 0x443dbe
mov edx, dword [ebp + 8]
mov eax, edi
call fcn.00443c20
mov esi, dword [edi + 0xc]
sub esi, dword [edi + 8]
mov ecx, dword [edi + 4]
neg ecx
sbb ecx, ecx
and ecx, 0x100
mov ebx, eax
add ecx, 1
test esi, esi
movzx eax, cx
mov dword [esp + 0x40], eax
mov word [ebx + 0x10], ax
mov dword [ebx + 0xc], 0
jle 0x444ce8
lea ecx, [ecx]
add ebx, 0x28
mov eax, ebx
call fcn.0043b480
mov dx, word [esp + 0x40]
sub esi, 1
test esi, esi
mov word [ebx + 0x10], dx
mov dword [ebx + 0xc], 0
jg 0x444170
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov cx, word [eax + 0x10]
and cx, 0xffc1
or cx, dx
mov word [eax + 0x10], cx
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, dword [edi + 0x10]
test ecx, ecx
mov esi, eax
mov eax, dword [edi + 4]
jne 0x444206
call fcn.0043b4a0
call fcn.0043ace0
test eax, eax
jne 0x449d98
mov dl, byte [esp + 0x4c]
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
mov byte [esi + 0x12], dl
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
push 0
cdq
push 0
push edx
push eax
push ecx
mov eax, esi
call fcn.0043b790
mov dl, byte [esp + 0x60]
mov ebx, dword [ebp + 8]
add esp, 0x14
mov byte [esi + 0x12], dl
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x64]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8 - 0x28]
mov dword [esp + 0x40], ecx
call fcn.0043b640
test eax, eax
jne 0x449c94
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
test word [eax + edx*8 + 0x10], 0x9000
lea eax, [eax + edx*8]
mov dword [esp + 0x34], eax
je 0x44426f
call fcn.0043b480
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov ecx, dword [ecx + 0x10]
mov dx, cx
and dx, 0xafff
or dx, 0x2040
mov dword [eax + 0x10], ecx
mov word [eax + 0x10], dx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea ebx, [esi + ecx*8]
lea esi, [esi + edx*8]
mov eax, esi
call fcn.0043b750
test word [esi + 0x10], 0x4000
je 0x4442e7
mov eax, esi
call fcn.0043ac90
test eax, eax
jne 0x449d98
mov edi, dword [esp + 0x18]
add ebx, 0x28
add esi, 0x28
sub dword [esp + 0x24], 1
jne 0x4442c5
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea ebx, [esi + ecx*8]
lea esi, [esi + edx*8]
push 0x4000
push ebx
push esi
call fcn.0043b690
add esp, 0xc
test word [esi + 0x10], 0x4000
je 0x44434a
mov eax, esi
call fcn.0043ac90
test eax, eax
jne 0x449d98
mov edi, dword [esp + 0x18]
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x444364
test byte [edi + 2], 2
je 0x444364
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x24]
mov ecx, eax
sub eax, 1
test ecx, ecx
mov dword [esp + 0x24], eax
je 0x444ce8
add esi, 0x28
add ebx, 0x28
jmp 0x444320
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ecx, [eax + edx*8]
push 0x4000
push ecx
mov ecx, dword [edi + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
push eax
call fcn.0043b690
add esp, 0xc
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ecx*8 + 4]
mov ecx, dword [eax + ecx*8]
push edx
push ecx
mov ecx, dword [edi + 8]
lea edx, [ecx + ecx*4]
lea eax, [eax + edx*8]
call fcn.0043b520
add esp, 8
add edi, 0x14
jmp 0x443dbe
push 0
mov eax, ebx
call fcn.0043ebb0
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x449cf8
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [edx + 0x10]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], ecx
mov cl, byte [edx + 0x10]
or cl, al
test cl, 1
mov dword [esp + 0x2c], eax
je 0x444457
mov eax, dword [esp + 0x34]
call fcn.0043b480
add edi, 0x14
jmp 0x443dbe
test al, 0x12
jne 0x444470
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x28]
push 0
push edx
call fcn.0043ad30
add esp, 8
jmp 0x444480
test eax, 0x400
je 0x4444a0
mov esi, dword [esp + 0x28]
call fcn.0043ace0
test eax, eax
jne 0x449d98
mov eax, dword [esp + 0x28]
mov cx, word [eax + 0x10]
mov esi, dword [esp + 0x1c]
and cx, 0xfffd
movzx edx, cx
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x38]
movzx eax, word [eax + 0x10]
test al, 0x12
mov dword [esp + 0x3c], eax
jne 0x4444c5
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
push 0
push ecx
call fcn.0043ad30
add esp, 8
jmp 0x4444d5
test eax, 0x400
je 0x4444f4
mov esi, dword [esp + 0x38]
call fcn.0043ace0
test eax, eax
jne 0x449d98
mov edx, dword [esp + 0x38]
mov ax, word [edx + 0x10]
mov esi, dword [esp + 0x1c]
and ax, 0xfffd
movzx ecx, ax
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x38]
add eax, dword [ecx + 0xc]
cdq
mov edi, eax
mov eax, dword [esi + 0x78]
mov ecx, edx
cdq
cmp ecx, edx
mov dword [esp + 0x1b4], ecx
jg 0x449c94
jl 0x444524
cmp edi, eax
ja 0x449c94
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
xor eax, eax
cmp esi, ebx
sete al
lea ecx, [edi + 2]
mov edx, esi
call fcn.0043aad0
test eax, eax
jne 0x449d98
mov dx, word [esi + 0x10]
and dx, 0xf242
or dx, 2
cmp esi, ebx
mov word [esi + 0x10], dx
je 0x444577
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 8]
mov edx, dword [esi + 8]
push eax
push ecx
push edx
call sub.ntdll.dll_memcpy
mov ax, word [esp + 0x48]
add esp, 0xc
mov word [ebx + 0x10], ax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [esi + 8]
add eax, dword [ebx + 0xc]
push ecx
push edx
push eax
call sub.ntdll.dll_memcpy
mov cx, word [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 0xc
cmp byte [esp + 0x4c], 1
mov word [edx + 0x10], cx
jbe 0x4445b7
mov eax, dword [esp + 0x1b4]
and edi, 0xfffffffe
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 8]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov byte [edi + ecx], 0
mov edx, dword [eax + 8]
mov cl, byte [esp + 0x4c]
mov byte [edi + edx + 1], 0
or word [eax + 0x10], 0x200
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x18]
mov byte [eax + 0x12], cl
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x38], eax
movzx eax, word [eax + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
movzx eax, word [ecx + 0x10]
mov dword [esp + 0x34], edx
mov dl, byte [esp + 0x24]
and dl, al
test dl, 4
mov dword [esp + 0x28], ecx
jne 0x444663
mov cl, byte [esp + 0x24]
or cl, al
test cl, 1
jne 0x4448c1
mov ecx, dword [esp + 0x28]
call fcn.00443bd0
mov ecx, dword [esp + 0x38]
movzx eax, ax
mov dword [esp + 0x40], eax
call fcn.00443bd0
and al, byte [esp + 0x40]
test al, 4
je 0x4446b3
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov edx, dword [edx]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x38]
mov edx, dword [edx + 4]
mov dword [esp + 0x84], edx
movzx edx, byte [edi]
add edx, 0xffffff96
cmp edx, 3
ja case.default.0x444692
jmp dword [edx*4 + 0x44a25c]
push ecx
push eax
lea eax, [esp + 0x88]
push eax
call fcn.0041ddd0
add esp, 0xc
test eax, eax
je 0x44479a
mov edx, dword [esp + 0x28]
call fcn.0043b080
fstp qword [esp + 0x40]
mov edx, dword [esp + 0x38]
call fcn.0043b080
movzx eax, byte [edi]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x4446d8
jmp dword [eax*4 + 0x44a26c]
push ecx
push eax
lea edx, [esp + 0x88]
call fcn.0041de70
add esp, 8
test eax, eax
jne 0x4446b3
jmp 0x44479a
push ecx
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.0041dec0
add esp, 0xc
test eax, eax
jne 0x4446b3
jmp 0x44479a
mov edx, eax
or edx, ecx
je 0x4448c1
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x444742
cmp dword [esp + 0x80], 0
jne 0x444742
cmp dword [esp + 0x84], 0x80000000
je 0x4446b3
push ecx
mov ecx, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x8c]
push eax
push ecx
call sub.ntdll.dll__alldiv
jmp 0x44478c
mov edx, eax
or edx, ecx
je 0x4448c1
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
jne 0x444775
mov eax, 1
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x8c]
push eax
push ecx
call sub.ntdll.dll__allrem
mov dword [esp + 0x84], edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [eax], edx
mov dx, word [eax + 0x10]
and dx, 0xf244
or dx, 4
mov dword [eax + 4], ecx
mov word [eax + 0x10], dx
add edi, 0x14
jmp 0x443dbe
fadd qword [esp + 0x40]
jmp 0x44488c
fsub qword [esp + 0x40]
jmp 0x44488c
fmul qword [esp + 0x40]
jmp 0x44488c
fldz
fld qword [esp + 0x40]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x4448bd
fdivp st(1)
jmp 0x44488c
mov edx, dword [esp + 0x28]
fstp st(0)
call fcn.0043b000
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0xb0], eax
call fcn.0043b000
mov ecx, dword [esp + 0xb0]
or ecx, dword [esp + 0xb4]
je 0x4448c1
mov ecx, dword [esp + 0xb0]
and ecx, dword [esp + 0xb4]
cmp ecx, 0xffffffff
jne 0x444860
mov dword [esp + 0xb0], 1
mov dword [esp + 0xb4], 0
mov ecx, dword [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0xb4]
push ecx
push edx
push eax
call sub.ntdll.dll__allrem
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], edx
fild qword [esp + 0x188]
sub esp, 8
fst qword [esp]
call fcn.0041c9a0
add esp, 8
test eax, eax
jne 0x4448bf
mov eax, dword [esp + 0x34]
mov dx, word [eax + 0x10]
fstp qword [eax]
and dx, 0xf248
or dx, 8
mov word [eax + 0x10], dx
add edi, 0x14
jmp 0x443dbe
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x34]
call fcn.0043b480
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
test eax, eax
je case.0x443dea.89
push 0
push 0
mov ecx, dword [esp + 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.0043b520
add esp, 8
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + edx*8]
lea ecx, [ecx + eax*8]
mov al, byte [edx + 0x10]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
or al, byte [ecx + 0x10]
test al, 1
je 0x444941
mov eax, dword [esp + 0x34]
call fcn.0043b480
add edi, 0x14
jmp 0x443dbe
call fcn.0043b000
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x68], eax
call fcn.0043b000
mov dword [esp + 0xa0], eax
mov al, byte [edi]
cmp al, 0x66
jne 0x444978
mov eax, dword [esp + 0xa0]
and dword [esp + 0x68], eax
and dword [esp + 0x6c], edx
jmp 0x444a9f
cmp al, 0x67
mov ecx, dword [esp + 0xa0]
jne 0x444990
or dword [esp + 0x68], ecx
or dword [esp + 0x6c], edx
jmp 0x444a9f
or ecx, edx
je 0x444a9f
test edx, edx
jg 0x4449e4
jl 0x4449a8
cmp dword [esp + 0xa0], 0
jae 0x4449d4
mov cl, 0xd1
sub cl, al
cmp edx, 0xffffffff
mov al, cl
jl 0x4449e4
jg 0x4449bf
cmp dword [esp + 0xa0], 0xffffffc0
jbe 0x4449e4
mov ecx, dword [esp + 0xa0]
neg ecx
adc edx, 0
neg edx
mov dword [esp + 0xa0], ecx
test edx, edx
jl 0x444a19
jg 0x4449e4
cmp dword [esp + 0xa0], 0x40
jb 0x444a19
cmp dword [esp + 0x6c], 0
jg 0x444a09
jl 0x4449f4
cmp dword [esp + 0x68], 0
jae 0x444a09
cmp al, 0x68
je 0x444a09
or eax, 0xffffffff
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jmp 0x444a9f
xor eax, eax
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
jmp 0x444a9f
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0xa0]
cmp al, 0x68
mov eax, dword [esp + 0x68]
jne 0x444a41
call sub.ntdll.dll__allshl
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
jmp 0x444a89
call sub.ntdll.dll__aullshr
cmp dword [esp + 0x6c], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
jg 0x444a89
jl 0x444a64
cmp dword [esp + 0x68], 0
jae 0x444a89
mov ecx, 0x40
sub ecx, dword [esp + 0xa0]
or eax, 0xffffffff
or edx, 0xffffffff
call sub.ntdll.dll__allshl
or dword [esp + 0xb8], eax
or dword [esp + 0xbc], edx
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov dword [eax], ecx
mov cx, word [eax + 0x10]
and cx, 0xf244
or cx, 4
mov dword [eax + 4], edx
mov word [eax + 0x10], cx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea esi, [eax + edx*8]
call fcn.0043b150
mov eax, dword [edi + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
movzx eax, word [edx + ecx*8 + 0x10]
test al, 4
lea ecx, [edx + ecx*8]
mov dword [esp + 0x28], ecx
jne 0x444b56
test al, 0x28
jne 0x444b23
test al, 2
je 0x444b37
push 1
mov eax, ecx
call fcn.00443a10
add esp, 4
jmp 0x444b33
mov esi, dword [esp + 0x28]
call fcn.0043b0e0
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + 0x10]
test al, 4
jne 0x444b56
cmp dword [edi + 8], 0
jne 0x446cad
mov dword [esp + 0x14], 0x14
jmp 0x449cf8
and eax, 0xf244
or eax, 4
mov word [ecx + 0x10], ax
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x24
lea esi, [ecx + eax*8]
je case.0x443dea.89
call fcn.0043b170
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
test word [eax + edx*8 + 0x10], 0x400
lea esi, [eax + edx*8]
je 0x444bc1
call fcn.0043ace0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov bl, byte [esp + 0x4c]
mov cl, byte [edi + 8]
mov eax, esi
call fcn.0043b3a0
jmp 0x4443e6
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea ecx, [edx + ecx*8]
movzx edx, word [ecx + 0x10]
mov dword [esp + 0x30], eax
movzx eax, word [eax + 0x10]
mov dword [esp + 0x38], eax
and eax, edx
test al, 4
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], edx
je 0x444c8e
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
mov esi, dword [ecx]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 4]
cmp eax, ecx
jl 0x444c3e
jg 0x444c24
cmp edx, esi
jbe 0x444c34
mov ecx, dword [esp + 0x3c]
cmp byte [ecx + 0x4c17d8], 0
jmp 0x444cda
cmp eax, ecx
jg 0x444c66
jl 0x444c3e
cmp edx, esi
jae 0x444c66
mov edx, dword [esp + 0x3c]
cmp byte [edx + 0x4c17cc], 0
jne 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x70], 0xffffffff
add edi, 0x14
jmp 0x443dbe
mov eax, dword [esp + 0x3c]
cmp byte [eax + 0x4c17d2], 0
jne 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x70], 0
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [esp + 0x38]
or ecx, dword [esp + 0x34]
test cl, 1
je 0x444cf7
movzx ecx, word [edi + 2]
test cl, cl
jns 0x444cd7
test al, 1
je 0x444cc2
test dword [esp + 0x38], 0x100
jne 0x444cc2
movzx edx, byte [edi]
movzx ecx, byte [edx + 0x4c17d2]
xor eax, eax
jmp 0x444e27
mov al, byte [esp + 0x38]
and al, 1
neg al
sbb eax, eax
and eax, 0xfffffffe
add eax, 1
jmp 0x444dff
test cl, 0x10
jne 0x446cad
mov dword [esp + 0x70], 1
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov al, byte [edi + 2]
and al, 0x47
cmp al, 0x43
jl 0x444d52
test cl, 2
je 0x444de8
mov cl, byte [esp + 0x34]
and cl, 0x2e
cmp cl, 2
jne 0x444d2f
mov eax, dword [esp + 0x28]
push 0
call fcn.00443a10
mov edx, dword [esp + 0x34]
movzx eax, word [edx + 0x10]
add esp, 4
mov dword [esp + 0x38], eax
mov cl, byte [esp + 0x38]
and cl, 0x2e
cmp cl, 2
jne 0x444de8
mov eax, dword [esp + 0x30]
push 0
call fcn.00443a10
add esp, 4
jmp 0x444de8
cmp al, 0x42
jne 0x444de8
test cl, 2
je 0x444de8
mov al, byte [esp + 0x34]
test al, 2
jne 0x444dae
test al, 0x2c
je 0x444dae
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x28]
push 1
push edx
mov eax, ebx
call fcn.0043ad30
mov ax, word [ebx + 0x10]
xor ax, word [esp + 0x3c]
add esp, 8
and ax, 0xdbf
xor ax, word [ebx + 0x10]
cmp ebx, dword [esp + 0x30]
movzx ecx, ax
mov dword [esp + 0x34], ecx
jne 0x444dae
mov edx, ecx
or edx, 2
movzx eax, dx
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x38]
test al, 2
jne 0x444de8
test al, 0x2c
je 0x444de8
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x30]
push 1
push ecx
mov eax, ebx
call fcn.0043ad30
mov dx, word [ebx + 0x10]
xor dx, word [esp + 0x40]
add esp, 8
and dx, 0xdbf
xor dx, word [ebx + 0x10]
movzx eax, dx
mov dword [esp + 0x38], eax
mov edi, dword [edi + 0x10]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
call fcn.0043fcb0
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
test eax, eax
jge 0x444e0f
movzx ecx, byte [edi]
movzx ecx, byte [ecx + 0x4c17cc]
jmp 0x444e27
jne 0x444e1d
movzx edx, byte [edi]
movzx ecx, byte [edx + 0x4c17d2]
jmp 0x444e27
movzx ecx, byte [edi]
movzx ecx, byte [ecx + 0x4c17d8]
test ecx, ecx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x70], eax
movzx eax, word [esp + 0x38]
mov word [edx + 0x10], ax
movzx eax, word [esp + 0x34]
mov edx, dword [esp + 0x28]
mov word [edx + 0x10], ax
jne 0x446cad
add edi, 0x14
jmp 0x443dbe
cmp dword [esp + 0x70], 0
je 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
test byte [edi + 2], dl
jne 0x444e7e
mov dword [esp + 0x24], 0
jmp 0x444e88
mov eax, dword [edi - 4]
add eax, 4
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi + 8]
xor esi, esi
test eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x30], ecx
jle case.0x443dea.89
mov edx, dword [esp + 0x2c]
add edx, 0x14
mov dword [esp + 0x3c], edx
lea esp, [esp]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x444ecd
mov ebx, dword [eax + esi*4]
jmp 0x444ecf
mov ebx, esi
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x3c]
mov edi, dword [eax]
movzx eax, byte [esi + edx]
mov ecx, dword [esp + 0x30]
and eax, 1
mov dword [esp + 0x54], eax
lea eax, [ebx + ecx]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x48]
add eax, ebx
lea eax, [eax + eax*4]
lea edx, [ecx + edx*8]
lea eax, [ecx + eax*8]
call fcn.0043fcb0
test eax, eax
mov dword [esp + 0x70], eax
jne 0x444f32
add dword [esp + 0x3c], 4
add esi, 1
cmp esi, dword [esp + 0x40]
jl 0x444ec0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
test byte [esi + edx], 2
je 0x444f69
mov ecx, dword [esp + 0x48]
add ecx, ebx
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
test byte [ecx + edx*8 + 0x10], 1
jne 0x444f63
mov edx, dword [esp + 0x30]
add ebx, edx
lea edx, [ebx + ebx*4]
test byte [ecx + edx*8 + 0x10], 1
je 0x444f69
neg eax
mov dword [esp + 0x70], eax
cmp dword [esp + 0x54], 0
mov edi, dword [esp + 0x18]
je 0x444ce8
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
neg eax
mov dword [esp + 0x70], eax
add edi, 0x14
jmp 0x443dbe
mov eax, dword [esp + 0x70]
test eax, eax
mov edx, dword [esp + 0x50]
jge 0x444fb5
mov edi, dword [edi + 4]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov edi, eax
mov dword [esp + 0x18], eax
add edi, 0x14
jmp 0x443dbe
jne 0x444fcf
mov edi, dword [edi + 8]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov edi, eax
mov dword [esp + 0x18], eax
add edi, 0x14
jmp 0x443dbe
mov edi, dword [edi + 0xc]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov edi, eax
mov dword [esp + 0x18], eax
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
push 2
lea edx, [edx + ecx*8]
call fcn.0043b0a0
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
add esp, 4
push 2
lea edx, [ecx + eax*8]
call fcn.0043b0a0
mov ecx, dword [esp + 0x28]
add esp, 4
cmp byte [edi], 0x2c
jne 0x44502f
lea edx, [eax + ecx*2]
movzx eax, byte [ecx + edx + 0x4c2064]
jmp 0x44503a
lea eax, [eax + ecx*2]
movzx eax, byte [ecx + eax + 0x4c20ec]
cmp eax, 2
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
jne 0x445064
mov ax, word [ecx + 0x10]
and ax, 0xf241
or ax, 1
mov word [ecx + 0x10], ax
add edi, 0x14
jmp 0x443dbe
cdq
mov dword [ecx + 4], edx
mov dx, word [ecx + 0x10]
and dx, 0xf244
or dx, 4
mov dword [ecx], eax
mov word [ecx + 0x10], dx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
lea edx, [edx + ecx*8]
call fcn.0043b0a0
add esp, 4
xor eax, dword [edi + 0x10]
cdq
push edx
push eax
mov eax, dword [edi + 8]
jmp 0x4448e1
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 0x10], 1
mov eax, dword [edi + 8]
lea edx, [ecx + edx*8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x34], ecx
jne 0x444446
push 0
call fcn.0043b0a0
add esp, 4
neg eax
sbb eax, eax
add eax, 1
cdq
push edx
push eax
mov eax, dword [esp + 0x3c]
call fcn.0043b520
add esp, 8
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 8]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0x34], eax
call fcn.0043b480
mov eax, dword [esp + 0x28]
test byte [eax + 0x10], 1
jne 0x444ce8
mov ecx, dword [esp + 0x34]
mov edx, eax
mov word [ecx + 0x10], 4
call fcn.0043b000
mov ecx, eax
mov eax, dword [esp + 0x34]
not ecx
not edx
mov dword [eax], ecx
mov dword [eax + 4], edx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [ebx + 0xd0]
test eax, eax
mov dword [esp + 0x24], eax
je 0x4451c0
mov ecx, edi
sub ecx, dword [ebx + 0x68]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
and esi, 7
mov edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x14]
mov ebx, 1
mov ecx, esi
shl ebx, cl
shr edx, 3
test byte [edx + eax], bl
jne 0x446cad
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x14]
mov ebx, dword [ebp + 8]
add eax, edx
mov dl, 1
mov ecx, esi
mov esi, dword [esp + 0x1c]
shl dl, cl
or byte [eax], dl
mov edx, dword [ebx + 0x68]
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
add edi, 0x14
jmp 0x443dbe
mov eax, dword [ebx + 0x68]
mov ecx, dword [eax + 4]
cmp ecx, dword [edi + 4]
je 0x446cad
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x68]
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x1c]
mov dword [edi + 4], eax
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
push ecx
lea edx, [eax + edx*8]
call fcn.0043b0a0
add esp, 4
test eax, eax
jne 0x446cad
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
xor ecx, ecx
cmp dword [edi + 0xc], ecx
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
sete cl
lea edx, [eax + edx*8]
push ecx
call fcn.0043b0a0
add esp, 4
test eax, eax
je 0x446cad
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
test byte [edx + ecx*8 + 0x10], 1
jne 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
test eax, eax
jl 0x4452ad
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
movzx edx, word [eax + 0x3e]
mov ecx, dword [edi + 0xc]
cmp ecx, edx
jge 0x44529b
mov eax, dword [eax + ecx*4 + 0x58]
cmp eax, 0xc
jb 0x445291
and al, 1
neg al
sbb eax, eax
and eax, 0xfffffffc
add eax, 8
jmp 0x4452d3
movzx ax, byte [eax + 0x4c2248]
jmp 0x4452d0
mov ecx, dword [edi + 0x10]
sub ecx, 1
mov edx, 1
shl edx, cl
movzx eax, dx
jmp 0x4452d3
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
movzx edx, byte [ecx + eax*8 + 0x10]
and edx, 0x3f
movzx ecx, byte [edx + 0x4c21d0]
sub ecx, 1
mov eax, 1
shl eax, cl
movzx eax, ax
test word [edi + 2], ax
jne 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 0x10], 1
jne 0x44532b
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 1
jne 0x44532b
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
push 0
push 0
lea eax, [edx + ecx*8]
call fcn.0043b520
add esp, 8
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.0043b480
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
test byte [eax + edx*8 + 0x10], 1
je 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
test eax, eax
je case.0x443dea.89
cmp byte [eax + 2], 0
je case.0x443dea.89
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
call fcn.0043b480
jmp 0x446cad
mov eax, dword [ebp + 8]
mov edx, dword [edi + 4]
mov ecx, dword [eax + 0x60]
mov ebx, dword [ecx + edx*4]
mov edx, dword [edi + 8]
mov dword [esp + 0x30], edx
mov edi, edi
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x1c]
mov edx, dword [ebx + 0x48]
mov dword [esp + 0x28], edx
je 0x445407
cmp byte [ebx + 2], 0
jne 0x44542c
cmp byte [ebx + 3], 0
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x24], eax
je 0x4453fc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x445470
mov edx, dword [esp + 0x30]
mov eax, dword [eax + edx*4 + 4]
test eax, eax
jbe 0x445470
mov ebx, dword [ebx + 0x28]
add eax, 0xffffffff
mov dword [esp + 0x30], eax
jmp 0x4453b0
cmp byte [eax], 0
je 0x445487
jmp 0x445413
mov eax, dword [ebx + 0x2c]
cmp byte [eax], 0
je 0x44550d
mov edi, ebx
call fcn.0043f570
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
jmp 0x4453b0
cmp byte [ebx], 3
jne 0x445453
mov eax, dword [ebx + 0x24]
test eax, eax
jle 0x445453
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea eax, [eax + ecx*8]
mov ecx, dword [eax + 0xc]
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x50], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 0x4c], ecx
jmp 0x4454ab
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea eax, [eax + edx*8]
call fcn.0043b480
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov esi, ebx
call fcn.0043f510
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov ecx, esi
call fcn.00431d60
mov ecx, dword [esi + 0x2c]
mov dword [ebx + 0x50], ecx
mov ecx, dword [esp + 0x24]
lea esi, [ebx + 0x54]
call fcn.00432330
mov edx, dword [esp + 0x28]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebx + 0x4c]
mov dword [ebx + 0x20], ecx
movzx eax, byte [eax]
cmp eax, 0x80
mov dword [edx], eax
jae 0x4454cc
mov dword [ebx + 0x34], 1
jmp 0x4454e0
mov esi, dword [esp + 0x28]
mov ecx, dword [ebx + 0x4c]
call fcn.0041dc20
movzx ecx, al
mov dword [ebx + 0x34], ecx
mov edx, esi
mov ecx, dword [ebx + 0x54]
xor eax, eax
mov word [ebx + 0x3e], ax
cmp ecx, dword [edx]
jae 0x44561f
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x54], eax
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x4456fb
cmp eax, dword [ebx + 0x50]
ja 0x4456fb
movzx ecx, word [ebx + 0x3e]
mov eax, dword [esp + 0x30]
cmp ecx, eax
ja 0x445780
mov eax, dword [ebx + 0x34]
cmp eax, dword [edx]
jae 0x445726
mov edx, dword [ebx + 0x4c]
test edx, edx
jne 0x4455a3
mov ecx, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1e4], eax
mov dword [esp + 0x1e8], eax
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1f4], eax
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], eax
mov ecx, dword [ecx]
mov edx, dword [ebx + 0x2c]
lea eax, [esp + 0x1d8]
call fcn.0043bab0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edx, dword [esp + 0x1e0]
mov edi, dword [esp + 0x18]
movzx eax, word [ebx + 0x3e]
mov ecx, dword [esp + 0x28]
mov esi, dword [ecx + eax*4]
mov ecx, dword [ebx + 0x34]
add ecx, edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
add edx, dword [esp + 0x34]
mov dword [esp + 0x48], eax
lea eax, [ebx + eax*4 + 0x58]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x3c], eax
movzx eax, byte [ecx]
cmp eax, 0x80
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov dword [edx], eax
jae 0x445627
movzx eax, al
movzx eax, byte [eax + 0x4c2150]
cdq
add ecx, 1
add esi, eax
adc dword [esp + 0xac], edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xa8], esi
jmp 0x445664
mov edx, dword [ebx + 0x4c]
jmp 0x4455a3
mov ecx, dword [esp + 0x2c]
lea esi, [esp + 0x38]
call fcn.0041dc20
mov edx, dword [esp + 0x3c]
movzx ecx, al
mov eax, dword [esp + 0x38]
add dword [esp + 0x2c], ecx
mov dword [edx], eax
call fcn.0043f5d0
add dword [esp + 0xa8], eax
mov esi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x2c]
adc dword [esp + 0xac], 0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
add dword [esp + 0x3c], 4
add eax, 1
cmp eax, dword [esp + 0x30]
mov dword [edx + eax*4], esi
mov edx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
ja 0x44568f
cmp ecx, edx
jb 0x4455e7
jmp 0x445693
cmp ecx, edx
jb 0x4456a9
cmp ecx, edx
ja 0x4456bb
mov edx, dword [ebx + 0x50]
cmp esi, edx
jne 0x4456bb
xor edx, edx
cmp dword [esp + 0xac], edx
jne 0x4456bb
xor edx, edx
cmp dword [esp + 0xac], edx
jb 0x4456ca
ja 0x4456bb
cmp esi, dword [ebx + 0x50]
jbe 0x4456ca
mov eax, dword [esp + 0x28]
cmp dword [eax], 0
jne 0x4456e9
mov ecx, dword [esp + 0x24]
xor eax, eax
sub ecx, dword [esp + 0x34]
cmp dword [ebx + 0x4c], 0
mov word [ebx + 0x3e], ax
mov dword [ebx + 0x34], ecx
jne 0x44572e
lea eax, [esp + 0x1d8]
call fcn.0043af50
jmp 0x44572e
cmp dword [ebx + 0x4c], 0
jne 0x4456fb
lea eax, [esp + 0x1d8]
call fcn.0043af50
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jle 0x449a77
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4 - 0x14]
mov edi, edx
mov dword [esp + 0x18], edx
add edi, 0x14
jmp 0x443dbe
mov dword [esp + 0x38], 0
movzx eax, word [ebx + 0x3e]
cmp eax, dword [esp + 0x30]
ja 0x445788
cmp byte [edi + 1], 0xf6
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
jne 0x44576c
mov ecx, dword [edi + 0x10]
push 0x2000
push ecx
push eax
call fcn.0043b690
mov esi, dword [esp + 0x28]
mov ebx, dword [ebp + 8]
add esp, 0xc
add edi, 0x14
jmp 0x443dbe
call fcn.0043b480
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [ebx + eax*4 + 0x58]
mov dword [esp + 0x38], edx
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test word [ecx + eax*8 + 0x10], 0x9000
lea esi, [ecx + eax*8]
je 0x4457a5
mov eax, esi
call fcn.0043b480
mov ecx, dword [ebx + 0x54]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
cmp ecx, dword [edx + eax*4 + 4]
jb 0x445871
mov ecx, dword [ebx + 0x4c]
add ecx, dword [edx + eax*4]
mov ebx, dword [esp + 0x38]
cmp ebx, 0xc
mov dword [esp + 0x34], ecx
jae 0x4457e5
mov edx, esi
mov eax, ebx
call fcn.0043f680
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov dl, byte [esp + 0x4c]
add ebx, 0xfffffff4
shr ebx, 1
mov byte [esi + 0x12], dl
lea edx, [ebx + 2]
cmp dword [esi + 0x18], edx
mov dword [esi + 0xc], ebx
jge 0x44582c
mov eax, dword [esp + 0x1c]
cmp ebx, dword [eax + 0x78]
jg 0x449c94
mov ecx, edx
xor eax, eax
mov edx, esi
mov word [esi + 0x10], 1
call fcn.0043aad0
test eax, eax
jne 0x449d98
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
jmp 0x445832
mov edx, dword [esi + 0x20]
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
push ebx
push ecx
push eax
call sub.ntdll.dll_memcpy
mov ecx, dword [esi + 8]
mov eax, dword [esp + 0x44]
mov byte [ebx + ecx], 0
mov edx, dword [esi + 8]
mov byte [ebx + edx + 1], 0
mov ebx, dword [ebp + 8]
and eax, 1
mov ax, word [eax*2 + 0x4c2254]
add esp, 0xc
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov cl, byte [esp + 0x4c]
mov eax, dword [esp + 0x38]
mov byte [esi + 0x12], cl
movzx ecx, word [edi + 2]
test cl, 0xc0
je 0x445892
cmp eax, 0xc
jb 0x44588e
test al, 1
je 0x44589b
test cl, cl
js 0x44589b
call fcn.0043f5d0
test eax, eax
jne 0x4458ba
mov eax, dword [esp + 0x38]
mov edx, esi
mov ecx, 0x4c1818
call fcn.0043f680
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [esp + 0x1c]
cmp eax, dword [edx + 0x78]
jg 0x449c94
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + edx*4]
mov edx, dword [ebx + 0x2c]
push ecx
push edx
mov edi, eax
call fcn.0043b9e0
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 8]
mov edx, esi
call fcn.0043f680
and word [esi + 0x10], 0xbfff
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0x10]
cmp word [eax + 0x22], 0
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 4]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea edx, [ecx + edx*8]
mov dword [esp + 0x54], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], 0
jle case.0x443dea.89
mov ecx, dword [esp + 0x40]
add ecx, 0xe
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x2c]
movzx ecx, word [edx]
test cl, 0x60
je 0x445970
test cl, 0x20
jne 0x445a3a
cmp dword [edi + 0xc], 0
jne 0x445a35
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x2c]
mov cl, byte [ecx - 6]
push eax
mov eax, dword [esp + 0x2c]
call fcn.00443a90
mov edx, dword [esp + 0x2c]
movzx eax, word [edx + 0x10]
add esp, 4
test al, 1
jne case.default.0x4459b1
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx - 0xa]
shr ecx, 4
and ecx, 0xf
add ecx, 0xfffffffe
cmp ecx, 4
ja case.default.0x4459b1
jmp dword [ecx*4 + 0x44a27c]
test al, 0x10
jmp 0x445a2b
test al, 4
jmp 0x445a2b
test al, 2
jmp 0x445a2b
test al, 4
je 0x445a29
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
cmp ecx, 0x7fff
mov dword [esp + 0x180], edx
mov dword [esp + 0x184], ecx
jg 0x445a0e
jl 0x4459ee
cmp edx, 0xffffffff
ja 0x445a0e
cmp ecx, 0xffff8000
jl 0x445a0e
jg 0x4459fc
test edx, edx
jb 0x445a0e
mov edx, dword [esp + 0x28]
and eax, 0xfffb
or eax, 0x20
mov word [edx + 0x10], ax
jmp case.default.0x4459b1
fild qword [esp + 0x180]
mov ecx, dword [esp + 0x28]
and eax, 0xfffb
or eax, 8
fstp qword [ecx]
mov word [ecx + 0x10], ax
jmp case.default.0x4459b1
test al, 0x28
je 0x449a8a
mov eax, dword [esp + 0x54]
add dword [esp + 0x28], 0x28
mov ecx, dword [esp + 0x24]
movsx edx, word [eax + 0x22]
add dword [esp + 0x2c], 0x10
add ecx, 1
cmp ecx, edx
mov dword [esp + 0x24], ecx
jl 0x445951
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
mov ebx, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edi, edi
mov edx, dword [esp + 0x4c]
mov cl, byte [ebx]
push edx
mov eax, esi
call fcn.00443a90
add esp, 4
cmp byte [ebx], 0x45
jne 0x445add
movzx eax, word [esi + 0x10]
test al, 4
je 0x445add
mov ecx, dword [esi + 4]
cmp ecx, 0x7fff
mov edx, dword [esi]
mov dword [esp + 0x198], edx
mov dword [esp + 0x19c], ecx
jg 0x445ac8
jl 0x445ab0
cmp edx, 0xffffffff
ja 0x445ac8
cmp ecx, 0xffff8000
jl 0x445ac8
jg 0x445abe
test edx, edx
jb 0x445ac8
and eax, 0xfffb
or eax, 0x20
jmp 0x445ad9
fild qword [esp + 0x198]
and eax, 0xfffb
or eax, 8
fstp qword [esi]
mov word [esi + 0x10], ax
add ebx, 1
cmp byte [ebx], 0
je 0x444ce8
add esi, 0x28
jmp 0x445a70
mov ecx, dword [esp + 0x20]
mov ebx, dword [edi + 0x10]
xor eax, eax
test ebx, ebx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [edi + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x48], edx
lea edx, [edx + eax*8 - 0x28]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], ecx
je 0x445b86
mov edx, dword [esp + 0x48]
add edx, 0x10
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0x4c]
mov cl, byte [ebx]
push eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
call fcn.00443a90
add esp, 4
cmp byte [ebx], 0x45
jne 0x445b79
mov ecx, dword [esp + 0x3c]
movzx eax, word [ecx]
test al, 4
je 0x445b79
and eax, 0xfffb
or eax, 0x20
mov word [ecx], ax
add dword [esp + 0x3c], 0x28
add ebx, 1
cmp byte [ebx], 0
jne 0x445b48
mov ebx, dword [esp + 0x38]
add ebx, 0x1c
lea ecx, [ecx]
movzx eax, word [ebx - 0xc]
test al, 1
je 0x445bb0
and eax, 0x400
neg eax
sbb eax, eax
and eax, 0xa
add dword [esp + 0x28], 1
mov dword [ebx], eax
jmp 0x445dbc
test al, 0x24
je 0x445d1a
mov ecx, dword [ebx - 0x18]
test ecx, ecx
mov edx, dword [ebx - 0x1c]
mov dword [esp + 0x1a0], edx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], ecx
jg 0x445be8
jl 0x445be4
test edx, edx
jae 0x445be8
not edx
not ecx
add dword [esp + 0x28], 1
test ecx, ecx
mov dword [esp + 0xf8], edx
ja 0x445c4c
jb 0x445bff
cmp edx, 0x7f
ja 0x445c53
mov ecx, dword [esp + 0x120]
mov eax, ecx
and eax, 1
xor edx, edx
cmp eax, ecx
jne 0x445c37
cmp edx, dword [esp + 0x124]
jne 0x445c37
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x93], 4
jb 0x445c37
mov edx, dword [esp + 0xf8]
add edx, 8
mov dword [ebx], edx
jmp 0x445dbc
add dword [esp + 0x58], 1
mov dword [ebx], 1
adc dword [esp + 0x5c], 0
jmp 0x445dbc
mov edx, dword [esp + 0xf8]
test ecx, ecx
ja 0x445cbc
jb 0x445c61
cmp edx, 0x7fff
ja 0x445c76
add dword [esp + 0x58], 2
mov dword [ebx], 2
adc dword [esp + 0x5c], 0
jmp 0x445dbc
test ecx, ecx
ja 0x445cbc
jb 0x445c84
cmp edx, 0x7fffff
ja 0x445c99
add dword [esp + 0x58], 3
mov dword [ebx], 3
adc dword [esp + 0x5c], 0
jmp 0x445dbc
test ecx, ecx
ja 0x445cbc
jb 0x445ca7
cmp edx, 0x7fffffff
ja 0x445cbc
add dword [esp + 0x58], 4
mov dword [ebx], 4
adc dword [esp + 0x5c], 0
jmp 0x445dbc
cmp ecx, 0x7fff
ja 0x445ce0
jb 0x445ccb
cmp edx, 0xffffffff
ja 0x445ce0
add dword [esp + 0x58], 6
mov dword [ebx], 5
adc dword [esp + 0x5c], 0
jmp 0x445dbc
add dword [esp + 0x58], 8
adc dword [esp + 0x5c], 0
test al, 0x20
je 0x445d0f
fild qword [esp + 0x1a0]
and eax, 0xffdf
or eax, 8
mov word [ebx - 0xc], ax
fstp qword [ebx - 0x1c]
mov dword [ebx], 7
jmp 0x445dbc
mov dword [ebx], 6
jmp 0x445dbc
test al, 8
je 0x445d38
add dword [esp + 0x28], 1
add dword [esp + 0x58], 8
mov dword [ebx], 7
adc dword [esp + 0x5c], 0
jmp 0x445dbc
mov ecx, dword [ebx - 0x10]
mov edx, eax
shr edx, 1
and edx, 1
test eax, 0x400
mov dword [esp + 0x2c], ecx
lea ecx, [edx + ecx*2 + 0xc]
mov dword [esp + 0x24], ecx
je 0x445d96
mov eax, dword [ebx - 0x1c]
lea esi, [ebx - 0x1c]
mov edx, ecx
lea ecx, [edx + eax*2]
mov edx, dword [esp + 0x58]
or edx, dword [esp + 0x5c]
mov dword [esp + 0x24], ecx
je 0x445d87
call fcn.0043ace0
test eax, eax
jne 0x449d98
mov eax, dword [esi]
add dword [esp + 0x2c], eax
mov edi, dword [esp + 0x18]
jmp 0x445d96
cdq
add dword [esp + 0xc0], eax
adc dword [esp + 0xc4], edx
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x58], ecx
mov esi, dword [esp + 0x24]
push 0
adc dword [esp + 0x60], 0
push esi
call fcn.0041dca0
add esp, 8
add dword [esp + 0x28], eax
mov dword [ebx], esi
mov esi, dword [esp + 0x1c]
lea edx, [ebx - 0x1c]
cmp edx, dword [esp + 0x48]
je 0x445dcd
sub ebx, 0x28
jmp 0x445b90
cmp dword [esp + 0x28], 0x7e
jg 0x445ddf
add dword [esp + 0x28], 1
mov ebx, dword [esp + 0x28]
jmp 0x445e11
mov ebx, dword [esp + 0x28]
mov eax, ebx
cdq
push edx
push eax
call fcn.0041dca0
add ebx, eax
mov dword [esp + 0x48], eax
mov eax, ebx
cdq
push edx
push eax
mov dword [esp + 0x38], ebx
call fcn.0041dca0
add esp, 0x10
cmp dword [esp + 0x40], eax
jge 0x445e11
add ebx, 1
mov dword [esp + 0x28], ebx
mov eax, ebx
cdq
mov ebx, eax
add ebx, dword [esp + 0x58]
mov dword [esp + 0x148], eax
mov eax, edx
adc eax, dword [esp + 0x5c]
mov ecx, ebx
add ecx, dword [esp + 0xc0]
mov dword [esp + 0x14c], edx
adc eax, dword [esp + 0xc4]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x18]
cdq
cmp dword [esp + 0x1ac], edx
mov dword [esp + 0x280], eax
jg 0x445e71
jl 0x445e63
cmp ecx, eax
ja 0x445e71
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x20]
mov dword [eax + 8], ecx
mov esi, eax
jmp 0x445eae
mov eax, dword [esi + 0x78]
cdq
cmp dword [esp + 0x1ac], edx
jg 0x449c94
jl 0x445e8c
cmp ecx, eax
ja 0x449c94
mov eax, dword [esp + 0x34]
cmp dword [eax + 0x18], ebx
mov esi, eax
jge 0x445eed
xor eax, eax
mov ecx, ebx
mov edx, esi
call fcn.0043aad0
test eax, eax
jne 0x449d98
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0xc0]
mov ecx, eax
or ecx, dword [esp + 0xc4]
mov dword [esi + 0xc], ebx
mov word [esi + 0x10], 0x10
je 0x445ed1
mov dword [esi], eax
mov word [esi + 0x10], 0x410
mov eax, dword [esp + 0x28]
cmp eax, 0x80
mov esi, dword [esi + 8]
lea edx, [esi + eax]
mov dword [esp + 0x30], edx
jge 0x445efa
mov byte [esi], al
add esi, 1
jmp 0x445f14
mov edx, dword [eax + 0x20]
and word [eax + 0x10], 0x2d
mov dword [eax + 8], edx
jmp 0x445eae
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
push eax
push ecx
call fcn.0041da30
add esp, 8
add esi, eax
mov ebx, dword [esp + 0x48]
add ebx, 0xc
jmp 0x445f20
mov eax, dword [ebx + 0x10]
cmp eax, 7
ja 0x445f73
mov byte [esi], al
add esi, 1
test eax, eax
mov dword [esp + 0x40], esi
je 0x445fb7
movzx eax, byte [eax + 0x4c2150]
mov ecx, dword [ebx - 0xc]
mov esi, dword [esp + 0x30]
mov edx, dword [ebx - 8]
mov dword [esp + 0x2c], eax
sub eax, 1
mov byte [eax + esi], cl
je 0x445f65
shrd ecx, edx, 8
shr edx, 8
sub eax, 1
mov byte [eax + esi], cl
jne 0x445f56
add esi, dword [esp + 0x2c]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x40]
jmp 0x445fb7
cmp eax, 0x80
jae 0x445f8c
mov byte [esi], al
add esi, 1
cmp eax, 0xe
jb 0x445fb7
mov eax, dword [ebx]
test eax, eax
jle 0x445fb7
jmp 0x445f9f
push 0
push eax
call fcn.0041da30
add esi, eax
mov eax, dword [ebx]
add esp, 8
test eax, eax
je 0x445fb7
mov edx, dword [ebx - 4]
push eax
mov eax, dword [esp + 0x34]
push edx
push eax
call sub.ntdll.dll_memcpy
mov ecx, dword [ebx]
add esp, 0xc
add dword [esp + 0x30], ecx
lea edx, [ebx - 0xc]
cmp edx, dword [esp + 0x38]
je 0x444ce8
add ebx, 0x28
jmp 0x445f20
cmp dword [edi + 0xc], 0
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov edx, dword [ecx + eax*4]
mov eax, dword [edx + 0x2c]
je 0x445ff2
push eax
call fcn.00432e10
add esp, 4
mov dword [esp + 0xe0], eax
mov esi, edx
jmp 0x44602a
lea ecx, [esp + 0xe0]
push ecx
xor edi, edi
push esi
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], edi
call fcn.00438230
add esp, 8
cmp eax, edi
mov dword [esp + 0x14], eax
jne 0x449cf8
mov esi, dword [esp + 0xe4]
mov edi, dword [esp + 0x18]
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov edx, dword [esp + 0xe0]
mov dword [eax], edx
mov dword [eax + 4], esi
jmp 0x4492e6
mov eax, dword [edi + 4]
test eax, eax
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
jne 0x446139
cmp dword [esi + 0xc4], eax
jg 0x449903
mov eax, ecx
call fcn.0041c9d0
mov edx, dword [esi + 0x1fc]
add edx, dword [esi + 0x1f8]
mov dword [esp + 0x24], eax
push edx
push 0
push esi
call fcn.0048d580
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x24]
add eax, 0x21
push 0
push eax
mov ecx, esi
call fcn.00419650
mov edi, eax
add esp, 8
test edi, edi
je 0x446114
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x3c]
add ecx, 1
push ecx
lea eax, [edi + 0x20]
push edx
push eax
mov dword [edi], eax
call sub.ntdll.dll_memcpy
add esp, 0xc
cmp byte [esi + 0x55], 0
je 0x4460da
mov byte [esi + 0x55], 0
mov byte [esi + 0x5d], 1
jmp 0x4460e1
add dword [esi + 0x1f8], 1
mov eax, dword [esi + 0x1ec]
mov dword [edi + 0x18], eax
mov ecx, dword [esi + 0x200]
mov dword [esi + 0x1ec], edi
mov dword [edi + 8], ecx
mov edx, dword [esi + 0x204]
mov dword [edi + 0xc], edx
mov eax, dword [esi + 0x208]
mov dword [edi + 0x10], eax
mov ecx, dword [esi + 0x20c]
mov dword [edi + 0x14], ecx
cmp dword [esp + 0x14], 0
jne 0x449cf8
cmp byte [ebx + 0x95], 3
jne 0x4443f9
mov dword [esp + 0x14], 0x65
jmp 0x449ede
mov eax, dword [esi + 0x1ec]
test eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], eax
je 0x446170
mov edi, eax
mov eax, dword [esp + 0x3c]
mov edx, dword [edi]
call fcn.0041cd90
test eax, eax
je 0x446192
mov edi, dword [edi + 0x18]
add dword [esp + 0x30], 1
test edi, edi
mov dword [esp + 0x24], edi
jne 0x446151
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
push ecx
push str.no_such_savepoint:__s
call fcn.0043c1b0
add esp, 8
mov dword [esp + 0x14], 1
jmp 0x449cf8
mov eax, dword [esp + 0x38]
xor ecx, ecx
cmp dword [esi + 0xc4], ecx
jle 0x4461a9
cmp eax, 1
je 0x44990d
cmp dword [edi + 0x18], ecx
jne 0x446209
cmp byte [esi + 0x5d], 0
je 0x446209
cmp eax, 1
mov dword [esp + 0x48], 1
jne 0x44620d
push eax
mov eax, ebx
call fcn.0043ebb0
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449ede
mov edi, ebx
mov byte [esi + 0x55], 1
call fcn.0043ec30
cmp eax, 5
je 0x449aea
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x24]
test eax, eax
mov dword [esp + 0x14], eax
mov ebx, edx
je 0x446280
mov byte [esi + 0x55], 0
jmp 0x4462e7
mov dword [esp + 0x48], ecx
mov edx, dword [esi + 0x1f8]
sub edx, dword [esp + 0x30]
sub edx, 1
cmp eax, 2
mov dword [esp + 0x30], edx
jne 0x446286
mov eax, dword [esi + 0x18]
and eax, 1
cmp dword [esi + 0x14], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ecx
jle 0x44628a
xor edx, edx
cmp eax, ecx
sete dl
xor edi, edi
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx + edi + 4]
push eax
push 0x204
push edx
call fcn.00431860
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x2c]
add eax, 1
add edi, 0x10
cmp eax, dword [esi + 0x14]
mov dword [esp + 0x2c], eax
jl 0x446243
xor ecx, ecx
jmp 0x44628a
mov byte [esi + 0x5d], 0
jmp 0x4462f2
mov dword [esp + 0x3c], ecx
cmp dword [esi + 0x14], ecx
mov dword [esp + 0x2c], ecx
jle 0x4462cc
xor edi, edi
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x10]
mov ecx, dword [ecx + edi + 4]
push eax
mov eax, dword [esp + 0x3c]
call fcn.00431ab0
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x2c]
add eax, 1
add edi, 0x10
cmp eax, dword [esi + 0x14]
mov dword [esp + 0x2c], eax
jl 0x446295
cmp dword [esp + 0x3c], 0
je 0x4462e7
xor ecx, ecx
mov eax, esi
call fcn.00440b20
mov eax, esi
call fcn.00460930
or dword [esi + 0x18], 1
cmp dword [esp + 0x14], 0
jne 0x449cf8
mov edi, dword [esp + 0x24]
cmp dword [esi + 0x1ec], edi
je 0x446325
mov edi, edi
mov eax, dword [esi + 0x1ec]
mov edx, dword [eax + 0x18]
mov ecx, esi
mov dword [esi + 0x1ec], edx
call fcn.00419270
add dword [esi + 0x1f8], 0xffffffff
cmp dword [esi + 0x1ec], edi
jne 0x446300
mov eax, dword [esp + 0x38]
cmp eax, 1
jne 0x446354
mov eax, dword [edi + 0x18]
mov dword [esi + 0x1ec], eax
mov eax, edi
mov ecx, esi
call fcn.00419270
cmp dword [esp + 0x48], 0
jne 0x446114
add dword [esi + 0x1f8], 0xffffffff
jmp 0x446388
cmp dword [esp + 0x48], 0
mov ecx, dword [edi + 8]
mov dword [esi + 0x200], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x204], edx
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x208], ecx
mov edx, dword [edi + 0x14]
mov dword [esi + 0x20c], edx
je 0x446388
cmp eax, 2
jne 0x446114
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
push eax
push ecx
push esi
call fcn.0048d580
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jmp 0x446119
mov edx, dword [edi + 8]
test edx, edx
mov dword [esp + 0x48], 0
je 0x4463cb
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
and eax, 0x100000
and ecx, 2
or eax, ecx
jne 0x449c31
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x24], eax
je 0x44649a
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x48]
push eax
push edx
push ecx
call fcn.004308c0
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449c5a
test byte [ebx + 0x98], 0x20
je 0x44649a
cmp dword [edi + 8], eax
je 0x44649a
cmp byte [esi + 0x55], al
je 0x44642e
cmp dword [esi + 0xc0], 1
jle 0x44649a
cmp dword [ebx + 0x30], 0
jne 0x44644c
add dword [esi + 0x1fc], 1
mov eax, dword [esi + 0x1fc]
mov edx, dword [esi + 0x1f8]
add edx, eax
mov dword [ebx + 0x30], edx
mov eax, dword [ebx + 0x30]
sub eax, 1
push eax
push 0
push esi
call fcn.0048d580
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x446476
mov eax, dword [ebx + 0x30]
mov ecx, dword [esp + 0x24]
call fcn.00431a50
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 0x200]
mov dword [ebx + 0x48], ecx
mov edx, dword [esi + 0x204]
mov dword [ebx + 0x4c], edx
mov eax, dword [esi + 0x208]
mov dword [ebx + 0x50], eax
mov ecx, dword [esi + 0x20c]
mov dword [ebx + 0x54], ecx
cmp dword [esp + 0x14], 0
jne 0x449cf8
mov edx, dword [esp + 0x18]
cmp word [edx + 2], 0
mov edi, edx
je 0x4443fd
mov eax, dword [esp + 0x48]
cmp eax, dword [edi + 0xc]
jne 0x4464d2
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0xc]
mov eax, dword [edx + 4]
cmp eax, dword [edi + 0x10]
je 0x4443f9
mov ebx, dword [ebx + 0x7c]
test ebx, ebx
je 0x4464e2
mov eax, ebx
mov ecx, esi
call fcn.00419270
mov esi, dword [esp + 0x1c]
mov ebx, str.database_schema_has_changed
mov ecx, esi
call fcn.00419890
mov ebx, dword [ebp + 8]
mov dword [ebx + 0x7c], eax
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x10]
mov edx, eax
shl edx, 4
mov edx, dword [edx + ecx + 0xc]
mov ecx, dword [esp + 0x48]
cmp dword [edx], ecx
je 0x446514
call fcn.004608c0
mov edx, dword [ebx + 0x98]
and edx, 0xffffffed
or edx, 1
mov dword [esp + 0x14], 0x11
mov dword [ebx + 0x98], edx
jmp 0x449cf8
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
lea ecx, [esp + 0x15c]
push ecx
mov ecx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push edx
call fcn.00438160
add esp, 8
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, eax
mov eax, dword [esp + 0x15c]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
mov ecx, dword [edi + 8]
shl eax, 4
add eax, dword [esi + 0x10]
push edx
mov dword [esp + 0x28], eax
mov eax, dword [eax + 4]
push ecx
call fcn.004381c0
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 8]
add esp, 8
cmp eax, 1
jne 0x4465c7
movzx edx, word [edi + 2]
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
sub eax, edx
mov edx, dword [ecx + 0xc]
mov dword [edx], eax
or dword [esi + 0x18], 1
mov eax, dword [edi + 4]
call fcn.0046dc80
mov ebx, dword [ebp + 8]
jmp 0x4465d9
cmp eax, 2
jne 0x4465d9
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov dl, byte [edi + 0xc]
mov byte [ecx + 0x4c], dl
cmp dword [edi + 4], 1
jne 0x4465ef
xor ecx, ecx
mov eax, esi
call fcn.00440b20
and dword [ebx + 0x98], 0xfffffffc
cmp dword [esp + 0x14], 0
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + eax*4]
test eax, eax
je case.0x443dea.112
mov edx, dword [eax + 0x38]
cmp edx, dword [edi + 8]
jne case.0x443dea.112
mov esi, dword [eax + 0x2c]
lea ebx, [eax + 0x2c]
call fcn.0042dc70
mov dl, byte [edi + 2]
mov eax, dword [ebx]
and dl, 3
cmp dword [esp + 0x14], 0
mov byte [eax + 3], dl
jmp 0x4443ec
mov eax, dword [ebx + 0x98]
and al, 3
cmp al, 1
je 0x449c8a
mov edx, dword [edi + 8]
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x40], eax
shl eax, 4
add eax, dword [esi + 0x10]
cmp cl, 0x71
mov esi, dword [eax + 4]
mov dword [esp + 0x48], edx
mov dword [esp + 0x54], esi
jne 0x446699
movzx ecx, byte [edi + 2]
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
and ecx, 8
or ecx, 4
cmp al, byte [ebx + 0x93]
mov dword [esp + 0x2c], ecx
jae 0x4466a1
mov byte [ebx + 0x93], al
jmp 0x4466a1
mov dword [esp + 0x2c], 0
test byte [edi + 2], 0x10
je 0x4466bc
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x20]
lea esi, [edx + ecx*8]
call fcn.0043b150
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov al, byte [edi + 1]
cmp al, 0xf8
jne 0x4466d4
mov eax, dword [edi + 0x10]
movzx ecx, word [eax + 8]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], ecx
jmp 0x4466df
cmp al, 0xfd
jne 0x4466df
mov edx, dword [edi + 0x10]
mov dword [esp + 0x24], edx
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x24]
mov edi, dword [ebp + 8]
push 0
push eax
call fcn.00443870
mov edi, eax
add esp, 8
test edi, edi
je 0x449d98
mov cl, byte [esp + 0x40]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x2c]
or dword [edi + 8], 4
lea eax, [edi + 0x2c]
mov byte [edi + 1], cl
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
push ebx
mov byte [edi + 2], 1
mov dword [edi + 0x38], edx
call fcn.00431c50
mov dword [edi + 0x30], ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
add esp, 4
cmp byte [eax + 1], 0xf8
setne cl
mov byte [edi + 4], cl
mov edi, eax
mov dl, byte [edi + 2]
mov eax, dword [ebx]
and dl, 3
cmp dword [esp + 0x14], 0
mov byte [eax + 3], dl
jmp 0x4443ec
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 8]
mov eax, dword [edx + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edi + 4]
movsx ebx, word [esi + 0x3c]
push 0
push ecx
mov edi, edx
call fcn.00443870
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x449d98
mov eax, 1
or dword [ecx + 8], eax
mov byte [ecx + 2], al
mov edx, dword [esi + 0x30]
mov eax, dword [ecx + 8]
mov dword [ecx + 0x30], edx
mov dl, byte [esi + 4]
mov byte [ecx + 4], dl
mov edx, dword [esi + 0x38]
mov dword [ecx + 0x38], edx
mov edx, dword [esi + 8]
xor edx, eax
and edx, 4
xor edx, eax
mov dword [ecx + 8], edx
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, 8
or dword [ecx + 8], eax
or dword [esi + 8], eax
mov edx, dword [ecx + 0x30]
mov eax, dword [ecx + 0x2c]
push edx
mov edx, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x10]
mov esi, 4
call fcn.00431c50
mov esi, dword [esp + 0x20]
mov ebx, edi
mov edi, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x14], eax
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
test eax, eax
jle 0x44681e
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov dword [ecx + eax*8 + 0xc], 0
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov dword [ecx + edx*8 + 8], 0x4be549
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 4]
mov edx, dword [ecx + 0x60]
mov ebx, dword [edx + eax*4]
xor esi, esi
cmp ebx, esi
je 0x446861
test byte [ebx + 8], 8
jne 0x446861
movsx ecx, word [ebx + 0x3c]
cmp dword [edi + 8], ecx
jg 0x446861
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x10]
push esi
push edx
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x20], esi
call fcn.00437e30
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x446966
mov ebx, dword [edi + 8]
mov edi, dword [ebp + 8]
push esi
push eax
call fcn.00443870
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x449d98
or dword [ebx + 8], 1
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + 2]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
push 0x41e
or ecx, 5
push ecx
push eax
lea edi, [ebx + 0x10]
push edx
mov ecx, edi
xor edx, edx
call fcn.0042f6f0
add esp, 0x10
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
push eax
mov eax, dword [edi]
push 1
push eax
call fcn.004308c0
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x44693b
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0x10]
test esi, esi
mov dword [ebx + 0x30], esi
je 0x446919
movzx ecx, word [ecx + 2]
or ecx, 2
lea eax, [ebx + 0x38]
push ecx
push eax
mov eax, dword [edi]
call fcn.00437c00
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x446913
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x38]
mov ecx, dword [edi]
push esi
mov esi, 4
call fcn.00431c50
add esp, 4
mov dword [esp + 0x14], eax
mov byte [ebx + 4], 0
jmp 0x44693b
mov eax, dword [ebx + 0x2c]
mov ecx, dword [edi]
mov edx, 1
push 0
lea esi, [edx + 3]
mov dword [ebx + 0x38], edx
call fcn.00431c50
add esp, 4
mov dword [esp + 0x14], eax
mov byte [ebx + 4], 1
mov eax, dword [esp + 0x18]
xor edx, edx
cmp word [eax + 2], 8
setne dl
add edx, edx
add edx, edx
xor edx, dword [ebx + 8]
and edx, 4
xor dword [ebx + 8], edx
cmp dword [esp + 0x14], 0
je 0x446970
mov eax, dword [edi]
call fcn.0042ff50
xor esi, esi
cmp dword [esp + 0x14], esi
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov byte [ebx + 2], 1
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov edi, dword [ebp + 8]
push 1
push ecx
call fcn.00443870
add esp, 8
test eax, eax
je 0x449d98
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
push eax
mov dword [eax + 0x30], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.0044b840
add esp, 0xc
jmp 0x4443e6
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x128], ecx
add ecx, 1
mov dword [esp + 0x12c], edx
adc edx, 0
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x12c]
mov dword [eax + 0x1c], edx
mov eax, dword [esp + 0x128]
or eax, ecx
je 0x446cad
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov ebx, dword [edi + 0xc]
mov edi, dword [ebp + 8]
push 3
push ecx
call fcn.00443870
add esp, 8
test eax, eax
je 0x449d98
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov cl, 1
mov ebx, edi
mov edi, dword [esp + 0x18]
mov byte [eax + 2], cl
mov edx, dword [edx + 8]
mov dword [eax + 0x24], edx
mov byte [eax + 4], cl
mov dword [eax + 0x2c], 0x4d69ad
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x446a68
push ebx
call fcn.0043dea0
add esp, 4
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov dword [eax + edx*4], 0
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov esi, dword [ebx + 0x60]
mov esi, dword [esi + ecx*4]
xor ecx, ecx
cmp byte [esi + 4], cl
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], ecx
mov byte [esi + 2], cl
mov byte [esi + 3], cl
mov dword [esi + 0x20], ecx
je 0x446bcb
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ebx, [eax + edx*8]
movzx eax, word [ebx + 0x10]
mov dword [esp + 0x40], eax
and al, 0x2e
cmp al, 2
jne 0x446ac8
push ecx
mov eax, ebx
call fcn.00443a10
add esp, 4
mov edx, ebx
call fcn.0043b000
mov cx, word [esp + 0x40]
mov dword [esp + 0xf0], eax
movzx eax, word [ebx + 0x10]
test al, 0x24
mov dword [esp + 0xf4], edx
mov word [ebx + 0x10], cx
jne 0x446b91
test al, 8
jne 0x446b4f
test al, 1
jne 0x446cad
cmp dword [esp + 0x30], 0x17
jge 0x446cad
mov eax, dword [esi + 0x2c]
lea ecx, [esp + 0x64]
call fcn.004326c0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp dword [esp + 0x64], 0
jne 0x446ca9
cmp dword [esp + 0x24], 0
je 0x4498f0
add dword [esp + 0x18], 0x14
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
fld qword [ebx]
mov ebx, dword [esp + 0xf4]
mov edi, dword [esp + 0xf0]
sub esp, 8
fstp qword [esp]
push ebx
push edi
call fcn.0043fc30
add esp, 0x10
test eax, eax
jle 0x446b81
test byte [esp + 0x30], 1
jne 0x446b9f
sub dword [esp + 0x30], 1
jmp 0x446b9f
jge 0x446b9f
test byte [esp + 0x30], 1
je 0x446b9f
add dword [esp + 0x30], 1
jmp 0x446b9f
mov edi, dword [esp + 0xf0]
mov ebx, dword [esp + 0xf4]
mov eax, dword [esi + 0x2c]
lea edx, [esp + 0x64]
push edx
push 0
push ebx
push edi
push eax
call fcn.004326e0
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
jne 0x449cf8
jmp 0x446c54
mov ecx, dword [esi + 0x2c]
test byte [ecx + 3], 2
je 0x446bd8
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x30]
mov cx, word [edi + 0x10]
mov edi, dword [edi + 0xc]
add eax, 0xffffffff
mov dword [esp + 0x288], edx
test al, 1
sete dl
mov word [esp + 0x29c], cx
mov ecx, dword [esp + 0x20]
lea eax, [edi + edi*4]
mov byte [esp + 0x2a2], 0
lea edx, [edx + edx - 1]
mov byte [esp + 0x29e], dl
lea edx, [ecx + eax*8]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x28c]
mov dword [esp + 0x290], edx
mov ebx, dword [esi + 0x2c]
push ecx
call fcn.00432a10
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp dword [esp + 0x24], eax
je 0x446c54
cmp byte [esp + 0x2a2], al
je 0x446b21
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x64]
xor edi, edi
cmp ecx, 0x17
jl 0x446cd0
cmp eax, edi
jl 0x446c77
jne 0x446c6e
cmp ecx, 0x18
je 0x446c77
mov dword [esp + 0x64], edi
jmp 0x446b2c
mov edx, dword [esi + 0x2c]
push edi
push edx
mov dword [esp + 0x6c], edi
call fcn.00432f90
add esp, 8
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x446b2c
cmp eax, 0x65
jne 0x449cf8
mov dword [esp + 0x14], edi
mov dword [esp + 0x64], 1
mov edi, dword [esp + 0x18]
mov edi, dword [edi + 8]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
lea ecx, [edi + edi*4]
lea eax, [edx + ecx*4 - 0x14]
mov edi, eax
mov dword [esp + 0x18], eax
add edi, 0x14
jmp 0x443dbe
cmp eax, edi
jg 0x446cee
jne 0x446cdb
cmp ecx, 0x15
je 0x446cee
mov eax, dword [esi + 0x2c]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x64], ecx
jmp 0x446b21
mov edx, dword [esi + 0x2c]
push edi
push edx
mov dword [esp + 0x6c], edi
call fcn.00433110
add esp, 8
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x446b2c
cmp eax, 0x65
jmp 0x446c97
mov eax, dword [edi + 0x18]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
mov edx, dword [esi + 0x2c]
cmp byte [edx], 0
jne case.0x443dea.89
mov eax, dword [edi + 4]
mov dx, word [edi + 0x24]
mov ecx, dword [esi + 0x30]
mov edi, dword [edi + 0x20]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2f8], ecx
mov ecx, dword [esp + 0x20]
lea eax, [edi + edi*4]
mov word [esp + 0x30c], dx
lea edx, [ecx + eax*8]
mov byte [esp + 0x30e], 0
mov dword [esp + 0x2fc], edx
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x2f8]
push eax
push ecx
lea ebx, [esp + 0x38]
mov eax, esi
call fcn.00440a70
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x446da2
mov edx, dword [esp + 0x18]
cmp word [edx + 2], 0
je 0x446ddf
test eax, eax
jge 0x446ca9
cmp dword [esp + 0x24], 0
jle 0x4498f0
mov eax, dword [esi + 0x2c]
sub dword [esp + 0x24], 1
push 0
push eax
call fcn.00432f90
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
je 0x446d66
cmp eax, 0x65
jne 0x449cf8
mov dword [esp + 0x14], 0
add dword [esp + 0x18], 0x14
jmp 0x446ca9
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
movzx ecx, word [eax + 0xc]
cmp ecx, dword [edi + 8]
jge 0x446e0b
mov cx, word [edi + 8]
mov word [eax + 0xc], cx
add edi, 0x14
jmp 0x443dbe
cmp ecx, dword [edi + 0xc]
jle 0x444191
mov dx, word [edi + 0xc]
mov word [eax + 0xc], dx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
test eax, eax
je case.0x443dea.9
cmp byte [eax + 2], 0
je case.0x443dea.89
jmp case.0x443dea.9
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
movzx edx, word [ecx + 0xc]
cmp edx, dword [edi + 0x10]
jge case.0x443dea.89
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
mov eax, dword [edi + 0xc]
mov di, word [edi + 0x10]
test di, di
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea eax, [eax + edx*8]
mov dword [esp + 0x24], esi
mov dword [esp + 0x254], eax
mov word [esp + 0x264], di
jbe 0x446ebb
mov ecx, dword [esi + 0x30]
lea edi, [esi + 0x24]
lea edx, [esp + 0x250]
mov dword [esp + 0x250], ecx
mov byte [esp + 0x266], 0
mov ebx, dword [esi + 0x2c]
push edi
push edx
call fcn.00432a10
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x446f2c
test word [eax + 0x10], 0x400
je 0x446ed6
mov esi, eax
call fcn.0043ace0
test eax, eax
jne 0x449d98
mov esi, dword [esp + 0x24]
mov esi, dword [esi + 0x30]
call fcn.0043f7f0
mov esi, eax
test esi, esi
je 0x449d98
mov eax, dword [esp + 0x254]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 0x30]
push esi
push ecx
push edx
push eax
call fcn.0043f850
lea edi, [ebx + 0x24]
mov byte [esi + 0x16], 0
mov ebx, dword [ebx + 0x2c]
push edi
push esi
call fcn.00432a10
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
add esp, 0x18
mov eax, esi
call fcn.00419270
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x14], 0
jne 0x449cf8
xor ecx, ecx
xor eax, eax
cmp dword [edi], ecx
mov dl, 1
sete al
sub dl, al
mov byte [esi + 2], dl
mov edx, dword [esp + 0x18]
mov byte [esi + 3], cl
mov dword [esi + 0x20], ecx
mov bl, byte [edx]
cmp bl, 0x1d
jne 0x446f71
cmp eax, ecx
jne 0x446ca9
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov edi, edx
add edi, 0x14
jmp 0x443dbe
cmp eax, ecx
je 0x446ca9
cmp bl, 0x1b
jne 0x446fa9
movzx edx, word [esp + 0x264]
xor eax, eax
test edx, edx
jle 0x446fa9
mov ecx, dword [esp + 0x254]
add ecx, 0x10
test byte [ecx], 1
jne 0x446ca9
add eax, 1
add ecx, 0x28
cmp eax, edx
jl 0x446f96
cmp bl, 0x1a
jne 0x4498f0
mov eax, dword [esp + 0x18]
mov cx, word [eax + 0x10]
mov ebx, dword [ebp + 8]
mov edi, eax
mov word [esi + 0xc], cx
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 0x10], 0x24
lea esi, [ecx + edx*8]
jne 0x447055
mov ecx, 0xa
lea edi, [esp + 0x2d0]
rep movsd dword es:[edi], dword [esi]
mov al, byte [esp + 0x2e0]
test al, 4
jne 0x447036
test al, 0x28
jne 0x44701b
test al, 2
je 0x44702e
push 1
lea eax, [esp + 0x2d4]
call fcn.00443a10
add esp, 4
jmp 0x447027
lea esi, [esp + 0x2d0]
call fcn.0043b0e0
mov al, byte [esp + 0x2e0]
test al, 4
je 0x446ca9
mov eax, dword [esp + 0x2d4]
mov ebx, dword [esp + 0x2d0]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x144], eax
jmp 0x447069
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + eax*8]
mov ecx, dword [ecx + eax*8 + 4]
mov dword [esp + 0x144], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x60]
mov edx, dword [edi + 4]
mov esi, dword [ecx + edx*4]
mov ecx, dword [esp + 0x144]
mov eax, dword [esi + 0x2c]
lea edx, [esp + 0x28]
push edx
push 0
push ecx
push ebx
push eax
mov dword [esp + 0x3c], 0
call fcn.004326e0
mov edx, dword [esp + 0x158]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x3c]
add esp, 0x14
test eax, eax
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], edx
mov byte [esi + 2], 0
mov dword [esi + 0x20], 0
mov byte [esi + 3], 0
mov dword [esi + 0x24], eax
je 0x4470dc
cmp dword [edi + 8], 0
jne 0x446cad
mov eax, 0x1754b
call fcn.004aae10
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jmp 0x4443ec
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov ecx, dword [edx + ecx*4]
mov edx, dword [ecx + 0x18]
mov dword [eax], edx
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 4], ecx
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
add edi, 0x14
jmp 0x443dbe
mov edx, dword [ebp + 8]
xor ebx, ebx
xor esi, esi
mov eax, edi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x3c], ebx
call fcn.00443c20
mov edx, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 2
mov dword [esp + 0x30], eax
jne 0x4471b8
mov esi, eax
mov eax, dword [esi + 0x2c]
lea ecx, [esp + 0x3c]
call fcn.004326c0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp dword [esp + 0x3c], eax
je 0x447175
lea esi, [ebx + 1]
jmp 0x4471ac
mov edi, dword [esi + 0x2c]
mov ecx, edi
call fcn.00431d60
mov ebx, dword [edi + 0x24]
cmp ebx, 0x7fffffff
mov esi, dword [edi + 0x20]
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], ebx
jl 0x4471a6
jg 0x44719c
cmp esi, 0xffffffff
jb 0x4471a6
mov eax, dword [esp + 0x30]
or dword [eax + 8], 2
jmp 0x4471b4
add esi, 1
adc ebx, 0
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], esi
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0xc]
test edx, edx
je 0x447245
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xd0]
test ecx, ecx
je 0x4471eb
mov eax, dword [ecx + 4]
test eax, eax
je 0x4471e0
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x4471d7
mov eax, dword [ecx + 0xc]
lea edx, [edx + edx*4]
lea esi, [eax + edx*8]
jmp 0x4471f5
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x20]
lea esi, [edx + ecx*8]
call fcn.0043b150
mov eax, dword [esi]
cmp eax, 0xffffffff
mov ecx, dword [esi + 4]
jne 0x447210
cmp ecx, 0x7fffffff
je 0x4472cb
mov edx, dword [esp + 0x30]
test byte [edx + 8], 2
jne 0x4472cb
add eax, 1
adc ecx, 0
cmp ebx, ecx
jg 0x44723a
jl 0x447230
cmp dword [esp + 0x78], eax
jae 0x44723a
mov ebx, ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0x78]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov esi, eax
mov ecx, dword [esp + 0x30]
test byte [ecx + 8], 2
je 0x4472dc
mov dword [esp + 0x24], 0
mov edi, ecx
lea ecx, [ecx]
lea edx, [esp + 0x78]
push edx
push 8
call fcn.0041bf70
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x44]
push eax
and ebx, 0x3fffffff
add esi, 1
adc ebx, 0
push 0
push ebx
push esi
push ecx
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], ebx
call fcn.004326e0
add esp, 0x1c
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp dword [esp + 0x3c], eax
jne 0x4472d8
mov eax, dword [esp + 0x24]
add eax, 1
cmp eax, 0x64
mov dword [esp + 0x24], eax
jl 0x447260
mov dword [esp + 0x14], 0xd
jmp 0x449cf8
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov byte [eax + 3], 0
mov dword [eax + 0x20], 0
mov eax, dword [esp + 0x34]
mov dword [eax], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + 4], ebx
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
cmp byte [edi + 1], 0xfb
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov edx, dword [edi + 4]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x60]
mov edx, dword [eax + edx*4]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + eax*8]
mov dword [esp + 0x230], edx
mov eax, dword [ecx + eax*8 + 4]
mov dword [esp + 0x234], eax
jne 0x447365
cmp dword [esi + 0xfc], 0
je 0x447365
mov ecx, dword [esp + 0x24]
movsx eax, byte [ecx + 1]
mov ecx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x48], ecx
jmp 0x44736b
xor eax, eax
mov dword [esp + 0x48], eax
test byte [edi + 2], 1
mov dword [esp + 0x3c], eax
je 0x447390
add dword [ebx + 0x28], 1
adc dword [ebx + 0x2c], 0
test byte [edi + 2], 0x20
je 0x447390
mov dword [esi + 0x28], edx
mov edx, dword [esp + 0x234]
mov dword [esi + 0x2c], edx
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 8]
mov dword [esp + 0x238], eax
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x244], ecx
movzx ecx, word [edi + 2]
test cl, 0x10
je 0x4473ba
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
jmp 0x4473bc
xor eax, eax
test word [edx + 0x10], 0x400
je 0x4473cf
mov edx, dword [edx]
mov dword [esp + 0x248], edx
jmp 0x4473da
mov dword [esp + 0x248], 0
mov edi, dword [esp + 0x24]
and ecx, 0x8a
push ecx
lea ecx, [esp + 0x22c]
mov dword [esp + 0x22c], 0
push ecx
mov ecx, dword [edi + 0x2c]
call fcn.00436c60
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
mov byte [edi + 3], 0
mov dword [edi + 0x20], 0
jne 0x449cf8
cmp dword [esp + 0x48], eax
je 0x4498f0
mov edx, dword [esp + 0x234]
mov eax, dword [esp + 0x230]
mov ecx, dword [esp + 0x48]
push edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x44]
push edx
mov dl, byte [ecx + 2]
mov ecx, dword [esi + 0xfc]
and dl, 4
neg dl
push eax
mov eax, dword [esi + 0xf8]
sbb edx, edx
and edx, 5
add edx, 0x12
push edx
push eax
call ecx
mov edi, dword [esp + 0x30]
add esp, 0x18
add edi, 0x14
jmp 0x443dbe
mov eax, dword [ebx + 0x60]
mov edx, dword [edi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [eax + edx*4]
mov edi, dword [edi + 0xc]
test edi, edi
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
je 0x44749d
mov eax, dword [esp + 0x20]
lea ecx, [edi + edi*4]
mov edi, dword [eax + ecx*8]
mov ecx, dword [eax + ecx*8 + 4]
jmp 0x4474a1
xor edi, edi
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [edx + 0x2c]
push edi
push eax
push ecx
call fcn.00437120
add esp, 0x10
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
cmp byte [edi + 1], 0xfb
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov edx, dword [edi + 8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], eax
jne 0x44753a
cmp dword [esi + 0xfc], 0
je 0x44753a
movsx edx, byte [eax + 1]
mov ecx, dword [esi + 0x10]
shl edx, 4
test byte [edi + 2], 2
mov edx, dword [edx + ecx]
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x48], edx
mov dword [esp + 0x24], ecx
je 0x447544
cmp byte [eax + 4], 0
je 0x447544
mov edx, eax
mov ecx, dword [edx + 0x2c]
mov dword [esp + 0x40], ecx
call fcn.00431d60
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x20]
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 0x40], edx
mov eax, dword [eax + 0x24]
mov dword [ecx + 0x44], eax
jmp 0x447544
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], eax
movzx ecx, byte [edi + 2]
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x2c]
push ecx
call fcn.004374f0
mov ecx, dword [esp + 0x30]
xor edx, edx
add esp, 4
cmp eax, edx
mov dword [esp + 0x14], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], edx
jne 0x449cf8
test byte [esp + 0x54], 1
je 0x4498f0
add dword [ebx + 0x28], 1
adc dword [ebx + 0x2c], edx
mov ecx, dword [esi + 0xfc]
test ecx, ecx
je 0x4498f0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4498f0
test byte [eax + 0x1c], 0x80
jne 0x4498f0
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x44]
mov eax, dword [eax + 0x40]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [edx]
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esi + 0xf8]
push edx
push 9
push eax
call ecx
mov edi, dword [esp + 0x30]
add esp, 0x18
add edi, 0x14
jmp 0x443dbe
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
add dword [esi + 0x70], eax
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], ecx
adc dword [esi + 0x74], ecx
xor eax, eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
mov edi, dword [edi + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
lea edx, [esp + 0x34]
push edx
push edi
push ecx
mov dword [esp + 0x40], 0
call fcn.0044dfa0
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp dword [esp + 0x34], eax
jne 0x446ca9
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov edi, ecx
call fcn.0044df00
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x60]
mov edx, dword [ecx + edx*4]
mov edi, dword [esp + 0x18]
mov dword [edx + 0x20], 0
mov ebx, eax
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, dword [ebx + 0x60]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 4]
mov edx, dword [ecx + eax*4]
mov edi, dword [edx + 0x2c]
mov ecx, edi
call fcn.00431d60
mov ecx, dword [edi + 0x2c]
cmp ecx, dword [esi + 0x78]
ja 0x449c94
mov eax, dword [esp + 0x34]
mov edx, edi
call fcn.0043bab0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xc], 0
jne 0x4498f0
mov eax, dword [esp + 0x34]
test word [eax + 0x10], 0x4000
je 0x4498f0
call fcn.0043ac90
test eax, eax
jne 0x449d98
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov dword [esp + 0x34], eax
mov eax, dword [edx + ecx*4]
cmp byte [eax + 2], 0
mov dword [esp + 0x2c], eax
je 0x447746
mov eax, dword [esp + 0x34]
mov word [eax + 0x10], 1
add edi, 0x14
jmp 0x443dbe
mov eax, dword [esp + 0x2c]
cmp byte [eax + 3], 0
je 0x447762
mov ecx, dword [eax + 0x40]
mov dword [esp + 0xc8], ecx
mov edx, dword [eax + 0x44]
jmp 0x4477ee
cmp byte [eax], 2
mov eax, dword [esp + 0x2c]
jne 0x44779f
mov eax, dword [eax + 0x2c]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [esp + 0xc8]
push edx
push eax
mov eax, dword [ecx + 0x30]
call eax
mov edi, dword [ebp + 8]
mov ebx, eax
add esp, 8
mov dword [esp + 0x14], ebx
call fcn.00440c60
test ebx, ebx
jne 0x449cf8
mov edi, dword [esp + 0x18]
jmp 0x4477f5
call fcn.0043f5b0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov ecx, dword [esp + 0x2c]
cmp byte [ecx + 2], al
je 0x4477cf
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
mov word [edx + 0x10], 1
add edi, 0x14
jmp 0x443dbe
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00431d60
mov ecx, dword [esi + 0x20]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc8], ecx
mov edx, dword [esi + 0x24]
mov dword [esp + 0xcc], edx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xc8]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov dword [eax], ecx
mov edx, dword [esp + 0xcc]
mov dword [eax + 4], edx
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + ecx*4]
test eax, eax
jne 0x447859
mov edi, dword [ebp + 8]
push 3
push ecx
mov ebx, edx
call fcn.00443870
add esp, 8
test eax, eax
je 0x449d98
or dword [eax + 8], 8
mov edi, dword [esp + 0x18]
mov dword [eax + 0x24], 0
mov byte [eax + 4], bl
mov dword [eax + 0x2c], 0x4d69ad
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x444ce8
mov esi, dword [eax + 0x2c]
call fcn.0042dc70
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
cmp cl, 0x89
mov eax, dword [ebx + 0x60]
mov edx, dword [edi + 4]
mov edx, dword [eax + edx*4]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x40], edx
mov dword [esp + 0x74], 0
jne 0x4478b1
mov dword [edx + 0x24], 0xffffffff
cmp byte [eax], 0
je 0x444ce8
lea ecx, [esp + 0x74]
call fcn.004326c0
mov ecx, dword [esp + 0x40]
mov edi, eax
test edi, edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], edi
mov byte [ecx + 2], al
mov byte [ecx + 3], 0
mov dword [ecx + 0x20], 0
jne 0x449cf8
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 8], edi
jle 0x4498f0
test eax, eax
jne 0x446ca9
mov edi, ecx
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
mov esi, dword [ecx + 0x2c]
lea edi, [esp + 0xdc]
mov eax, esi
call fcn.00432650
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp dword [esp + 0xdc], eax
jne 0x446ca9
push esi
call fcn.00432e10
add esp, 4
test edx, edx
jl 0x4498f0
jg 0x44794b
test eax, eax
jb 0x4498f0
push edx
push eax
call fcn.0041e040
movsx edx, ax
mov eax, dword [esp + 0x20]
add esp, 8
cmp edx, dword [eax + 0xc]
jge 0x4498f0
mov dword [esp + 0xdc], 1
jmp 0x446ca9
add dword [ebx + 0xac], edx
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ebx, dword [eax + ecx*4]
cmp byte [ebx], dl
mov dword [esp + 0x24], edx
lea edi, [esp + 0x24]
jne 0x447999
mov ecx, ebx
call fcn.0044de20
jmp 0x4479ac
mov eax, dword [ebx + 0x2c]
call fcn.00432650
mov byte [ebx + 3], 0
mov dword [ebx + 0x20], 0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
mov byte [ebx + 2], al
cmp dword [ecx + 8], 0
jle 0x4498f0
test eax, eax
mov edi, ecx
jne 0x446cad
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
push esi
mov dword [esp + 0x30], eax
call fcn.0044de70
add esp, 4
jmp 0x447a36
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov esi, dword [edx + ecx*4]
mov eax, dword [edi + 0xc]
mov ecx, dword [esi + 0x2c]
push eax
push ecx
mov dword [esp + 0x34], esi
call fcn.00433110
add esp, 8
jmp 0x447a3a
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov ecx, dword [edi + 0xc]
mov edx, dword [eax + 0x2c]
push ecx
push edx
mov dword [esp + 0x34], eax
call fcn.00432f90
add esp, 8
mov esi, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x14], eax
mov dword [esi + 0x20], 0
jne 0x447a64
mov byte [esi + 2], al
movzx eax, word [edi + 2]
add dword [ebx + eax*4 + 0xa4], 1
lea ebx, [ebx + eax*4 + 0xa4]
jmp case.0x443dea.9
cmp eax, 0x65
jne 0x449cf8
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], 0
mov byte [ecx + 2], 1
jmp 0x4492e6
test byte [edi + 2], dl
mov ecx, dword [ebx + 0x60]
mov eax, dword [edi + 4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea esi, [eax + ecx*8]
je 0x447aa8
add dword [ebx + 0x28], edx
adc dword [ebx + 0x2c], 0
test word [esi + 0x10], 0x400
je 0x447ac5
call fcn.0043ace0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x360], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x364], edx
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0x74]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x358], ecx
lea ecx, [eax + edx*8]
mov dx, word [edi + 0x10]
mov dword [esp + 0x36c], ecx
movzx ecx, word [edi + 2]
test cl, 0x10
mov word [esp + 0x370], dx
je 0x447b13
mov eax, dword [esi + 0x24]
jmp 0x447b15
xor eax, eax
and ecx, 0x8a
push ecx
lea ecx, [esp + 0x35c]
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00436c60
add esp, 8
mov dword [esi + 0x20], 0
jmp 0x4443e6
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov edi, dword [edi + 8]
mov ebx, dword [eax + edx*4]
mov edx, dword [esp + 0x20]
lea ecx, [edi + edi*4]
test word [edx + ecx*8 + 0x10], 0x400
lea esi, [edx + ecx*8]
je 0x447b6b
call fcn.0043ace0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
push esi
mov eax, ebx
call fcn.0044c890
jmp 0x4443e3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x60]
mov eax, dword [edi + 4]
mov esi, dword [edx + eax*4]
mov eax, dword [esi + 0x30]
mov ebx, dword [esi + 0x2c]
mov cx, word [edi + 0xc]
mov edi, dword [edi + 8]
mov dword [esp + 0x338], eax
mov eax, dword [esp + 0x20]
lea edx, [edi + edi*4]
mov word [esp + 0x34c], cx
lea ecx, [eax + edx*8]
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0x33c]
push eax
mov byte [esp + 0x356], 0
mov dword [esp + 0x344], ecx
call fcn.00432a10
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp dword [esp + 0x158], eax
jne 0x447c17
push 4
mov eax, ebx
call fcn.004374f0
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [esp + 0x18]
cmp word [ecx + 2], 0
je 0x447c33
mov eax, dword [esp + 0x1c]
call fcn.00461230
test eax, eax
je 0x449cae
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [ebx + 0x60]
mov edx, dword [edi + 4]
mov edi, dword [eax + edx*4]
mov eax, edi
call fcn.0043f5b0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
cmp byte [edi + 2], al
jne 0x447d11
lea ecx, [esp + 0xd0]
push ecx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov eax, dword [edi + 0x2c]
push esi
call fcn.00440950
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x18]
cmp byte [eax], 0x8d
jne 0x447ceb
mov edx, dword [eax + 0xc]
mov ecx, dword [ebx + 0x60]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0xd0]
mov dword [ecx + 0x40], edx
mov edx, dword [esp + 0xd4]
mov byte [ecx + 2], 0
mov dword [ecx + 0x44], edx
mov byte [ecx + 3], 1
mov dword [ecx + 0x20], 0
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x28], edi
mov edi, dword [esp + 0x18]
mov dword [ecx + 0x10], eax
add edi, 0x14
jmp 0x443dbe
mov edx, ebx
call fcn.00443c20
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
mov edi, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], edx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
call fcn.0043b480
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov esi, dword [ecx + eax*4]
cmp byte [esi + 3], 0
je 0x444191
call fcn.0043f510
jmp 0x4443e6
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x30]
cmp cl, 0x2a
mov dword [esp + 0x318], edx
mov dx, word [edi + 0x10]
mov edi, dword [edi + 0xc]
sbb cl, cl
mov word [esp + 0x32c], dx
mov byte [esp + 0x32e], cl
mov ecx, dword [esp + 0x20]
lea edx, [edi + edi*4]
mov edi, dword [eax + 0x2c]
lea edx, [ecx + edx*8]
mov ecx, edi
mov dword [esp + 0x31c], edx
call fcn.00431d60
xor eax, eax
mov ecx, dword [edi + 0x2c]
jl 0x449cd9
jg 0x447dae
test ecx, ecx
jbe 0x449cd9
xor edx, edx
cmp eax, edx
jg 0x449cd9
jl 0x447dc6
cmp ecx, 0x7fffffff
ja 0x449cd9
mov word [esp + 0x2b8], dx
mov dword [esp + 0x2c0], edx
lea eax, [esp + 0x2a8]
mov edx, edi
mov dword [esp + 0x2bc], esi
call fcn.0043bab0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov ecx, dword [esp + 0x2b0]
mov edx, dword [esp + 0x2b4]
push eax
lea eax, [esp + 0x31c]
push eax
push ecx
push edx
call fcn.0043ff20
add esp, 0x10
cmp dword [esp + 0x2c0], 0
mov edi, eax
je 0x447e2f
lea eax, [esp + 0x2a8]
call fcn.0043af10
mov eax, dword [esp + 0x18]
test byte [eax], 1
jne 0x447e3c
neg edi
jmp 0x447e3f
add edi, 1
test edi, edi
mov edi, dword [esp + 0x18]
jg 0x446cad
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov word [eax + 0x10], 1
mov ecx, dword [esi + 0xcc]
add ecx, 1
cmp dword [esi + 0xc0], ecx
mov dword [esp + 0x34], eax
jg 0x449ce9
mov ebx, dword [edi + 0xc]
mov eax, dword [edi + 4]
lea edx, [esp + 0x54]
push edx
mov edx, dword [esi + 0x10]
mov ecx, ebx
shl ecx, 4
push eax
mov eax, dword [ecx + edx + 4]
mov dword [esp + 0x5c], 0
call fcn.00438110
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov edi, eax
mov eax, esi
cdq
add esp, 8
test edi, edi
mov dword [esp + 0x14], edi
mov word [ecx + 0x10], 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
jne 0x449cf8
test esi, esi
je 0x4498f0
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 4]
mov ecx, dword [esp + 0x1c]
mov eax, ebx
call fcn.00463d10
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
add bl, 1
mov byte [esp + 0x63], bl
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 4]
xor eax, eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov eax, dword [edi + 8]
lea ecx, [esp + 0xe8]
push ecx
mov ecx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx + 4]
push edx
call fcn.00437e30
add esp, 8
cmp dword [edi + 0xc], 0
mov dword [esp + 0x14], eax
je 0x447f68
mov edx, dword [esp + 0xe8]
add dword [ebx + 0x28], edx
mov ecx, dword [esp + 0xec]
adc dword [ebx + 0x2c], ecx
mov edi, dword [edi + 0xc]
test edi, edi
jle 0x447f68
lea ecx, [edi + edi*4]
mov edi, dword [esp + 0x20]
add dword [edi + ecx*8], edx
mov edx, dword [esp + 0xec]
lea ecx, [edi + ecx*8]
adc dword [ecx + 4], edx
test eax, eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov eax, dword [ecx + eax*4]
cmp byte [eax], dl
jne 0x447fa4
mov ebx, dword [eax + 0x2c]
push esi
call fcn.0044bd60
mov esi, dword [esp + 0x20]
mov ebx, dword [ebp + 8]
add esp, 4
add edi, 0x14
jmp 0x443dbe
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x40]
mov eax, dword [eax + 8]
push 0
push edx
call fcn.00437e30
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [esi + 0x10]
push ecx
mov eax, dword [eax + 4]
lea edx, [esp + 0x44]
push edx
mov dword [esp + 0x48], 0
call fcn.00437c00
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], 0
add edi, 0x14
jmp 0x443dbe
add byte [esi + 0x60], dl
mov edx, dword [edi + 0x10]
push 0
push 0
push 0
push edx
push esi
call fcn.00473cb0
add byte [esi + 0x60], 0xff
add esp, 0x14
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0x10]
test eax, eax
mov ebx, dword [edi + 4]
mov ecx, dword [esi + 0x10]
jne 0x4480ad
mov eax, ebx
shl eax, 4
mov edx, dword [eax + ecx + 0xc]
push edx
call fcn.00467d60
and dword [esi + 0x18], 0xffffffef
movzx eax, word [edi + 2]
mov ecx, dword [ebp + 8]
add esp, 4
push eax
add ecx, 0x7c
push ecx
push ebx
push esi
call fcn.00479150
or dword [esi + 0x18], 1
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
add esp, 0x10
and dword [eax + 0x98], 0xfffffffc
jmp 0x44817c
mov edx, dword [ebp + 8]
mov dword [esp + 0x1c4], ebx
add edx, 0x7c
mov dword [esp + 0x1bc], esi
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1cc], 0
shl ebx, 4
mov edx, dword [ebx + ecx + 4]
add ebx, ecx
mov ecx, dword [edx + 4]
mov edx, dword [ecx + 0x30]
push eax
mov dword [esp + 0x1d8], edx
mov eax, dword [ebx]
push str.sqlite_master
push eax
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
mov edi, esi
call fcn.0041ba60
mov edi, eax
add esp, 0x10
test edi, edi
je 0x449917
xor ebx, ebx
push ebx
lea ecx, [esp + 0x1c0]
push ecx
push fcn.00478f40
push edi
push esi
mov byte [esi + 0xb1], 1
mov dword [esp + 0x1dc], ebx
mov dword [esp + 0x1e4], ebx
call fcn.00473cb0
add esp, 0x14
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x448168
mov eax, dword [esp + 0x1c8]
cmp eax, ebx
mov dword [esp + 0x14], eax
jne 0x448168
cmp dword [esp + 0x1d0], ebx
jne 0x448168
mov eax, 0x17b47
call fcn.004aae10
mov dword [esp + 0x14], eax
mov eax, edi
mov ecx, esi
call fcn.00419270
mov edi, dword [esp + 0x18]
mov byte [esi + 0xb1], 0
cmp dword [esp + 0x14], 0
jne 0x44991f
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, esi
call fcn.0045e950
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ebx, esi
call fcn.00460fc0
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov ecx, esi
call fcn.004606c0
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
mov edi, esi
call fcn.00486d40
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x28], ecx
mov ecx, dword [ebx]
lea eax, [esp + 0x13c]
push eax
mov eax, dword [edi + 0x10]
add ecx, 1
push ecx
push edx
movzx edx, word [edi + 2]
lea ecx, [eax + 4]
mov eax, dword [esi + 0x10]
shl edx, 4
mov edx, dword [edx + eax + 4]
push edx
push esi
lea edx, [esp + 0xec]
call fcn.00438e40
mov esi, dword [esp + 0x3c]
mov edi, eax
add esp, 0x14
mov eax, esi
mov dword [esp + 0x14], edi
call fcn.0043b480
mov eax, dword [esp + 0x13c]
test eax, eax
je 0x44829c
test edi, edi
jne 0x449d13
add eax, 0xffffffff
push fcn.004191a0
cdq
sub dword [ebx], eax
mov eax, dword [esp + 0xdc]
push 1
sbb dword [ebx + 4], edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
mov eax, esi
call fcn.0043b790
add esp, 0x14
movzx ecx, byte [esp + 0x4c]
mov eax, esi
call fcn.0043aab0
jmp 0x4492e6
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
test byte [ecx + edx*8 + 0x10], 0x10
mov eax, dword [edi + 8]
lea esi, [ecx + edx*8]
lea eax, [eax + eax*4]
lea ebx, [ecx + eax*8]
jne 0x4482db
call fcn.0043b600
test eax, eax
jne 0x449d98
mov edi, dword [esp + 0x18]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
mov esi, dword [esi + 8]
push ecx
push edx
call fcn.00424da0
mov ebx, dword [ebp + 8]
mov esi, dword [esp + 0x24]
add esp, 8
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 0x10], 0x10
lea ebx, [ecx + eax*8]
je 0x44834d
mov eax, dword [ebx + 8]
lea esi, [esp + 0x190]
call fcn.004250a0
test eax, eax
je 0x44834d
mov edx, dword [esp + 0x194]
mov edi, dword [edi + 0xc]
mov eax, dword [esp + 0x190]
push edx
mov edx, dword [esp + 0x24]
lea ecx, [edi + edi*4]
push eax
lea eax, [edx + ecx*8]
call fcn.0043b520
add esp, 8
jmp 0x4492e6
mov eax, ebx
call fcn.0043b480
jmp case.0x443dea.9
mov eax, dword [edi + 4]
mov ebx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ebx + eax*8 + 0x10], 0x10
lea esi, [ebx + eax*8]
mov eax, dword [edi + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x10]
lea ebx, [ebx + ecx*8]
mov dword [esp + 0x40], eax
jne 0x448392
call fcn.0043b600
test eax, eax
jne 0x449d98
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4483bd
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
push edx
push ecx
push eax
mov eax, dword [esi + 8]
call fcn.004250f0
add esp, 0xc
test eax, eax
jne 0x446cad
mov eax, dword [esp + 0x40]
test eax, eax
jl 0x444191
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov esi, dword [esi + 8]
push edx
push eax
call fcn.00424da0
mov esi, dword [esp + 0x24]
mov ebx, dword [ebp + 8]
add esp, 8
add edi, 0x14
jmp 0x443dbe
cmp word [edi + 2], 0
mov eax, dword [edi + 0xc]
mov edx, dword [esp + 0x20]
mov ebx, dword [edi + 0x10]
lea ecx, [eax + eax*4]
lea edx, [edx + ecx*8]
mov dword [esp + 0x54], edx
je 0x448420
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xd0]
test eax, eax
mov ecx, dword [ebx + 0x14]
je 0x448420
lea esp, [esp]
cmp dword [eax + 0x18], ecx
je 0x444191
mov eax, dword [eax + 4]
test eax, eax
jne 0x448410
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xd8]
cmp eax, dword [esi + 0xa0]
jge 0x449d25
test byte [edx + 0x10], 0x10
jne 0x448532
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add eax, ecx
test ecx, ecx
mov dword [esp + 0x40], eax
jne 0x448456
add eax, 1
mov dword [esp + 0x40], eax
mov edx, dword [ebx + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
add eax, 7
lea ecx, [edx + ecx*2]
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4 + 0x58]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x74], eax
cdq
push edx
push eax
call fcn.00419570
mov esi, eax
add esp, 8
test esi, esi
je 0x449d98
mov edi, dword [esp + 0x54]
mov eax, edi
call fcn.0043af50
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x40]
mov dword [edi + 0xc], edx
mov word [edi + 0x10], 0x1010
mov dword [edi + 8], esi
mov dword [edi + 0x24], 0x43d5e0
mov edi, dword [ebp + 8]
mov dword [esi + 0x3c], ecx
mov dword [esi], edi
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x50]
mov edx, eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x30], eax
mov edx, dword [edi + 0x58]
mov dword [esi + 0xc], edx
mov eax, dword [edi + 0x14]
mov dword [esi + 0x38], eax
mov edx, dword [edi + 0x60]
mov dword [esi + 0x10], edx
mov eax, dword [edi + 0x18]
mov dword [esi + 0x2c], eax
mov edx, dword [edi + 0x68]
mov dword [esi + 8], edx
mov eax, dword [edi + 0x6c]
mov dword [esi + 0x34], eax
mov edx, dword [ebx + 0x14]
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*8 + 0x58]
lea eax, [esi + 0x58]
cmp eax, ecx
mov dword [esi + 0x18], edx
mov edx, dword [esp + 0x1c]
je 0x44853b
lea ecx, [ecx]
mov word [eax + 0x10], 0
mov dword [eax + 0x14], edx
add eax, 0x28
cmp eax, ecx
jne 0x448520
jmp 0x44853b
mov esi, dword [edx + 8]
mov edx, dword [esp + 0x1c]
mov edi, ecx
add dword [edi + 0xd8], 1
mov ecx, dword [edi + 0xd0]
mov dword [esi + 4], ecx
mov eax, dword [edx + 0x28]
mov dword [esi + 0x20], eax
mov ecx, dword [edx + 0x2c]
mov dword [esi + 0x24], ecx
mov edx, dword [edi + 0x28]
mov dword [esi + 0x48], edx
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x4c], eax
mov eax, dword [edi]
mov ecx, dword [eax + 0x68]
mov dword [esi + 0x50], ecx
mov edx, dword [eax + 0x6c]
mov dword [esi + 0x54], edx
mov eax, dword [edi + 0xe4]
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [edi + 0xe4], eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
mov dword [edi + 0xd0], esi
lea eax, [esi + 0x58]
mov dword [edi + 0x58], eax
mov ecx, dword [esi + 0x3c]
mov dword [edi + 0x14], ecx
movzx edx, word [esi + 0x40]
mov dword [edi + 0x18], edx
mov dword [esp + 0x20], eax
mov edx, ecx
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*8]
mov dword [edi + 0x60], eax
mov edx, dword [ebx + 0xc]
lea ecx, [eax + edx*4]
mov dword [esi + 0x14], ecx
mov eax, dword [ebx + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call sub.ntdll.dll_memset
mov eax, dword [ebx]
mov dword [edi + 0x68], eax
mov ecx, dword [ebx + 4]
add esp, 0xc
mov dword [esp + 0x50], eax
add eax, 0xffffffec
mov dword [edi + 0x6c], ecx
mov dword [esp + 0x18], eax
jmp 0x4492e6
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov edx, dword [ebx + 0xd0]
mov ecx, dword [edx + 8]
mov dword [esp + 0x34], eax
mov eax, dword [edx + 0x30]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + eax*4 + 4]
add ecx, dword [edi + 4]
push 0x4000
lea eax, [ecx + ecx*4]
mov ecx, dword [edx + 0xc]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x38]
push edx
push eax
call fcn.0043b690
add esp, 0xc
add edi, 0x14
jmp 0x443dbe
mov eax, dword [esi + 0x20]
and eax, 0x80000
xor ecx, ecx
or eax, ecx
mov eax, dword [edi + 8]
cdq
je 0x44865c
add dword [esi + 0x208], eax
adc dword [esi + 0x20c], edx
add edi, 0x14
jmp 0x443dbe
cmp dword [edi + 4], 0
je 0x448676
add dword [esi + 0x200], eax
adc dword [esi + 0x204], edx
add edi, 0x14
jmp 0x443dbe
add dword [ebx + 0x40], eax
adc dword [ebx + 0x44], edx
add edi, 0x14
jmp 0x443dbe
cmp dword [edi + 4], 0
je 0x4486bd
mov ecx, dword [esi + 0x200]
or ecx, dword [esi + 0x204]
jne 0x444191
mov edx, dword [esi + 0x208]
or edx, dword [esi + 0x20c]
je 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [ebx + 0x40]
or eax, dword [ebx + 0x44]
jne 0x444191
mov ecx, dword [esi + 0x208]
or ecx, dword [esi + 0x20c]
je 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov ebx, dword [ebx + 0xd0]
test ebx, ebx
je 0x448717
mov ecx, ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x448709
lea ecx, [ecx]
mov ecx, eax
mov eax, dword [ecx + 4]
test eax, eax
jne 0x448700
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea ebx, [eax + edx*8]
jmp 0x448724
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*8]
mov esi, ebx
call fcn.0043b150
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
call fcn.0043b150
mov eax, dword [esi]
mov esi, dword [esi + 4]
mov edx, dword [ebx + 4]
cmp edx, esi
jg 0x444ce8
jl 0x448759
mov ecx, dword [ebx]
cmp ecx, eax
jae 0x444ce8
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x1c]
mov dword [ebx], eax
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea ecx, [eax + edx*8]
mov eax, dword [ecx + 4]
test eax, eax
mov edx, dword [ecx]
mov dword [esp + 0x150], edx
mov dword [esp + 0x154], eax
jl 0x4443fd
jg 0x44879f
test edx, edx
jbe 0x444191
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x150]
cdq
sub esi, eax
mov eax, dword [esp + 0x154]
sbb eax, edx
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x446cad
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*8]
mov dword [esp + 0x30], eax
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], eax
jl 0x448857
jg 0x44880b
test ecx, ecx
jbe 0x448857
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
test eax, eax
jl 0x44881e
jg 0x448822
test ecx, ecx
ja 0x448822
xor ecx, ecx
xor eax, eax
push eax
push ecx
lea ecx, [esp + 0x108]
push ecx
call fcn.0041ddd0
add esp, 0xc
test eax, eax
jne 0x448857
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov dword [eax], edx
mov dword [eax + 4], ecx
add edi, 0x14
jmp 0x443dbe
mov eax, dword [esp + 0x34]
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edx*8 + 4]
lea esi, [eax + edx*8]
mov eax, dword [esi]
mov edx, eax
or edx, ecx
je 0x444191
test ecx, ecx
jl 0x446cad
jg 0x44889f
test eax, eax
jbe 0x446cad
sub eax, 1
sbb ecx, 0
mov dword [esi], eax
mov dword [esi + 4], ecx
jmp 0x446cad
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 4]
cmp ecx, 0x80000000
jl 0x4488da
jg 0x4488d0
test esi, esi
jbe 0x4488da
sub esi, edx
sbb ecx, 0
mov dword [eax], esi
mov dword [eax + 4], ecx
mov edx, dword [eax]
or edx, dword [eax + 4]
je 0x446cad
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
movzx eax, word [edi + 2]
mov dword [esp + 0x40], eax
lea eax, [eax*4 + 0x44]
push 0
push eax
mov ecx, esi
call fcn.00419650
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x449d98
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
lea eax, [ecx + eax*4 + 0x1c]
mov dword [ecx], eax
xor edx, edx
mov dword [ecx + 8], edx
mov dword [eax + 0x18], edx
mov word [eax + 0x10], 1
mov dword [eax + 0x14], esi
mov edx, dword [edi + 0x10]
mov dword [ecx + 4], edx
mov edx, edi
sub edx, dword [esp + 0x50]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + 0x4c]
mov dword [ecx + 0x10], eax
mov al, byte [esp + 0x40]
mov dword [ecx + 0xc], ebx
mov byte [ecx + 0x19], 0
mov dword [ecx + 0x14], 0
mov byte [ecx + 0x18], dl
mov byte [ecx + 0x1a], al
mov byte [edi + 1], 0xf1
mov dword [edi + 0x10], ecx
mov byte [edi], 0xa3
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea eax, [eax + edx*8]
cmp dword [ecx + 8], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], eax
je 0x4489d9
mov edx, ecx
movzx ecx, byte [edx + 0x1a]
sub ecx, 1
mov dword [edx + 8], eax
js 0x4489d9
lea edx, [edx + ecx*4 + 0x1c]
mov dword [esp + 0x40], edx
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x20]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x40]
mov dword [eax], edx
sub ecx, 1
sub eax, 4
test ecx, ecx
mov dword [esp + 0x40], eax
jge 0x4489b2
mov eax, dword [esp + 0x54]
add dword [eax + 0xc], 1
cmp dword [edi + 4], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 4]
lea edx, [eax + 0x1c]
push edx
movzx edx, byte [eax + 0x1a]
push edx
push eax
je 0x4489f9
mov eax, dword [ecx + 0x1c]
jmp 0x4489fc
mov eax, dword [ecx + 0x10]
call eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + 0x14]
add esp, 0xc
test eax, eax
je 0x444ce8
jle 0x448a3d
mov ebx, ecx
mov edx, dword [ebx]
push edx
call fcn.00441180
mov esi, dword [ebp + 8]
add esp, 4
push eax
push 0x4bebec
call fcn.0043c1b0
mov eax, dword [ebx + 0x14]
mov ebx, esi
mov esi, dword [esp + 0x24]
add esp, 8
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x19], 0
je 0x448a6c
mov edi, dword [edi - 0x10]
test edi, edi
je 0x448a64
mov eax, dword [esp + 0x20]
lea edx, [edi + edi*4]
push 0
push 1
lea eax, [eax + edx*8]
call fcn.0043b520
add esp, 8
mov ecx, dword [esp + 0x30]
mov byte [ecx + 0x19], 0
mov edi, dword [esp + 0x30]
mov eax, dword [edi]
call fcn.0043af50
cmp dword [esp + 0x14], 0
mov edx, dword [edi]
mov word [edx + 0x10], 1
mov dword [edi + 0x14], 0
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [edi + 0xc]
test eax, eax
mov dword [esp + 0x2c], edx
je 0x448aeb
mov edi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ebx, edx
call fcn.0043ae70
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x2c], edx
jmp 0x448afb
mov ecx, dword [edi + 0x10]
mov eax, dword [esp + 0x2c]
call fcn.0043adc0
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
jne 0x449d3e
movzx ecx, byte [esp + 0x4c]
mov eax, dword [esp + 0x2c]
call fcn.0043aab0
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov esi, dword [esp + 0x1c]
or eax, 0xffffffff
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], eax
lea eax, [esp + 0x11c]
push eax
push ecx
xor ebx, ebx
push edx
lea ecx, [esp + 0x124]
mov dword [esp + 0x120], ebx
call fcn.004a9770
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x448b7d
cmp eax, 5
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x114], 1
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
xor esi, esi
lea ebx, [ecx + eax*8]
lea esp, [esp]
mov eax, dword [esp + esi*4 + 0x114]
cdq
push edx
push eax
mov eax, ebx
call fcn.0043b520
add esi, 1
add esp, 8
add ebx, 0x28
cmp esi, 3
jl 0x448b90
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov edx, dword [edi + 4]
mov ecx, dword [esi + 0x10]
shl edx, 4
mov ecx, dword [edx + ecx + 4]
mov edx, dword [ecx + 4]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0xc]
cmp eax, 0xffffffff
mov edi, dword [edx]
mov dword [esp + 0x40], ecx
movzx ecx, byte [edi + 5]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
jne 0x448bfb
mov edx, ecx
mov dword [esp + 0x30], edx
mov eax, edi
call fcn.0042a2c0
test eax, eax
jne 0x448c0e
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
cmp byte [edi + 0xf], 0
jne 0x448c24
cmp dword [edi], 0x4d4d50
je 0x448c24
mov eax, dword [edi + 0xb8]
jmp 0x448c29
mov eax, 0x4c20d8
cmp dword [esp + 0x30], 5
jne 0x448c51
call fcn.0041c9d0
test eax, eax
je 0x448c44
mov eax, edi
call fcn.0042a3b0
test eax, eax
jne 0x448c51
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
jmp 0x448cd6
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
je 0x448cd6
cmp eax, 5
je 0x448c6b
cmp ecx, 5
jne 0x448cd6
cmp byte [esi + 0x55], 0
je 0x449d5e
cmp dword [esi + 0xc0], 1
jg 0x449d5e
cmp eax, 5
jne 0x448ca0
push esi
mov eax, edi
call fcn.0042a520
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x448cdd
mov eax, dword [esp + 0x30]
jmp 0x448caa
cmp eax, 4
jne 0x448cb1
mov eax, 2
mov ecx, edi
call fcn.0042a1b0
cmp dword [esp + 0x14], 0
jne 0x448cdd
mov eax, dword [esp + 0x40]
xor edx, edx
cmp dword [esp + 0x30], 5
sete dl
add edx, 1
push edx
call fcn.00439580
add esp, 4
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x448ce5
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, edi
call fcn.0042a1b0
mov edi, dword [esp + 0x34]
mov word [edi + 0x10], 0x2202
call fcn.00474e00
mov dword [edi + 8], eax
call fcn.0041c9d0
movzx ecx, byte [esp + 0x4c]
mov dword [edi + 0xc], eax
mov eax, edi
mov byte [edi + 0x12], 1
call fcn.0043aab0
cmp dword [esp + 0x14], 0
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 8]
test eax, eax
je 0x448d44
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*8]
jmp 0x448d46
xor eax, eax
push eax
mov eax, dword [edi + 4]
push eax
add ebx, 0x7c
push ebx
mov edi, esi
call fcn.0048b9b0
add esp, 0xc
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x10]
shl ecx, 4
mov eax, dword [ecx + edx + 4]
push eax
call fcn.00431300
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
je 0x444ce8
cmp eax, 0x65
jne 0x449cf8
mov dword [esp + 0x14], 0
jmp 0x446ca9
cmp dword [edi + 4], 0
jne 0x448dc4
mov ecx, dword [edi + 8]
mov eax, esi
call fcn.00440b20
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 8]
add eax, edx
xor eax, dword [ebx + 0x98]
and eax, 3
xor dword [ebx + 0x98], eax
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 4]
mov edx, dword [ebx + 0x60]
mov eax, dword [edx + ecx*4]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
add edi, 0x14
jmp 0x443dbe
mov cl, byte [edi + 0xc]
test cl, cl
jne 0x448e37
mov edx, dword [esi + 0x20]
and edx, 0x400
mov dword [esp + 0x40], edx
mov eax, 0
jne 0x4443fd
test eax, eax
jne 0x444191
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
push edx
mov edx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + edx + 4]
call fcn.004394c0
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
je 0x4443fd
cmp al, 6
jne 0x449cf8
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x10]
mov esi, dword [ebp + 8]
push eax
push str.database_table_is_locked:__s
call fcn.0043c1b0
add esp, 8
jmp 0x449cf8
mov edi, dword [edi + 0x10]
mov eax, dword [esp + 0x1c]
mov esi, edi
call fcn.0048d4c0
test edi, edi
mov ebx, eax
mov dword [esp + 0x14], ebx
je 0x448ea4
mov esi, dword [edi + 8]
mov edi, dword [ebp + 8]
call fcn.00440c60
test ebx, ebx
jmp 0x4443ec
mov edi, dword [edi + 8]
mov ecx, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x214], eax
mov dword [esp + 0x200], eax
mov dword [esp + 0x204], eax
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], eax
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], eax
lea eax, [edi + edi*4]
lea edi, [ecx + eax*8]
lea eax, [esp + 0x200]
mov dword [esp + 0x214], esi
call fcn.0043b6f0
lea edx, [esp + 0x200]
push edx
mov dword [esp + 0x18], eax
call fcn.00441180
add esp, 4
test eax, eax
je 0x448f48
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x18]
add ecx, 0x7c
push ecx
push eax
mov eax, dword [edx + 4]
mov ecx, esi
call fcn.0048cea0
add esp, 8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x200]
call fcn.0043af50
cmp dword [esp + 0x14], 0
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
add dword [esi + 0xcc], edx
mov eax, dword [edi + 0x10]
push eax
mov eax, dword [edi + 4]
push esi
call fcn.0048d1f0
add dword [esi + 0xcc], 0xffffffff
add esp, 8
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x2c], 0
mov esi, dword [ecx + 8]
test esi, esi
je 0x449cf0
mov eax, dword [esi]
test eax, eax
mov dword [esp + 0x40], eax
je 0x449cf0
mov eax, dword [eax + 0x18]
lea edx, [esp + 0x2c]
push edx
push esi
call eax
mov edi, dword [ebp + 8]
mov ebx, eax
add esp, 8
mov dword [esp + 0x14], ebx
call fcn.00440c60
test ebx, ebx
jne 0x449cf8
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov dword [ecx], esi
mov eax, dword [edx + 4]
push 2
push eax
call fcn.00443870
mov ecx, dword [esp + 0x34]
add esp, 8
test eax, eax
je 0x449d8b
mov ebx, edi
mov edi, dword [esp + 0x18]
mov dword [eax + 0x2c], ecx
add dword [esi + 4], 1
mov esi, dword [esp + 0x1c]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov esi, dword [eax + edx*4]
call fcn.004a7390
test eax, eax
jne 0x449d98
push eax
push 8
call fcn.00419060
mov edi, eax
add esp, 8
test edi, edi
je 0x449d98
mov ecx, dword [esi + 0x2c]
mov eax, dword [esp + 0x18]
mov dword [edi], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea edx, [ecx + edx*8]
mov dword [edi + 4], edx
mov edx, dword [ebp + 8]
call fcn.00443c20
push edi
mov ebx, 0x441db0
mov edi, str.ValueList
mov esi, eax
mov word [eax + 0x10], 1
call fcn.0043b560
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov ebx, dword [ebp + 8]
add esp, 4
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebx + 0x60]
mov eax, dword [eax + edx*4]
mov edx, dword [esi]
mov ebx, dword [ebx + 0x5c]
mov dword [esp + 0x24], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x28]
mov dword [esp + 0x74], eax
xor eax, eax
test ecx, ecx
jle 0x4490ed
add esi, 0x50
mov dword [ebx + eax*4], esi
add eax, 1
add esi, 0x28
cmp eax, ecx
jl 0x4490e0
mov eax, dword [edi + 0x10]
push ebx
push ecx
mov ecx, dword [esp + 0x48]
push eax
push edx
mov edx, dword [esp + 0x64]
mov eax, dword [edx + 0x20]
push ecx
call eax
mov esi, dword [esp + 0x88]
mov edi, dword [ebp + 8]
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x14], ebx
call fcn.00440c60
test ebx, ebx
jne 0x449cf8
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x28]
push ecx
call eax
mov ecx, dword [esp + 0x28]
add esp, 4
test eax, eax
mov byte [ecx + 2], bl
jne 0x446ca9
mov esi, dword [esp + 0x1c]
mov ebx, edi
mov edi, dword [esp + 0x18]
add edi, 0x14
jmp 0x443dbe
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x60]
mov ecx, dword [eax + edx*4]
cmp byte [ecx + 2], 0
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [eax + edx*8]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], edx
je 0x449187
mov eax, edx
call fcn.0043b480
add edi, 0x14
jmp 0x443dbe
mov ecx, dword [ecx + 0x2c]
mov esi, dword [ecx]
mov ebx, dword [esi]
xor eax, eax
test byte [edi + 2], 1
mov dword [esp + 0x160], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
mov dword [esp + 0x17c], eax
mov al, byte [esp + 0x4c]
mov dword [esp + 0x160], edx
mov byte [esp + 0x178], al
je 0x4491fb
mov eax, dword [esp + 0x2c]
call fcn.0043b480
mov eax, dword [esp + 0x2c]
mov word [eax + 0x10], 0x401
mov dword [eax], 0
jmp 0x44920c
mov cx, word [edx + 0x10]
and cx, 0xf241
or cx, 1
mov word [edx + 0x10], cx
mov edx, dword [edi + 8]
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [ecx + 0x2c]
lea eax, [esp + 0x164]
push eax
mov eax, dword [ebx + 0x2c]
push edx
call eax
mov edi, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0x14], eax
call fcn.00440c60
cmp dword [esp + 0x174], 0
jle 0x449266
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00441180
add esp, 4
push eax
push 0x4bebec
mov esi, edi
call fcn.0043c1b0
mov edx, dword [esp + 0x17c]
add esp, 8
mov dword [esp + 0x14], edx
movzx ecx, byte [esp + 0x4c]
mov eax, dword [esp + 0x2c]
call fcn.0043aab0
cmp dword [esp + 0x14], 0
jmp 0x4443ec
mov eax, dword [edi + 4]
mov ecx, dword [ebx + 0x60]
mov ebx, dword [ecx + eax*4]
cmp byte [ebx + 2], 0
jne case.0x443dea.89
mov eax, dword [ebx + 0x2c]
mov esi, dword [eax]
mov ecx, dword [esi]
mov edx, dword [ecx + 0x24]
push eax
mov dword [esp + 0x44], ecx
call edx
mov edi, dword [ebp + 8]
add esp, 4
mov dword [esp + 0x14], eax
call fcn.00440c60
cmp dword [esp + 0x14], 0
jne 0x449cf8
mov eax, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + 0x28]
push eax
call edx
add esp, 4
test eax, eax
jne 0x4492e6
mov edi, dword [esp + 0x18]
mov edi, dword [edi + 8]
mov ecx, dword [esp + 0x50]
lea eax, [edi + edi*4]
lea edx, [ecx + eax*4 - 0x14]
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x128]
test eax, eax
jne 0x449f48
mov ebx, dword [esp + 0x8c]
cmp dword [esp + 0x9c], ebx
jb 0x4498f0
mov edi, dword [esp + 0x88]
ja 0x449322
cmp dword [esp + 0x98], edi
jb 0x4498f0
mov eax, dword [esi + 0x174]
test eax, eax
je 0x4498f0
mov ecx, dword [esi + 0x17c]
mov edx, dword [esi + 0x178]
add edi, ecx
adc ebx, 0
push edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], ebx
call eax
add esp, 4
test eax, eax
jne 0x449f37
cmp dword [esp + 0x9c], ebx
ja 0x449322
jb 0x4443f6
cmp dword [esp + 0x98], edi
jae 0x449322
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
or dword [esi + 0x20], 0x4000000
mov dword [esi + 0x24], eax
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx + 8]
mov edi, dword [edi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [edi + edi*4]
lea edi, [ecx + eax*8]
mov ecx, 1
mov eax, edi
and ebx, 0x4000000
mov dword [esp + 0x40], edx
call fcn.0043aab0
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449cf8
mov eax, dword [esp + 0x40]
mov ecx, dword [edi + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x4c]
push ecx
push eax
call edx
add esp, 8
test ebx, ebx
mov dword [esp + 0x14], eax
jne 0x4493f1
mov eax, dword [esi + 0x24]
and dword [esi + 0x20], 0xfbffffff
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x40]
mov edi, dword [ebp + 8]
call fcn.00440c60
mov eax, edi
and dword [eax + 0x98], 0xfffffffc
cmp dword [esp + 0x14], 0
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, eax
add edi, 0x14
jmp 0x443dbe
xor eax, eax
cmp byte [esi + 0x57], al
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
jne 0x449d98
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x10]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 0x40], eax
je 0x449cf0
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x54], eax
je 0x449cf0
cmp dword [eax + 0x34], 0
mov ecx, dword [ecx + 8]
je 0x4443f2
mov eax, dword [esp + 0x1c]
mov dl, byte [eax + 0x5c]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x5c]
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
mov byte [esp + 0x97], dl
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [eax + edx*8]
xor eax, eax
test ecx, ecx
jle 0x4494ad
jmp 0x4494a0
mov dword [edi + eax*4], edx
add eax, 1
add edx, 0x28
cmp eax, ecx
jl 0x4494a0
mov dl, byte [ebx + 2]
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x108]
push eax
push edi
mov edi, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x60]
mov byte [esi + 0x5c], dl
mov edx, dword [ecx + 0x34]
push edi
call edx
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa7]
mov byte [esi + 0x5c], al
mov esi, edi
mov edi, dword [ebp + 8]
add esp, 0x10
call fcn.00440c60
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp ecx, edx
jne 0x449511
cmp dword [ebx + 4], edx
je 0x449511
mov esi, dword [esp + 0x108]
mov eax, dword [esp + 0x1c]
mov dword [eax + 0x28], esi
mov esi, dword [esp + 0x10c]
mov dword [eax + 0x2c], esi
cmp cl, 0x13
jne 0x44956c
mov eax, dword [ebx + 0x10]
cmp byte [eax + 0x10], 0
je 0x44956c
movzx eax, word [ebx + 2]
cmp ax, 4
jne 0x449540
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x14], edx
add edi, 0x14
jmp 0x443dbe
cmp ax, 5
jne 0x44955a
mov eax, 2
mov esi, edi
mov byte [esi + 0x92], al
cmp ecx, edx
jmp 0x4443ec
movzx eax, ax
mov esi, edi
mov byte [esi + 0x92], al
cmp ecx, edx
jmp 0x4443ec
mov eax, edi
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
cmp ecx, edx
jmp 0x4443ec
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov ecx, dword [edi + 4]
mov edx, dword [esi + 0x10]
shl ecx, 4
mov ecx, dword [ecx + edx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [edx + 0x30]
mov dword [eax], ecx
mov dword [eax + 4], 0
add edi, 0x14
jmp 0x443dbe
mov eax, edi
mov edx, ebx
call fcn.00443c20
mov edx, dword [edi + 4]
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x10]
shl edx, 4
mov eax, dword [edx + eax + 4]
xor ebx, ebx
test ecx, ecx
je 0x4495d8
mov edx, dword [eax + 4]
mov ebx, dword [edx + 0x30]
cmp ebx, ecx
jae 0x4495d8
mov ebx, ecx
call fcn.004302b0
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
mov dword [ecx], eax
mov dword [ecx + 4], 0
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 0xc]
mov ecx, dword [esp + 0x20]
mov ebx, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
cmp dword [ebx], eax
mov dword [esp + 0x34], eax
je 0x449654
movzx ecx, byte [ebx + 0x1a]
sub ecx, 1
mov edx, dword [ebp + 8]
mov dword [ebx], eax
mov al, byte [esp + 0x4c]
mov dword [ebx + 0xc], edx
mov byte [ebx + 0x18], al
js 0x449654
lea edx, [ebx + ecx*4 + 0x1c]
mov dword [esp + 0x40], edx
mov eax, dword [edi + 8]
mov edx, dword [esp + 0x20]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x40]
mov dword [eax], edx
sub ecx, 1
sub eax, 4
test ecx, ecx
mov dword [esp + 0x40], eax
jge 0x449631
mov eax, dword [esp + 0x34]
mov cx, word [eax + 0x10]
and cx, 0xf241
or cx, 1
mov word [eax + 0x10], cx
movzx ecx, byte [ebx + 0x1a]
mov edx, dword [ebx + 4]
mov edx, dword [edx + 0x10]
lea eax, [ebx + 0x1c]
push eax
push ecx
push ebx
call edx
mov eax, dword [ebx + 0x14]
add esp, 0xc
test eax, eax
je 0x444ce8
jle 0x4496b4
mov eax, dword [esp + 0x34]
push eax
call fcn.00441180
mov esi, dword [ebp + 8]
add esp, 4
push eax
push 0x4bebec
call fcn.0043c1b0
mov ecx, dword [ebx + 0x14]
mov esi, dword [esp + 0x24]
add esp, 8
mov dword [esp + 0x14], ecx
mov edx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
push edx
push eax
mov eax, dword [ebp + 8]
add eax, 0xe4
mov edi, esi
call fcn.0043f110
add esp, 8
cmp dword [esp + 0x14], 0
mov dword [ebx + 0x14], 0
jne 0x449cf8
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x20]
lea ecx, [eax + eax*4]
and word [edx + ecx*8 + 0x10], 0xf7ff
lea eax, [edx + ecx*8]
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [eax + ecx*8]
push eax
mov eax, edi
mov dword [esp + 0x2c], edx
call fcn.00443c50
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
add esp, 4
mov dword [esp + 0x274], edx
cdq
push edx
mov edx, dword [esp + 0x278]
push eax
push edx
push ecx
call sub.ntdll.dll__aullrem
mov ecx, eax
shrd ecx, edx, 3
shr edx, 3
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 8]
add edx, ecx
mov ecx, eax
and ecx, 7
mov al, 1
shl al, cl
or byte [edx], al
add edi, 0x14
jmp 0x443dbe
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edx, [eax + ecx*8]
push eax
mov eax, edi
mov dword [esp + 0x2c], edx
call fcn.00443c50
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
add esp, 4
mov dword [esp + 0x27c], edx
cdq
push edx
mov edx, dword [esp + 0x280]
push eax
push edx
push ecx
call sub.ntdll.dll__aullrem
mov ecx, eax
shrd ecx, edx, 3
shr edx, 3
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 8]
movsx edx, byte [ecx + edx]
mov ecx, eax
and ecx, 7
mov eax, 1
shl eax, cl
test eax, edx
jne 0x4497da
add dword [ebx + 0xc4], 1
jmp 0x446cad
add dword [ebx + 0xc0], 1
add edi, 0x14
jmp 0x443dbe
mov cl, byte [esi + 0x5e]
test cl, 0x41
je 0x44989f
cmp byte [ebx + 0x93], 0xfe
je 0x44989f
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x449817
mov eax, dword [ebx + 0xc8]
test eax, eax
je 0x44989f
test cl, 0x40
push eax
je 0x449846
push ebx
call fcn.004433e0
mov ecx, dword [esi + 0xdc]
mov edx, dword [esi + 0xd8]
push eax
push ecx
mov dword [esp + 0x50], eax
call edx
mov eax, dword [esp + 0x50]
push eax
call fcn.004191a0
add esp, 0x14
jmp 0x44989a
cmp dword [esi + 0xc8], edx
jle 0x449885
push str.____s
mov edi, esi
call fcn.0041ba60
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0xdc]
mov edi, eax
mov eax, dword [esi + 0xd8]
push edi
push ecx
push edx
push 1
call eax
push edi
push esi
call fcn.00419310
mov edi, dword [esp + 0x38]
mov ebx, dword [ebp + 8]
add esp, 0x20
jmp 0x44989a
mov ecx, dword [esi + 0xdc]
mov edx, dword [esi + 0xd8]
push ebx
push ecx
push 1
call edx
add esp, 0x10
mov edx, 1
mov eax, dword [edi + 4]
cmp eax, dword [0x4d44c4]
jl 0x4498e2
cmp byte [edi], 0xb5
je case.0x443dea.89
cmp dword [ebx + 0x6c], edx
mov esi, edx
jle 0x4498db
mov ecx, 0x14
nop
mov eax, dword [ebx + 0x68]
add eax, ecx
cmp byte [eax], 0xf
jne 0x4498d1
mov dword [eax + 4], 0
add esi, edx
add ecx, 0x14
cmp esi, dword [ebx + 0x6c]
jl 0x4498c0
mov dword [edi + 4], 0
add dword [edi + 4], edx
add dword [ebx + 0xbc], edx
jmp 0x446cad
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [ebp + 8]
add edi, 0x14
jmp 0x443dbe
push str.cannot_open_savepoint___SQL_statements_in_progress
jmp 0x449b62
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x449b62
mov dword [esp + 0x14], 7
mov eax, esi
call fcn.00460930
cmp dword [esp + 0x14], 7
je 0x449d98
jmp 0x449cf8
mov eax, dword [edi + 4]
test eax, eax
mov dword [ebx + 0x24], eax
mov cl, byte [edi + 8]
mov byte [ebx + 0x92], cl
je 0x4499e1
movzx eax, word [edi + 2]
test ax, ax
mov esi, dword [ebp + 8]
je 0x449999
movzx edx, ax
mov eax, dword [edx*4 + 0x4c2234]
push eax
push str._s_constraint_failed
call fcn.0043c1b0
mov eax, dword [edi + 0x10]
add esp, 8
test eax, eax
je 0x4499aa
mov ecx, dword [esi + 0x7c]
mov edi, dword [esp + 0x1c]
push eax
push ecx
push str._z:__s
call fcn.0041ba60
mov edi, dword [esp + 0x24]
mov edx, esi
add esp, 0xc
mov dword [edx + 0x7c], eax
jmp 0x4499aa
mov eax, dword [edi + 0x10]
push eax
push 0x4bebec
call fcn.0043c1b0
add esp, 8
mov ecx, dword [esi + 0x7c]
mov edx, dword [esi + 0xc8]
push ecx
push edx
mov ecx, edi
sub ecx, dword [esp + 0x58]
mov eax, 0x66666667
imul ecx
mov ecx, dword [edi + 4]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push ecx
call fcn.0041bc90
mov ebx, dword [ebp + 8]
add esp, 0x14
mov edi, ebx
call fcn.0043ec30
cmp eax, 5
mov dword [esp + 0x14], eax
jne 0x449be6
mov edx, dword [ebp + 8]
mov dword [edx + 0x24], eax
jmp 0x449ede
mov ecx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x20]
add ecx, 2
or ecx, edx
mov dword [ebx + 0x1c], ecx
mov edi, dword [edi + 4]
lea edx, [edi + edi*4]
lea ecx, [eax + edx*8]
mov dword [ebx + 0x78], ecx
cmp byte [esi + 0x57], 0
jne 0x449d98
mov eax, dword [esp + 0x1c]
test byte [eax + 0x5e], 4
je 0x449a49
mov edx, dword [ebp + 8]
mov ecx, dword [eax + 0xdc]
push 0
push edx
mov edx, dword [eax + 0xd8]
push ecx
push 4
call edx
add esp, 0x10
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x50]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 1]
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], ecx
mov dword [esp + 0x14], 0x64
jmp 0x449ede
mov eax, 0x16c88
call fcn.004aae10
mov dword [esp + 0x14], eax
jmp 0x449cf8
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
shl eax, 4
mov edx, dword [eax + ecx]
add eax, ecx
mov eax, dword [eax + 4]
mov ecx, dword [esp + 0x54]
mov esi, dword [ebp + 8]
push edx
mov edx, dword [ecx]
push edx
mov edx, dword [esp + 0x30]
shr eax, 4
and eax, 0xf
mov ecx, dword [eax*4 + 0x4d44d0]
movzx eax, byte [edx + 0x10]
push ecx
and eax, 0x3f
movzx ecx, byte [eax + 0x4c21d0]
mov edx, dword [ecx*4 + 0x4d4da4]
push edx
push str.cannot_store__s_value_in__s_column__s._s
call fcn.0043c1b0
add esp, 0x14
mov dword [esp + 0x14], 0xc13
jmp 0x449cf8
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x50]
mov eax, 0x66666667
imul ecx
mov eax, dword [ebp + 8]
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [eax + 0x20], ecx
mov byte [esi + 0x55], 0
mov dword [esp + 0x14], 5
mov dword [eax + 0x24], 5
jmp 0x449ede
mov eax, dword [edi + 4]
movzx edx, byte [esi + 0x55]
cmp eax, edx
mov edi, dword [edi + 8]
mov dword [esp + 0x40], eax
je 0x449bff
test edi, edi
je 0x449b50
push 0x204
mov eax, esi
call fcn.004a89e0
add esp, 4
mov byte [esi + 0x55], 1
jmp 0x449b99
test eax, eax
je 0x449b7a
cmp dword [esi + 0xc4], 0
jle 0x449b7a
push str.cannot_commit_transaction___SQL_statements_in_progress
mov esi, dword [ebp + 8]
call fcn.0043c1b0
add esp, 4
mov dword [esp + 0x14], 5
jmp 0x449cf8
push 1
mov eax, ebx
call fcn.0043ebb0
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
jne 0x449ede
mov al, byte [esp + 0x40]
mov byte [esi + 0x55], al
mov edi, ebx
call fcn.0043ec30
mov edi, 5
cmp eax, edi
jne 0x449bdd
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x50]
mov eax, 0x66666667
imul ecx
mov eax, dword [ebp + 8]
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dl, 1
sub dl, byte [esp + 0x40]
mov dword [eax + 0x20], ecx
mov byte [esi + 0x55], dl
mov dword [esp + 0x14], edi
mov dword [eax + 0x24], edi
jmp 0x449ede
mov esi, dword [esp + 0x1c]
call fcn.004a7f30
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x24]
neg eax
sbb eax, eax
and eax, 0xffffff9c
add eax, 0x65
mov dword [esp + 0x14], eax
jmp 0x449ede
test eax, eax
jne 0x449c0a
mov eax, str.cannot_start_a_transaction_within_a_transaction
jmp 0x449c18
test edi, edi
mov eax, str.cannot_rollback___no_transaction_is_active
jne 0x449c18
mov eax, str.cannot_commit___no_transaction_is_active
mov esi, dword [ebp + 8]
push eax
call fcn.0043c1b0
add esp, 4
mov dword [esp + 0x14], 1
jmp 0x449cf8
mov esi, dword [esi + 0x20]
and esi, 0x100000
xor eax, eax
or esi, eax
je 0x449c4d
mov dword [esp + 0x14], 8
jmp 0x449cf8
mov dword [esp + 0x14], 0xb
jmp 0x449cf8
cmp al, 5
jne 0x449cf8
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x50]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], edx
jmp 0x449ede
mov dword [esp + 0x14], 0x204
jmp 0x449cf8
mov esi, dword [ebp + 8]
push str.string_or_blob_too_big
call fcn.0043c1b0
add esp, 4
mov dword [esp + 0x14], 0x12
jmp 0x449cf8
push 0x4cbc24
push 0x1797e
push str.index_corruption
push str._s_at_line__d_of___.10s_
push 0x30b
call fcn.0041bc90
add esp, 0x14
mov dword [esp + 0x14], 0x30b
jmp 0x449cf8
mov eax, 0x17a4b
call fcn.004aae10
mov dword [esp + 0x14], eax
jmp 0x449cf8
mov byte [ebx + 0x92], 2
mov dword [esp + 0x14], 6
mov edi, dword [esp + 0x1c]
cmp byte [edi + 0x57], 0
je 0x449dc2
mov dword [esp + 0x14], 7
jmp 0x449df2
mov eax, dword [esp + 0xd8]
push eax
call fcn.004191a0
add esp, 4
jmp 0x449cf8
push str.too_many_levels_of_trigger_recursion
mov esi, ecx
mov dword [esp + 0x18], 1
call fcn.0043c1b0
add esp, 4
jmp 0x449cf8
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00441180
mov esi, dword [ebp + 8]
add esp, 4
push eax
push 0x4bebec
call fcn.0043c1b0
add esp, 8
jmp 0x449cf8
cmp ecx, 5
mov dword [esp + 0x14], 1
mov eax, str.into
je 0x449d75
mov eax, str.out_of
mov esi, dword [ebp + 8]
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
call fcn.0043c1b0
add esp, 8
jmp 0x449cf8
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 0x1c]
push ecx
call eax
add esp, 4
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.00419a00
mov esi, dword [ebp + 8]
add esp, 4
push str.out_of_memory
call fcn.0043c1b0
add esp, 4
mov dword [esp + 0x14], 7
jmp 0x449cf8
cmp dword [esp + 0x14], 0x210a
jne 0x449df2
push 0x4cbc24
push 0x182da
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041bc90
add esp, 0x14
mov dword [esp + 0x14], 0xb
mov esi, dword [ebp + 8]
cmp dword [esi + 0x7c], 0
mov ebx, dword [esp + 0x14]
jne 0x449e1c
cmp ebx, 0xc0a
je 0x449e1c
mov edx, ebx
call fcn.004a8b10
push eax
push 0x4bebec
call fcn.0043c1b0
add esp, 8
cmp ebx, 0xc0a
mov dword [esi + 0x24], ebx
je 0x449e52
mov eax, ebx
and eax, 0xff
cmp eax, 0xe
je 0x449e38
cmp eax, 0xa
jne 0x449e52
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x449e4d
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x449e4f
xor eax, eax
mov dword [edi + 0x4c], eax
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 0xc8]
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x50]
push edx
push eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push str.statement_aborts_at__d:___s___s
push ebx
call fcn.0041bc90
add esp, 0x14
cmp byte [esi + 0x95], 2
jne 0x449e99
mov edi, esi
call fcn.0043ec30
mov edi, dword [esp + 0x1c]
cmp ebx, 0xc0a
jne 0x449eac
push edi
call fcn.00419a00
add esp, 4
jmp 0x449ec1
cmp ebx, 0xb
jne 0x449ec1
cmp byte [edi + 0x55], 0
jne 0x449ec1
mov edx, dword [edi + 0x20]
or dword [edi + 0x24], 2
mov dword [edi + 0x20], edx
mov al, byte [esp + 0x63]
test al, al
mov dword [esp + 0x14], 1
jbe 0x449ede
movzx eax, al
sub eax, 1
mov esi, edi
call fcn.004608c0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
cmp dword [esp + 0x9c], ebx
jb 0x449f55
ja 0x449f04
cmp dword [esp + 0x98], edi
jb 0x449f55
mov eax, dword [esi + 0x174]
test eax, eax
je 0x449f55
mov ecx, dword [esi + 0x17c]
mov edx, dword [esi + 0x178]
add edi, ecx
adc ebx, 0
push edx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], ebx
call eax
add esp, 4
test eax, eax
je 0x449ef0
or eax, 0xffffffff
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x14], 9
jmp 0x449cf8
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x98]
add dword [eax + 0xb4], ecx
cmp dword [eax + 0xa0], 0
je 0x449f77
push eax
call fcn.0043d500
add esp, 4
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret