Function at 0x45ac85
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x258
mov eax, ecx
mov dword [esp + 0x10], 0
push esi
push edi
mov dword [esp + 0x10], eax
mov edi, dword [eax]
mov esi, dword [eax + 0x68]
mov dword [esp + 0x58], esi
mov dword [esp + 0xc], esi
mov cl, byte [edi + 0x4e]
mov byte [esp + 0x60], cl
mov ecx, dword [eax + 0x58]
mov dword [esp + 0x20], ecx
mov ecx, eax
mov dword [esp + 0x64], edi
mov byte [esp + 0x6b], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x14], 0
call fcn.00453000
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x28], 7
je 0x45bbbd
mov dword [edx + 0x38], 0
mov dword [edx + 0x3c], 0
mov dword [edx + 0x78], 0
cmp dword [edi + 0x108], 0
mov dword [edi + 0x194], 0
jne 0x45fd56
cmp dword [edi + 0x140], 0
je 0x459f69
mov eax, dword [edx + 0xb4]
xor edx, edx
mov ecx, dword [edi + 0x148]
div ecx
sub ecx, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
jmp 0x459f71
mov dword [esp + 0x78], 0xffffffff
mov eax, dword [edx + 0x24]
mov dword [esp + 0x74], 0x3e00
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
xor eax, eax
mov cl, byte [esi]
inc eax
movzx edx, cl
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], eax
mov byte [esp + 0x2b], cl
mov dword [esp + 0x44], edx
cmp edx, 0xa8
ja case.0x459fa6.86
jmp dword [edx*4 + 0x45fe44]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0x58]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x20]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x58]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x64]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x58]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x64]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*4]
mov eax, 0x80
mov word [edx + ecx*8 + 8], ax
add esi, 0x14
mov eax, dword [esp + 0x14]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, edi
mov edi, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
dec eax
cdq
mov dword [edi + ecx*8], eax
mov eax, 4
mov dword [edi + ecx*8 + 4], edx
mov word [edi + ecx*8 + 8], ax
cmp dword [esi + 8], 0
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x58]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
mov eax, 0x80
mov word [edi + ecx*8 + 8], ax
add esi, 0x14
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov ecx, 4
mov eax, dword [edi + 4]
sub edi, dword [esp + 0x58]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul edi
mov edi, dword [esp + 0x20]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x58]
mov dword [edi + esi*8 + 4], edx
mov edi, dword [esp + 0x64]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x45a1e8
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
imul ecx
mov eax, dword [esp + 0x10]
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x30], esi
cmp dword [edx + 4], 0
jne 0x45f880
mov ecx, dword [eax + 0xc8]
test ecx, ecx
je 0x45f880
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
dec dword [edx + 0xd0]
mov dword [edx + 0xc8], eax
mov eax, dword [edx + 0x2c]
add dword [edi + 0x68], eax
mov dword [edi + 0x64], eax
call fcn.00453bd0
mov edi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0xc]
cmp dword [eax + 8], 4
jne 0x45a1a4
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov edx, dword [edi + 0x68]
mov eax, dword [edi + 0x58]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x20], eax
lea eax, [ecx + ecx*4]
lea esi, [edx + eax*4]
mov dword [esp + 0x58], edx
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.00459e80
mov ecx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.00459e80
mov edx, eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.00459e80
mov ecx, eax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00459e80
mov esi, eax
mov eax, dword [esp + 0xc]
mov byte [eax], 0x48
mov eax, dword [eax + 0x10]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.004342f0
cmp byte [esp + 0x60], 1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 4], eax
je 0x45a30f
mov edx, dword [esp + 0x1c]
mov ecx, esi
push 0
push 1
push 0xffffffffffffffff
call fcn.00450e30
movzx ecx, byte [esp + 0x6c]
add esp, 0xc
test byte [esi + 8], 2
mov dword [esp + 0x18], eax
je 0x45a2d3
movzx eax, byte [esi + 0xa]
cmp eax, ecx
je 0x45a2d3
mov dl, cl
mov ecx, esi
call fcn.00433c50
test eax, eax
jne 0x45bbb9
mov eax, 0x800
mov dword [esi + 0x18], 0
or word [esi + 8], ax
mov eax, dword [esp + 0xc]
cmp byte [eax + 1], 0xf9
jne 0x45a2fb
mov edx, dword [eax + 0x10]
mov ecx, edi
call fcn.00431110
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov byte [eax + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 4]
cmp eax, dword [edi + 0x6c]
jg 0x45ea45
mov edi, dword [esp + 0xc]
mov edx, edi
mov ecx, dword [esp + 0x10]
call fcn.00459e80
mov ecx, eax
mov esi, edi
mov eax, 0xa02
mov dword [esp + 0x1c], ecx
mov word [ecx + 8], ax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, edi
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x60]
mov byte [ecx + 0xa], al
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x45a1e8
mov ecx, dword [esp + 0x20]
lea edi, [eax + eax*4]
movzx eax, word [esi + 2]
cdq
cmp dword [ecx + edi*8], eax
mov ecx, dword [esp + 0x1c]
jne 0x45a1e8
mov eax, dword [esp + 0x20]
cmp dword [eax + edi*8 + 4], edx
jne 0x45a1e8
mov edi, dword [esp + 0x64]
mov eax, 0xa10
mov word [ecx + 8], ax
add esi, 0x14
mov eax, dword [esp + 0x14]
jmp 0x459f84
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.00459e80
mov ecx, dword [esp + 0xc]
mov edx, 0x101
mov esi, dword [esp + 0xc]
mov edi, dword [ecx + 0xc]
sub edi, dword [ecx + 8]
mov ecx, 1
cmp dword [esi + 4], 0
lea esi, [eax + 0xc]
mov dword [esi], 0
cmovne ecx, edx
movzx ecx, cx
mov dword [esp + 0x1c], ecx
mov word [eax + 8], cx
test edi, edi
jle 0x45a1e4
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.00450bd0
mov eax, dword [esp + 0x1c]
dec edi
mov word [esi - 4], ax
mov dword [esi], 0
test edi, edi
jg 0x45a3e3
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov edx, 0xff61
mov edi, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 1
add esi, 0x14
mov word [edi + ecx*8 + 8], ax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
call fcn.00459e80
mov esi, eax
mov eax, dword [esp + 0xc]
push 0
push 0
mov ecx, esi
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.00450e30
mov al, byte [esp + 0x6c]
add esp, 0xc
mov byte [esi + 0xa], al
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x64]
lea esi, [eax + ecx*8]
lea ecx, [esi - 0x28]
call fcn.00450cc0
test eax, eax
jne 0x45ea45
mov eax, dword [esp + 0xc]
lea edx, [esi - 0x28]
mov ecx, dword [esp + 0x20]
push 0x800
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00450d20
add esp, 4
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov edx, ecx
mov ecx, esi
call fcn.00450de0
mov eax, 0x1000
test word [esi + 8], ax
je 0x45a524
mov ecx, esi
call fcn.004503b0
test eax, eax
jne 0x45bbb9
mov ecx, dword [esp + 0x24]
add esi, 0x28
add ecx, 0x28
sub dword [esp + 0x50], 1
mov dword [esp + 0x24], ecx
jne 0x45a501
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 0xc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 4]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov dword [esp + 0x50], ecx
mov edx, ecx
push 0x1000
mov ecx, esi
call fcn.00450d20
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x45a59d
mov ecx, esi
call fcn.004503b0
test eax, eax
jne 0x45bbb9
mov ecx, dword [esp + 0x24]
mov eax, ecx
dec ecx
mov dword [esp + 0x24], ecx
test eax, eax
je 0x45a1e4
mov ecx, dword [esp + 0x50]
add esi, 0x28
add ecx, 0x28
jmp 0x45a56e
mov edi, dword [esp + 0xc]
push 0x1000
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.00450d20
add esp, 4
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
push dword [edi + eax*8 + 4]
push dword [edi + eax*8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.00450c30
add esp, 8
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], ecx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [edx + 8]
mov dword [esp + 0x1c], eax
mov al, byte [ecx + 8]
or al, byte [esp + 0x1c]
test al, 1
je 0x45a696
mov ecx, esi
call fcn.00450bd0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
movzx eax, word [edx + 8]
test eax, 0x4000
je 0x45a6b4
mov ecx, edx
call fcn.00450410
test eax, eax
jne 0x45bbb9
mov ecx, dword [esp + 0x48]
mov eax, 0x4000
test word [ecx + 8], ax
je 0x45a6cc
call fcn.00450410
test eax, eax
jne 0x45bbb9
mov eax, dword [esp + 0x24]
test byte [eax + 8], 0x12
jne 0x45a6ee
mov dl, byte [esp + 0x60]
mov ecx, eax
push 0
call fcn.00450490
add esp, 4
test eax, eax
jne 0x45bbb9
mov eax, dword [esp + 0x48]
test byte [eax + 8], 0x12
jne 0x45a710
mov dl, byte [esp + 0x60]
mov ecx, eax
push 0
call fcn.00450490
add esp, 4
test eax, eax
jne 0x45bbb9
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov dword [esp + 0x50], eax
mov ecx, edx
mov eax, dword [edi + 0x6c]
cdq
cmp ecx, edx
jg 0x45ea45
mov edx, dword [esp + 0x50]
jl 0x45a73f
cmp edx, eax
ja 0x45ea45
xor eax, eax
mov ecx, esi
cmp esi, dword [esp + 0x48]
sete al
add edx, 2
push eax
call fcn.00450200
add esp, 4
test eax, eax
jne 0x45bbb9
mov ax, word [esi + 8]
mov ecx, 0x3e00
mov edi, dword [esp + 0x48]
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x45a78b
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.00588420
add esp, 0xc
mov eax, dword [esp + 0x24]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.00588420
mov eax, dword [esi + 0x10]
add esp, 0xc
mov ecx, dword [esp + 0x50]
mov byte [ecx + eax], 0
mov eax, dword [esi + 0x10]
mov byte [eax + ecx + 1], 0
mov eax, 0x200
or word [esi + 8], ax
mov al, byte [esp + 0x60]
mov dword [esi + 0xc], ecx
mov byte [esi + 0xa], al
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x5c], esi
call fcn.00459e20
movzx eax, ax
mov dword [esp + 0x48], eax
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [esp + 0x2c], eax
call fcn.00459e20
mov ecx, dword [esp + 0xc]
movzx eax, ax
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov ax, word [edi + 8]
or ax, word [esi + 8]
movzx edx, ax
mov al, byte [esp + 0x50]
and al, byte [esp + 0x48]
test al, 4
je 0x45a9ae
mov edx, dword [esi]
mov eax, edi
mov esi, dword [esi + 4]
mov byte [esp + 0x2b], 1
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 0x94], eax
movzx eax, byte [ecx]
add eax, 0xffffffa0
mov dword [esp + 0x90], edi
cmp eax, 3
ja case.default.0x45a882
jmp dword [eax*4 + 0x4600e8]
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.00435580
add esp, 8
test eax, eax
je 0x45a96f
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x5c]
mov ecx, esi
call fcn.004508a0
mov ecx, edi
movsd qword [esp + 0x30], xmm0
call fcn.004508a0
mov eax, dword [esp + 0xc]
movaps xmm1, xmm0
movzx eax, byte [eax]
add eax, 0xffffffa0
cmp eax, 3
ja case.default.0x45a8d4
jmp dword [eax*4 + 0x4600f8]
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.00435620
add esp, 8
test eax, eax
jne 0x45a8a2
jmp 0x45a96f
push esi
push edx
lea ecx, [esp + 0x98]
call fcn.00435670
add esp, 8
test eax, eax
jne 0x45a8a2
jmp 0x45a96f
mov eax, edx
or eax, esi
je 0x45aa9f
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
mov eax, dword [esp + 0x44]
jne 0x45a92f
test edi, edi
jne 0x45a92f
cmp eax, 0x80000000
je 0x45a8a2
push esi
push edx
push eax
push edi
call fcn.00501fc0
jmp 0x45a961
mov eax, edx
or eax, esi
je 0x45aa9f
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x45a954
mov edx, 1
xor esi, esi
mov eax, dword [esp + 0x44]
push esi
push edx
push eax
push edi
call fcn.005020b0
mov dword [esp + 0x94], edx
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x24]
mov edx, 0x3e00
mov eax, dword [esp + 0x90]
mov dword [ecx], eax
mov eax, dword [esp + 0x94]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
or ax, 4
mov word [ecx + 8], ax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
test dl, 1
jne 0x45aa9f
mov byte [esp + 0x2b], 0
jmp 0x45a8aa
addsd xmm1, qword [esp + 0x30]
jmp 0x45aa43
subsd xmm1, qword [esp + 0x30]
jmp 0x45aa43
mulsd xmm1, qword [esp + 0x30]
jmp 0x45aa43
movsd xmm0, qword [esp + 0x30]
xorps xmm2, xmm2
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x45aa9f
divsd xmm1, xmm0
jmp 0x45aa43
mov ecx, esi
call fcn.00450820
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov edi, edx
call fcn.00450820
mov ecx, eax
mov dword [esp + 0x94], edx
mov eax, esi
mov dword [esp + 0x90], ecx
or eax, edi
je 0x45aa9f
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x45aa30
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.005020b0
mov ecx, eax
call fcn.005027a0
movaps xmm1, xmm0
movaps xmm0, xmm1
call fcn.004342b0
test eax, eax
jne 0x45aa9f
mov ecx, dword [esp + 0x24]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm1
or ax, 8
mov word [ecx + 8], ax
mov eax, dword [esp + 0x50]
or al, byte [esp + 0x48]
test al, 8
jne 0x45a1e4
cmp byte [esp + 0x2b], 0
jne 0x45a1e4
call fcn.00450920
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x24]
call fcn.00450bd0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
test eax, eax
je 0x45a1e8
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [ecx + eax*8]
call fcn.00450c30
mov eax, dword [esp + 0x1c]
add esp, 8
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov al, byte [edx + 8]
or al, byte [ecx + 8]
mov dword [esp + 0x3c], esi
test al, 1
je 0x45ab45
mov ecx, esi
call fcn.00450bd0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, edx
call fcn.00450820
mov ecx, dword [esp + 0x1c]
mov edi, eax
mov esi, edx
mov dword [esp + 0x110], edi
mov dword [esp + 0x114], esi
call fcn.00450820
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
mov al, byte [eax]
mov byte [esp + 0x2b], al
cmp al, 0x5c
jne 0x45ab84
and edi, ecx
and esi, edx
jmp 0x45ac1e
cmp al, 0x5d
jne 0x45ab91
or edi, ecx
or esi, edx
jmp 0x45ac1e
mov eax, ecx
or eax, edx
je 0x45ac1e
test edx, edx
jg 0x45abc4
jl 0x45aba5
test ecx, ecx
jae 0x45abc4
mov al, 0xbd
sub al, byte [esp + 0x2b]
cmp edx, 0xffffffff
jl 0x45abd3
jg 0x45abb7
cmp ecx, 0xffffffc0
jbe 0x45abd3
neg ecx
mov dword [esp + 0x24], ecx
adc edx, 0
neg edx
jmp 0x45abc8
mov al, byte [esp + 0x2b]
test edx, edx
jl 0x45abfb
jg 0x45abd3
cmp ecx, 0x40
jb 0x45abfb
test esi, esi
jg 0x45abe8
jl 0x45abdd
test edi, edi
jae 0x45abe8
cmp al, 0x5e
je 0x45abe8
or edi, 0xffffffff
or esi, edi
jmp 0x45ac1e
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
jmp 0x45ac1e
movq xmm1, qword [esp + 0x110]
movd xmm0, ecx
cmp al, 0x5e
jne 0x45ac4f
psllq xmm1, xmm0
movq qword [esp + 0x30], xmm1
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], edi
or ax, 4
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
psrlq xmm1, xmm0
movq qword [esp + 0x30], xmm1
test esi, esi
jg 0x45ac16
jl 0x45ac63
test edi, edi
jae 0x45ac16
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x24]
or edx, 0xffffffff
call fcn.005c05f0
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
or edi, eax
or esi, edx
jmp 0x45ac1e
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00450980
mov eax, edi
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
mov eax, dword [esp + 0x14]
mov esi, edi
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [ecx + 8]
mov dword [esp + 0x24], ecx
test al, 4
jne 0x45ad0c
test al, 8
jne 0x45ace7
test al, 2
je 0x45acf0
mov edx, 1
call fcn.00459c20
jmp 0x45acec
call fcn.00450920
mov ecx, dword [esp + 0x24]
movzx eax, word [ecx + 8]
test al, 4
jne 0x45ad0c
cmp dword [esi + 8], 0
jne 0x45f860
mov eax, 0x14
jmp 0x45edfb
mov edi, dword [esp + 0x64]
and eax, 0x3e00
or eax, 4
add esi, 0x14
mov word [ecx + 8], ax
mov eax, dword [esp + 0x14]
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea ecx, [ecx + eax*8]
je 0x45a1e8
call fcn.004509f0
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x45ad7a
mov ecx, esi
call fcn.00450410
mov dword [esp + 0x18], eax
jmp 0x45ad82
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0xc]
mov ecx, esi
push dword [esp + 0x60]
mov dl, byte [eax + 8]
call fcn.00450b00
mov eax, dword [esp + 0x1c]
add esp, 4
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x50], edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
movzx edx, word [ecx + eax*8 + 8]
lea esi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov ecx, edx
or ecx, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x2c], edx
test cl, 1
je 0x45af1f
mov esi, dword [esp + 0xc]
movzx eax, word [esi + 2]
test al, al
jns 0x45aec8
mov al, dl
and al, byte [esp + 0x4c]
test al, 1
je 0x45ae32
test edx, 0x100
jne 0x45ae32
mov eax, dword [esp + 0xc]
xor ecx, ecx
mov esi, dword [esp + 0x24]
movzx eax, byte [eax]
mov al, byte [eax + 0x61a7c8]
jmp 0x45ae48
mov esi, dword [esp + 0x24]
mov ecx, 1
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x619b64]
mov edx, dword [esp + 0x50]
movzx edi, al
movzx eax, word [esp + 0x4c]
mov word [edx + 8], ax
movzx eax, word [esp + 0x2c]
mov word [esi + 8], ax
mov esi, dword [esp + 0xc]
movzx eax, word [esi + 2]
test al, 0x20
je 0x45b071
mov eax, dword [esi + 8]
mov dword [esp + 0x8c], ecx
lea edx, [eax + eax*4]
movzx eax, word [esi + 2]
test al, 8
je 0x45ae96
xor eax, eax
cmp byte [esi], 0x35
sete al
cmp eax, edi
je 0x45a1e8
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + edx*8 + 8]
and ax, word [esp + 0x74]
or ax, 4
mov dword [ecx + edx*8], edi
mov edi, dword [esp + 0x64]
add esi, 0x14
mov word [ecx + edx*8 + 8], ax
mov eax, dword [esp + 0x14]
mov dword [ecx + edx*8 + 4], 0
jmp 0x459f84
test al, 0x20
je 0x45af07
mov eax, dword [esi + 8]
mov edi, 0x3e00
mov edx, dword [esp + 0x20]
mov dword [esp + 0x8c], 1
lea ecx, [eax + eax*4]
mov ax, word [edx + ecx*8 + 8]
and ax, di
mov edi, dword [esp + 0x64]
or ax, 1
add esi, 0x14
mov word [edx + ecx*8 + 8], ax
mov eax, dword [esp + 0x14]
jmp 0x459f84
test al, 0x10
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0xc]
mov al, byte [eax + 2]
and al, 0x47
cmp al, 0x43
jb 0x45afc6
test cl, 2
je 0x45af63
mov al, byte [esp + 0x4c]
and al, 0xe
cmp al, 2
jne 0x45af50
xor edx, edx
mov ecx, edi
call fcn.00459c20
movzx eax, word [esi + 8]
mov dword [esp + 0x2c], eax
mov al, byte [esp + 0x2c]
and al, 0xe
cmp al, 2
jne 0x45af63
xor edx, edx
mov ecx, esi
call fcn.00459c20
mov al, byte [esi + 8]
and al, byte [edi + 8]
test al, 4
je 0x45b02e
mov edx, dword [esp + 0x50]
mov edi, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [edx]
mov edx, dword [edx + 4]
cmp edi, edx
jl 0x45af9d
jg 0x45af89
cmp ecx, eax
jbe 0x45af93
mov ecx, 1
jmp 0x45ae3b
cmp edi, edx
jg 0x45afb2
jl 0x45af9d
cmp ecx, eax
jae 0x45afb2
mov eax, dword [esp + 0xc]
or ecx, 0xffffffff
movzx eax, byte [eax]
mov al, byte [eax + 0x61e3b4]
jmp 0x45ae48
mov eax, dword [esp + 0xc]
xor ecx, ecx
movzx eax, byte [eax]
mov al, byte [eax + 0x61a7c8]
jmp 0x45ae48
cmp al, 0x42
jne 0x45b02e
mov al, byte [esp + 0x4c]
test al, 2
jne 0x45affc
test al, 0xc
je 0x45affc
mov dl, byte [esp + 0x60]
mov ecx, edi
push 1
call fcn.00450490
mov ax, word [edi + 8]
mov ecx, 0x3e00
xor ax, word [esp + 0x50]
add esp, 4
and ax, cx
xor word [esp + 0x4c], ax
mov al, byte [esp + 0x2c]
test al, 2
jne 0x45b02e
test al, 0xc
je 0x45b02e
mov dl, byte [esp + 0x60]
mov ecx, esi
push 1
call fcn.00450490
mov ax, word [esi + 8]
mov ecx, 0x3e00
xor ax, word [esp + 0x30]
add esp, 4
and ax, cx
xor word [esp + 0x2c], ax
mov eax, dword [esp + 0xc]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.00455bd0
add esp, 4
mov ecx, eax
test ecx, ecx
jns 0x45b059
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x61e3b4]
jmp 0x45ae48
jne 0x45ae3b
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x61a7c8]
jmp 0x45ae48
test edi, edi
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp dword [esp + 0x8c], 0
jne 0x45f860
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
test byte [esi + 2], 1
jne 0x45b0ad
xor eax, eax
jmp 0x45b0b3
mov eax, dword [esi - 4]
add eax, 4
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov edi, dword [esi + 4]
mov esi, dword [esi + 8]
mov dword [esp + 0x1c], esi
xor esi, esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], edi
test ecx, ecx
jle 0x45a1e4
lea edi, [edx + 0x14]
test eax, eax
je 0x45b0e9
mov ecx, dword [eax + esi*4]
jmp 0x45b0eb
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [esp + 0x20]
push dword [edi]
movzx eax, byte [eax + esi]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
mov eax, dword [esp + 0x40]
add eax, ecx
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00455bd0
mov ecx, eax
add esp, 4
mov dword [esp + 0x8c], ecx
test ecx, ecx
jne 0x45b153
mov eax, dword [esp + 0x24]
inc esi
mov edx, dword [esp + 0x44]
add edi, 4
cmp esi, dword [esp + 0x50]
jl 0x45b0e0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp dword [esp + 0x5c], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
je case.0x459fa6.86
mov edi, dword [esp + 0x64]
neg ecx
mov dword [esp + 0x8c], ecx
add esi, 0x14
jmp 0x459f84
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
test eax, eax
jns 0x45b1aa
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
jne 0x45b1c8
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov eax, dword [edi + 0xc]
mov edi, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov edx, 2
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004508d0
mov ecx, dword [edi + 8]
mov esi, eax
mov eax, dword [esp + 0x20]
mov edx, 2
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
call fcn.004508d0
cmp byte [edi], 0x2c
lea eax, [eax + esi*2]
jne 0x45b229
mov al, byte [esi + eax + 0x61af98]
jmp 0x45b230
mov al, byte [esi + eax + 0x61ab84]
movzx edx, al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x45b270
mov edx, dword [esp + 0x20]
mov esi, 0x3e00
mov ax, word [edx + ecx*8 + 8]
and ax, si
or ax, 1
mov word [edx + ecx*8 + 8], ax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0x20]
mov ax, word [edi + ecx*8 + 8]
mov dword [edi + ecx*8], edx
mov edx, 0x3e00
and ax, dx
mov dword [edi + ecx*8 + 4], 0
or ax, 4
mov word [edi + ecx*8 + 8], ax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.004508d0
mov ecx, edi
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.00450c30
add esp, 8
mov eax, dword [esp + 0x14]
mov esi, edi
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jne 0x45a67b
xor edx, edx
call fcn.004508d0
neg eax
mov ecx, esi
push 0
sbb eax, eax
inc eax
push eax
call fcn.00450c30
add esp, 8
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00450bd0
test byte [edi + 8], 1
jne 0x45a1e4
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.00450820
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x45b416
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [edi + 0x68]
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x10]
mov edi, ecx
and ecx, 7
shr edi, 3
mov eax, dword [edx + 0xc8]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
movzx edx, byte [edi + eax]
mov eax, 1
shl eax, cl
test edx, eax
jne 0x45f860
mov eax, dword [esp + 0x1c]
bts edx, ecx
mov byte [edi + eax], dl
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x64]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
add esi, 0x14
mov eax, dword [esp + 0x14]
jmp 0x459f84
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [esi + 4]
je 0x45f860
mov eax, dword [edi + 0x68]
mov edi, dword [esp + 0x64]
mov eax, dword [eax + 4]
mov dword [esi + 4], eax
add esi, 0x14
mov eax, dword [esp + 0x14]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, edi
mov edx, dword [eax + 0xc]
call fcn.004508d0
mov esi, edi
test eax, eax
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, dword [esp + 0x20]
cmp dword [esi + 0xc], edx
lea eax, [eax + eax*4]
sete dl
lea ecx, [ecx + eax*8]
call fcn.004508d0
test eax, eax
je 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x45a1e8
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00450bd0
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
mov eax, dword [esi + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x7c]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
mov dword [esp + 0x7c], eax
call fcn.00455210
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x4c], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esi + 0x1c]
cmp eax, dword [edi + 0x20]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x2c], ecx
je 0x45b675
cmp byte [esi + 2], 0
je 0x45b5d9
cmp byte [esi], 3
jne 0x45a67d
mov eax, dword [esi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [esi + 0x54], eax
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx*8 + 0x10]
mov dword [esi + 0x4c], eax
jmp 0x45b60e
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00448510
mov ecx, dword [esp + 0x6c]
mov eax, dword [esi + 0x2c]
mov dword [ecx + 0x50], eax
lea edx, [ecx + 0x54]
mov ecx, esi
call fcn.00448b20
mov esi, dword [esp + 0x6c]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x50]
cmp eax, dword [edi + 0x6c]
ja 0x45ea45
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x45b62d
movzx eax, al
mov dword [edx], eax
mov eax, 1
jmp 0x45b639
call fcn.004353c0
mov edx, dword [esp + 0x4c]
movzx eax, al
movzx eax, al
lea ecx, [esi + 0x54]
mov dword [esi + 0x30], eax
xor eax, eax
mov word [esi + 0x3a], ax
mov eax, dword [ecx]
cmp eax, dword [edx]
jae 0x45b754
mov dword [esi + 0x4c], 0
mov dword [ecx], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x45b850
cmp eax, dword [esi + 0x50]
ja 0x45b850
movzx eax, word [esi + 0x3a]
mov ecx, dword [esp + 0x7c]
cmp eax, ecx
jg 0x45b8c5
mov eax, dword [esi + 0x30]
cmp eax, dword [edx]
jae 0x45b878
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x44], eax
test eax, eax
jne 0x45b6e9
xorps xmm0, xmm0
lea eax, [esp + 0x1d0]
movaps xmmword [esp + 0x1d0], xmm0
movaps xmmword [esp + 0x1e0], xmm0
movq qword [esp + 0x1f0], xmm0
mov ecx, dword [esi + 0x28]
push eax
push dword [edx]
xor edx, edx
call fcn.00451140
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x1e0]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x44], eax
movzx ecx, word [esi + 0x3a]
mov esi, dword [esi + 0x30]
add esi, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x5c], eax
mov eax, dword [edx]
add eax, dword [esp + 0x44]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], 0
lea eax, [eax + ecx*4]
add eax, 0x58
mov dword [esp + 0x24], eax
nop
movzx ecx, byte [esi]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xa0], ecx
cmp ecx, 0x80
jae 0x45b759
movzx eax, cl
movzx eax, byte [eax + 0x61b020]
cdq
add dword [esp + 0x5c], eax
mov eax, 1
adc dword [esp + 0x48], edx
mov edx, dword [esp + 0x5c]
jmp 0x45b791
mov eax, dword [esi + 0x4c]
jmp 0x45b6e5
lea edx, [esp + 0xa0]
mov ecx, esi
call fcn.004353c0
mov ecx, dword [esp + 0xa0]
movzx eax, al
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], ecx
call fcn.004553c0
mov edx, dword [esp + 0x5c]
add edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], edx
adc dword [esp + 0x48], 0
mov edi, dword [esp + 0x4c]
add esi, eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x24], 4
mov dword [eax], ecx
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
mov dword [edi + eax*4], edx
mov edi, dword [esp + 0x64]
cmp eax, dword [esp + 0x7c]
jg 0x45b7c4
cmp esi, dword [esp + 0x50]
jb 0x45b720
jmp 0x45b7ca
cmp esi, dword [esp + 0x50]
jb 0x45b7e4
cmp esi, dword [esp + 0x50]
ja 0x45b802
mov edi, dword [esp + 0x6c]
cmp edx, dword [edi + 0x50]
mov edi, dword [esp + 0x64]
jne 0x45b802
cmp dword [esp + 0x48], 0
jne 0x45b802
cmp dword [esp + 0x48], 0
mov edi, dword [esp + 0x6c]
mov edi, dword [edi + 0x50]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x64]
jb 0x45b811
ja 0x45b802
cmp edx, dword [esp + 0x1c]
jbe 0x45b811
mov eax, dword [esp + 0x4c]
cmp dword [eax], 0
jne 0x45b83a
mov esi, dword [esp + 0x50]
xor eax, eax
mov edx, dword [esp + 0x6c]
sub esi, dword [esp + 0x44]
mov word [edx + 0x3a], ax
mov dword [edx + 0x30], esi
mov esi, edx
cmp dword [esi + 0x4c], 0
jne 0x45b885
lea ecx, [esp + 0x1d0]
call fcn.00450770
mov ecx, dword [esp + 0x40]
jmp 0x45b885
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x4c], 0
jne 0x45b850
lea ecx, [esp + 0x1d0]
call fcn.00450770
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0xc]
test eax, eax
jle 0x45f948
mov edi, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [edx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0xa0], ecx
movzx eax, word [esi + 0x3a]
cmp eax, dword [esp + 0x7c]
jg 0x45b8d4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
cmp byte [eax + 1], 0xf5
jne 0x45a67d
mov edx, dword [eax + 0x10]
push 0x800
call fcn.00450d20
add esp, 4
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0x2c]
mov edx, 0x2400
test word [eax + 8], dx
je 0x45b8ee
mov ecx, eax
call fcn.00450bd0
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 0x54]
cmp eax, dword [edx + edi*4 + 4]
mov edi, dword [esp + 0x64]
jb 0x45b9c6
mov eax, dword [esi + 0x4c]
mov esi, dword [esp + 0x7c]
add eax, dword [edx + esi*4]
mov dword [esp + 0x1c], eax
cmp ecx, 0xc
jae 0x45b93a
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, eax
call fcn.00455540
add esp, 4
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov al, byte [esp + 0x60]
lea esi, [ecx - 0xc]
mov ecx, dword [esp + 0x2c]
shr esi, 1
mov dword [ecx + 0xc], esi
lea edx, [esi + 2]
mov byte [ecx + 0xa], al
cmp dword [ecx + 0x18], edx
jge 0x45b976
mov eax, 1
push 0
mov word [ecx + 8], ax
call fcn.00450200
add esp, 4
test eax, eax
jne 0x45bbb9
mov ecx, dword [esp + 0x2c]
jmp 0x45b97c
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push dword [esp + 0x20]
push dword [ecx + 0x10]
call fcn.00588420
mov ecx, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [esp + 0x40]
and edx, 1
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov ax, word [edx*2 + 0x61b62c]
mov word [ecx + 8], ax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x2c]
mov dl, byte [esp + 0x60]
mov byte [eax + 0xa], dl
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x4c]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x45b9ef
cmp ecx, 0xc
jb 0x45b9eb
test cl, 1
je 0x45b9f8
test al, al
js 0x45b9f8
call fcn.004553c0
test eax, eax
jne 0x45ba1f
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, 0x656274
call fcn.00455540
add esp, 4
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
push dword [esp + 0x2c]
mov ecx, dword [esi + 0x28]
push eax
mov eax, dword [esp + 0x84]
mov edx, dword [edx + eax*4]
call fcn.00451140
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
push esi
mov ecx, dword [esi + 0x10]
call fcn.00455540
mov eax, 0xefff
add esp, 4
and word [esi + 8], ax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x10]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov al, byte [edi]
push dword [esp + 0x60]
mov dl, al
mov ecx, esi
call fcn.00459cc0
mov al, byte [edi + 1]
lea edi, [edi + 1]
add esp, 4
add esi, 0x28
test al, al
jne 0x45ba88
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x20]
movlpd qword [esp + 0x30], xmm0
movlpd qword [esp + 0x50], xmm0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], ecx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 0x93]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
test esi, esi
je 0x45bb4b
mov al, byte [esi]
mov edi, ecx
push dword [esp + 0x60]
mov dl, al
mov ecx, edi
call fcn.00459cc0
mov al, byte [esi + 1]
lea esi, [esi + 1]
add esp, 4
add edi, 0x28
test al, al
jne 0x45bb26
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x4c], eax
nop
lea eax, [esp + 0xac]
mov ecx, esi
push eax
call fcn.00455260
mov ecx, 0x4000
mov dword [esp + 0x54], eax
add esp, 4
test word [esi + 8], cx
je 0x45bc16
test eax, eax
jne 0x45bba4
mov eax, 0xa
mov dword [esp + 0x50], eax
jmp 0x45bc16
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x40]
je 0x45bbfe
mov ecx, esi
call fcn.00450410
test eax, eax
je 0x45bc12
mov edx, dword [esp + 0x10]
cmp byte [edi + 0x51], 0
jne 0x45bbe6
cmp byte [edi + 0x52], 0
jne 0x45bbe6
cmp dword [edi + 0xb8], 0
mov byte [edi + 0x51], 1
jle 0x45bbe0
mov dword [edi + 0x108], 1
inc dword [edi + 0x110]
push str.out_of_memory
push edx
call fcn.00451930
add esp, 8
mov eax, 7
jmp 0x45edfb
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [esp + 0x4c], eax
adc dword [esp + 0x24], edx
sub dword [esp + 0xac], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
add ecx, dword [esp + 0xac]
mov dword [esp + 0x48], ecx
adc dword [esp + 0x40], 0
cmp eax, 0x7f
ja 0x45bc36
mov ecx, 1
jmp 0x45bc47
push 0
push eax
call fcn.00435440
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
add edx, ecx
mov dword [esi + 0x1c], eax
mov dword [esp + 0x2c], edx
cmp esi, dword [esp + 0x44]
je 0x45bc66
mov edx, dword [esp + 0x3c]
sub esi, 0x28
jmp 0x45bb70
cmp edx, 0x7e
jle 0x45bc94
mov eax, edx
cdq
push edx
push eax
call fcn.00435440
mov esi, eax
mov eax, dword [esp + 0x34]
add eax, esi
mov dword [esp + 0x34], eax
cdq
push edx
push eax
call fcn.00435440
mov edx, dword [esp + 0x3c]
add esp, 0x10
cmp esi, eax
jge 0x45bc99
inc edx
mov dword [esp + 0x2c], edx
mov eax, edx
cdq
mov ecx, eax
mov eax, edx
mov edx, ecx
mov dword [esp + 0x30], ecx
add edx, dword [esp + 0x48]
mov ecx, eax
mov dword [esp + 0x50], eax
mov esi, edx
mov eax, dword [esp + 0x5c]
adc ecx, dword [esp + 0x40]
add esi, dword [esp + 0x4c]
mov dword [esp + 0x3c], edx
mov eax, dword [eax + 0x18]
adc ecx, dword [esp + 0x24]
cdq
cmp ecx, edx
jg 0x45bcda
jl 0x45bcd4
cmp esi, eax
ja 0x45bcda
mov ecx, dword [esp + 0x5c]
jmp 0x45bd1c
mov eax, dword [edi + 0x6c]
cdq
cmp ecx, edx
jg 0x45ea45
jl 0x45bcf0
cmp esi, eax
ja 0x45ea45
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
cmp dword [ecx + 0x18], eax
jge 0x45bd17
push 0
mov edx, eax
call fcn.00450200
add esp, 4
test eax, eax
jne 0x45bbb9
mov ecx, dword [esp + 0x5c]
jmp 0x45bd22
and word [ecx + 8], 0xd
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
mov edi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x80
jae 0x45bd3a
mov byte [edi], cl
mov eax, 1
jmp 0x45bd4c
push dword [esp + 0x50]
mov ecx, edi
push dword [esp + 0x34]
call fcn.004351e0
add esp, 8
movzx esi, al
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x30], eax
cmp eax, 0x80
jae 0x45bd6b
mov byte [esi + edi], al
mov eax, 1
jmp 0x45bd79
push 0
push eax
lea ecx, [esi + edi]
call fcn.004351e0
add esp, 8
mov ecx, dword [esp + 0x2c]
push dword [esp + 0x30]
mov edx, dword [esp + 0x48]
movzx eax, al
lea ecx, [ecx + edi]
add esi, eax
call fcn.004553e0
add dword [esp + 0x30], eax
add esp, 4
mov eax, dword [esp + 0x44]
add eax, 0x28
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x1c]
jbe 0x45bd53
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0xc]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [esp + 0x24]
je 0x45a1e8
mov edi, dword [esp + 0x64]
mov eax, 0x4010
mov word [edx + 8], ax
add esi, 0x14
mov eax, dword [esp + 0x14]
mov dword [edx], ecx
jmp 0x459f84
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x118]
mov ecx, dword [esi + 4]
xorps xmm0, xmm0
movlpd qword [esp + 0x118], xmm0
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x28]
call fcn.0044dfa0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edff
mov edx, dword [esp + 0xc]
call fcn.00459e80
mov ecx, dword [esp + 0x118]
mov dword [eax], ecx
mov ecx, dword [esp + 0x11c]
mov dword [eax + 4], ecx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], ecx
test eax, eax
jne 0x45bf3a
cmp dword [edi + 0xb4], eax
jg 0x45f957
call fcn.004342f0
mov ecx, dword [edi + 0x1c8]
xor edx, edx
add ecx, dword [edi + 0x1c4]
push ecx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.0049e840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x1c]
mov ecx, edi
add eax, 0x21
push 0
push eax
call fcn.00431410
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
je 0x45a1e8
mov ecx, dword [esp + 0x1c]
lea edx, [eax + 0x20]
inc ecx
mov dword [eax], edx
push ecx
push dword [esp + 0x28]
push edx
call fcn.00588420
add esp, 0xc
cmp byte [edi + 0x4f], 0
je 0x45beed
mov byte [edi + 0x4f], 0
mov byte [edi + 0x57], 1
jmp 0x45bef3
inc dword [edi + 0x1c4]
mov ecx, dword [esp + 0x30]
add esi, 0x14
mov eax, dword [edi + 0x1bc]
mov dword [ecx + 0x18], eax
mov eax, dword [edi + 0x1d0]
mov dword [edi + 0x1bc], ecx
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x1d4]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0x1d8]
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x1dc]
mov edi, dword [esp + 0x64]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x14]
jmp 0x459f84
mov eax, dword [edi + 0x1bc]
xor edx, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], eax
test eax, eax
je 0x45f9ae
mov edx, ecx
mov ecx, dword [eax]
call fcn.00434620
test eax, eax
je 0x45bf70
mov eax, dword [esp + 0x48]
inc dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0x18]
jmp 0x45bf46
cmp dword [edi + 0xb4], 0
mov ecx, dword [esp + 0x4c]
jle 0x45bf86
cmp ecx, 1
je 0x45f972
mov eax, dword [esp + 0x48]
cmp dword [eax + 0x18], 0
jne 0x45bfe4
cmp byte [edi + 0x57], 0
je 0x45bfe4
mov dword [esp + 0x24], 1
cmp ecx, 1
jne 0x45bfec
mov edx, ecx
mov ecx, dword [esp + 0x10]
call fcn.004547c0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45fe1c
mov ecx, dword [esp + 0x10]
mov byte [edi + 0x4f], 1
call fcn.00454820
cmp eax, 5
je 0x45f979
mov eax, dword [esp + 0x10]
mov byte [edi + 0x57], 0
mov eax, dword [eax + 0x28]
mov dword [esp + 0x18], eax
jmp 0x45c0ec
mov dword [esp + 0x24], 0
mov ecx, dword [edi + 0x1c4]
sub ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
dec ecx
mov dword [esp + 0x40], ecx
cmp edx, 2
jne 0x45c078
mov eax, dword [edi + 0x18]
and eax, 1
mov dword [esp + 0x1c], 0
cmp dword [edi + 0x14], 0
mov dword [esp + 0x50], eax
jle 0x45c080
mov ecx, eax
xor ecx, 1
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
nop dword [eax + eax]
push ecx
mov ecx, dword [edi + 0x10]
mov edx, 0x204
mov ecx, dword [eax + ecx + 4]
call fcn.00447f60
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
inc ecx
add eax, 0x10
mov dword [esp + 0x1c], ecx
cmp ecx, dword [edi + 0x14]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
jl 0x45c030
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
jmp 0x45c080
mov dword [esp + 0x50], 0
cmp dword [edi + 0x14], 0
mov dword [esp + 0x1c], 0
jle 0x45c0d1
xor eax, eax
mov dword [esp + 0x3c], eax
push ecx
mov ecx, dword [edi + 0x10]
mov ecx, dword [eax + ecx + 4]
call fcn.00448250
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
inc ecx
mov edx, dword [esp + 0x4c]
add eax, 0x10
cmp ecx, dword [edi + 0x14]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
jl 0x45c094
cmp dword [esp + 0x50], 0
je 0x45c0ec
xor edx, edx
mov ecx, edi
call fcn.00456a50
mov ecx, edi
call fcn.00474a70
or dword [edi + 0x18], 1
mov ecx, dword [esp + 0x48]
cmp dword [edi + 0x1bc], ecx
je 0x45c162
mov esi, ecx
nop word [eax + eax]
cmp dword [edi + 0x1e0], 0
mov ecx, dword [edi + 0x1bc]
mov eax, dword [ecx + 0x18]
mov dword [edi + 0x1bc], eax
je 0x45c123
mov edx, ecx
mov ecx, edi
call fcn.00431090
jmp 0x45c14c
cmp ecx, dword [edi + 0x130]
jb 0x45c143
cmp ecx, dword [edi + 0x134]
jae 0x45c143
mov eax, dword [edi + 0x12c]
mov dword [ecx], eax
mov dword [edi + 0x12c], ecx
jmp 0x45c14c
push ecx
call fcn.00431020
add esp, 4
dec dword [edi + 0x1c4]
cmp dword [edi + 0x1bc], esi
jne 0x45c100
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
cmp edx, 1
jne 0x45c1b9
mov eax, dword [ecx + 0x18]
mov edx, ecx
mov ecx, edi
mov dword [edi + 0x1bc], eax
call fcn.00431110
cmp dword [esp + 0x24], 0
jne 0x45c1e9
dec dword [edi + 0x1c4]
mov edx, dword [esp + 0x40]
mov ecx, edi
push edx
mov edx, dword [esp + 0x50]
call fcn.0049e840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp dword [esp + 0x24], 0
mov eax, dword [ecx + 8]
mov dword [edi + 0x1d0], eax
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x1d4], eax
mov eax, dword [ecx + 0x10]
mov dword [edi + 0x1d8], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x1dc], eax
je 0x45c18a
cmp edx, 2
je 0x45c18a
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esi + 8]
mov dword [esp + 0xb4], 0
test edx, edx
je 0x45c228
mov eax, dword [edi + 0x20]
and eax, 0x100000
or eax, 0
jne 0x45f9ca
mov ecx, dword [esi + 4]
mov eax, dword [edi + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 4]
mov dword [esp + 0x30], eax
test eax, eax
je 0x45c2fd
lea ecx, [esp + 0xb4]
push ecx
mov ecx, eax
call fcn.004470e0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45f9d4
mov edx, dword [esp + 0x10]
cmp dword [esi + 8], eax
je 0x45c305
test byte [edx + 0x98], 0x80
je 0x45c305
cmp byte [edi + 0x4f], al
je 0x45c28b
cmp dword [edi + 0xb0], 1
jle 0x45c305
cmp dword [edx + 0x30], 0
jne 0x45c2a6
mov eax, dword [edi + 0x1c4]
inc dword [edi + 0x1c8]
add eax, dword [edi + 0x1c8]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x30]
mov ecx, edi
dec eax
xor edx, edx
push eax
call fcn.0049e840
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45c2d3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + 0x30]
call fcn.004481f0
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x1d0]
mov dword [edx + 0x48], eax
mov eax, dword [edi + 0x1d4]
mov dword [edx + 0x4c], eax
mov eax, dword [edi + 0x1d8]
mov dword [edx + 0x50], eax
mov eax, dword [edi + 0x1dc]
mov dword [edx + 0x54], eax
jmp 0x45c301
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp word [esi + 2], 0
je 0x45c341
mov eax, dword [esp + 0xb4]
cmp eax, dword [esi + 0xc]
jne 0x45fa08
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x10]
shl ecx, 4
mov eax, dword [ecx + eax + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [esi + 0x10]
jne 0x45fa08
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [edi + 0x10]
lea eax, [esp + 0x100]
mov edi, dword [esp + 0xc]
push eax
mov eax, dword [esi + 4]
add eax, eax
mov edx, dword [edi + 0xc]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0044de70
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, edi
call fcn.00459e80
mov ecx, eax
mov eax, dword [esp + 0x100]
jmp 0x45a1de
mov eax, dword [esi + 4]
push dword [esi + 0xc]
mov edx, dword [esi + 8]
shl eax, 4
add eax, dword [edi + 0x10]
mov dword [esp + 0x20], eax
mov ecx, dword [eax + 4]
call fcn.0044ded0
mov dword [esp + 0x1c], eax
add esp, 4
mov eax, dword [esi + 8]
cmp eax, 1
jne 0x45c3d1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0xc]
mov ecx, dword [ecx + 0xc]
mov dword [ecx], eax
or dword [edi + 0x18], 1
jmp 0x45c3e3
cmp eax, 2
jne 0x45c3e3
mov ecx, dword [esp + 0x1c]
mov al, byte [esi + 0xc]
mov ecx, dword [ecx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [esi + 4], 1
jne 0x45c3fd
xor edx, edx
mov ecx, edi
call fcn.00456a50
mov edx, dword [esp + 0x10]
and dword [edx + 0x98], 0xfffffffc
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x45c43a
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x34]
cmp eax, dword [ecx + 8]
je 0x45c565
mov cl, byte [esp + 0x2b]
jmp 0x45c444
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x98]
and al, 3
cmp al, 1
je 0x45fa6d
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], 0
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 8]
mov dword [esp + 0x50], edx
shl edx, 4
add edx, dword [edi + 0x10]
mov dword [esp + 0x1c], esi
mov edi, dword [edx + 4]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x64]
cmp cl, 0x6e
jne 0x45c4ec
movzx ecx, word [eax + 2]
mov eax, dword [edx + 0xc]
and ecx, 8
or ecx, 4
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 0x4c]
cmp al, byte [ecx + 0x93]
jae 0x45c4b2
mov byte [ecx + 0x93], al
mov eax, dword [esp + 0xc]
test byte [eax + 2], 0x10
je 0x45c4d7
mov ecx, dword [esp + 0x20]
lea eax, [esi + esi*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00450980
mov eax, dword [esi]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
mov cl, byte [eax + 1]
cmp cl, 0xf7
jne 0x45c4f6
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x24], ecx
movzx ecx, word [ecx + 8]
jmp 0x45c504
mov dword [esp + 0x3c], 0
jmp 0x45c4b6
cmp cl, 0xfd
jne 0x45c500
mov ecx, dword [eax + 0x10]
jmp 0x45c504
mov ecx, dword [esp + 0x30]
mov edx, dword [eax + 4]
push 0
push dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.00459ae0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x45bbb9
push dword [esi + 0x28]
mov eax, dword [esp + 0x20]
mov edx, eax
push dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x44]
or dword [esi + 8], 4
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.004483d0
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [esp + 0x24]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0xc]
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [esp + 0xc]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esi + 8]
mov esi, dword [esp + 0x10]
push 0
push 0xffffffffffffffff
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, esi
mov dword [esp + 0x38], eax
movsx eax, word [eax + 0x38]
push eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
call fcn.00459ae0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x45bbb9
mov edi, dword [esp + 0x30]
or dword [esi + 8], 1
push dword [esi + 0x28]
mov byte [esi + 2], 1
mov ecx, dword [edi + 0x2c]
mov dword [esi + 0x2c], ecx
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov edx, dword [edi + 0x34]
push ecx
mov dword [esi + 0x34], edx
mov ecx, dword [edi + 0xc]
push 4
call fcn.004483d0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x18], ecx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 4]
push 0
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + edx*4]
test ecx, ecx
je 0x45c63d
mov edx, dword [ecx + 0x34]
mov ecx, dword [ecx + 0xc]
call fcn.0044dae0
add esp, 4
mov dword [esp + 0x18], eax
jmp 0x45c747
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 0xffffffffffffffff
push dword [eax + 8]
call fcn.00459ae0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x45bbb9
mov eax, dword [esp + 0xc]
lea ecx, [esi + 0xc]
or dword [esi + 8], 1
xor edx, edx
mov byte [esi + 2], 1
push 0x41e
movzx eax, word [eax + 2]
or eax, 5
push eax
push ecx
mov ecx, dword [edi]
push edi
call fcn.00446070
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45c721
mov ecx, dword [esi + 0xc]
lea edx, [eax + 1]
push eax
call fcn.004470e0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45c721
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esi + 0x2c], ecx
mov ecx, dword [esi + 0xc]
je 0x45c6fe
movzx eax, word [eax + 2]
lea edx, [esi + 0x34]
or eax, 2
push eax
call fcn.0044d8f0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45c6f8
push dword [esi + 0x28]
mov edx, dword [esi + 0x34]
push dword [esp + 0x34]
mov ecx, dword [esi + 0xc]
push 4
call fcn.004483d0
add esp, 0xc
mov dword [esp + 0x18], eax
mov byte [esi + 4], 0
jmp 0x45c721
push dword [esi + 0x28]
mov edx, 1
mov dword [esi + 0x34], 1
push 0
push 4
call fcn.004483d0
add esp, 0xc
mov dword [esp + 0x18], eax
mov byte [esi + 4], 1
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esi + 8], ecx
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x10]
push 1
push 0xffffffffffffffff
push dword [esi + 8]
call fcn.00459ae0
mov edx, eax
add esp, 0xc
test edx, edx
je 0x45bbb9
mov eax, dword [esp + 0xc]
push edx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x2c], ecx
mov ecx, edi
mov edx, dword [eax + 0xc]
call fcn.004615e0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
adc eax, 0
or edi, esi
mov esi, dword [esp + 0xc]
mov dword [edx + 0x14], eax
je 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x10]
push 3
push 0xffffffffffffffff
push dword [esi + 0xc]
call fcn.00459ae0
add esp, 0xc
test eax, eax
je 0x45bbb9
mov ecx, dword [esp + 0xc]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x20], ecx
mov byte [eax + 4], 1
mov dword [eax + 0x28], 0x6561c8
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [edi + 0x60]
mov edx, dword [edx + eax*4]
call fcn.00453af0
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x45c9be
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov al, byte [ecx + 8]
and al, 0xe
mov dword [esp + 0x50], ecx
cmp al, 2
jne 0x45c8ce
xor edx, edx
call fcn.00459c20
mov ecx, dword [esp + 0x50]
call fcn.00450820
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], edx
movzx ecx, word [ecx + 8]
test cl, 4
jne 0x45c92e
test cl, 8
je 0x45b51c
mov ecx, eax
call fcn.005027a0
mov eax, dword [esp + 0x50]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x45c91b
mov ecx, dword [esp + 0x44]
test cl, 1
lea eax, [ecx - 1]
cmove eax, ecx
mov ecx, eax
mov dword [esp + 0x44], ecx
jmp 0x45c92e
comisd xmm1, xmm0
jbe 0x45c92e
mov eax, dword [esp + 0x44]
test al, 1
jne 0x45c92e
inc eax
mov dword [esp + 0x44], eax
mov ecx, dword [esi + 0x28]
lea eax, [esp + 0x70]
push eax
push 0
push dword [esp + 0x50]
xor edx, edx
push dword [esp + 0x68]
call fcn.00448f50
mov dword [esp + 0x28], eax
add esp, 0x10
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x70]
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
cmp eax, 0x18
jl 0x45cacd
test ecx, ecx
js 0x45ca6f
jne 0x45c997
cmp eax, 0x19
je 0x45ca6f
mov dword [esp + 0x70], 0
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x24], 0
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x64]
lea esi, [ecx + 0x14]
cmove esi, ecx
add esi, 0x14
jmp 0x459f84
mov eax, dword [esi + 0x28]
mov ecx, dword [esp + 0xc]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x2b], al
mov eax, 0
setne al
test dl, 1
mov dword [esp + 0x24], eax
lea edx, [esp + 0x120]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x120], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x128], ax
sete al
mov byte [esp + 0x12e], 0
lea eax, [eax*2 - 1]
mov byte [esp + 0x12a], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x124], eax
lea eax, [esp + 0x70]
mov ecx, dword [esi + 0x28]
push eax
push 0
push 0
push 0
call fcn.00448f50
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
cmp byte [esp + 0x2b], al
je 0x45c968
cmp byte [esp + 0x12e], 0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
jne 0x45c968
mov ecx, dword [esp + 0x70]
jmp 0x45cae6
push 0
push dword [esi + 0x28]
mov dword [esp + 0x78], 0
call fcn.00449670
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x45c99f
cmp eax, 0x65
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x18], 0
mov eax, dword [esi + 8]
mov dword [esp + 0x70], 1
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
test ecx, ecx
jg 0x45caf3
jne 0x45cad8
cmp eax, 0x16
je 0x45caf3
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x70], ecx
test ecx, ecx
jne 0x45b51c
jmp 0x45c99f
push 0
push dword [esi + 0x28]
mov dword [esp + 0x78], 0
call fcn.004497d0
jmp 0x45ca81
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, edi
mov eax, dword [eax + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, 8
xor dword [ecx + 8], eax
mov eax, dword [esp + 0x14]
mov esi, edi
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x45a1e8
jmp 0x45cb5b
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [edx + 0x60]
mov esi, dword [esp + 0x20]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], edx
cmp dword [ecx + 0x10], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
jle 0x45cbab
mov eax, dword [edx + 0x2c]
xor edx, edx
mov dword [esp + 0x178], eax
mov ax, word [ecx + 0x10]
mov dword [esp + 0x17c], esi
lea esi, [esp + 0x178]
mov word [esp + 0x180], ax
mov dword [esp + 0x1c], edx
jmp 0x45cbff
mov eax, 0x4000
test word [esi + 8], ax
je 0x45cbc9
mov ecx, esi
call fcn.00450410
test eax, eax
jne 0x45bbb9
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x2c]
call fcn.00455720
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], eax
test eax, eax
je 0x45bbb9
mov ecx, dword [esp + 0x24]
mov edx, dword [esi + 0xc]
push eax
push dword [esi + 0x10]
mov ecx, dword [ecx + 0x2c]
call fcn.00455770
mov ecx, dword [esp + 0x14]
add esp, 8
mov esi, dword [esp + 0x30]
mov byte [esi + 0xa], 0
cmp byte [ecx], 0x1b
mov dword [esp + 0x3c], 0
jne 0x45cc37
movzx edx, word [esi + 8]
xor ecx, ecx
test edx, edx
je 0x45cc37
mov eax, dword [esi + 4]
add eax, 8
test byte [eax], 1
jne 0x45cc2f
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x45cc20
jmp 0x45cc37
mov dword [esp + 0x3c], 1
lea eax, [esp + 0x104]
mov edx, esi
mov esi, dword [esp + 0x24]
push eax
push 0
push 0
mov ecx, dword [esi + 0x28]
push 0
call fcn.00448f50
mov dword [esp + 0x28], eax
add esp, 0x10
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45cc6b
mov edx, eax
mov ecx, edi
call fcn.004310d0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x104]
xor ecx, ecx
test eax, eax
mov dword [esi + 0x20], eax
mov al, 1
mov byte [esi + 3], 0
sete cl
mov dword [esi + 0x1c], 0
sub al, cl
mov byte [esi + 2], al
mov esi, dword [esp + 0xc]
cmp byte [esi], 0x1d
jne 0x45ccbb
test ecx, ecx
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp dword [esp + 0x3c], 0
jne 0x45f860
test ecx, ecx
je 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 8]
test al, 4
jne case.0x459fa6.31
mov ecx, eax
mov dword [esp + 0x30], ecx
test al, 8
jne 0x45cd0f
test al, 2
je 0x45cd16
mov edx, 1
mov ecx, edi
call fcn.00459c20
jmp 0x45cd16
mov ecx, edi
call fcn.00450920
movzx eax, word [edi + 8]
shr eax, 2
not eax
and eax, 1
mov eax, dword [esp + 0x30]
mov word [edi + 8], ax
jne 0x45f860
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xcc], 0
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx + 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov esi, dword [edx + eax*8]
mov edi, dword [edx + eax*8 + 4]
lea eax, [esp + 0xcc]
push eax
push 0
push edi
push esi
xor edx, edx
call fcn.00448f50
mov ecx, dword [esp + 0x40]
add esp, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xcc]
mov dword [ecx + 0x40], esi
mov esi, dword [esp + 0xc]
mov dword [ecx + 0x44], edi
mov word [ecx + 2], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x20], eax
test eax, eax
je 0x45cdc1
cmp dword [esi + 8], 0
jne 0x45f860
mov ecx, 0x156b9
call fcn.004b83f0
mov dword [esp + 0x18], eax
jmp 0x45cdc5
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45a1e8
mov edi, dword [esp + 0x64]
jmp 0x45edfb
mov edi, dword [esp + 0xc]
mov edx, edi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00459e80
mov ecx, dword [esi + 0x60]
mov edx, dword [edi + 4]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 4], ecx
mov eax, edi
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x60]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
mov eax, dword [esp + 0x14]
mov esi, edi
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
mov edx, esi
mov dword [esp + 0xa4], 0
mov esi, dword [esp + 0x10]
xorps xmm0, xmm0
mov ecx, esi
movlpd qword [esp + 0x80], xmm0
call fcn.00459e80
mov ecx, dword [esi + 0x60]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov esi, dword [ecx + edx*4]
mov dword [esp + 0x44], esi
test byte [esi + 8], 2
jne 0x45ceef
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xa4]
call fcn.00448f00
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
cmp dword [esp + 0xa4], eax
je 0x45ce9e
mov eax, 1
xor esi, esi
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], esi
jmp 0x45cefd
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00448510
mov eax, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], esi
cmp esi, 0x7fffffff
jl 0x45ced9
jg 0x45cecf
cmp eax, 0xffffffff
jb 0x45ced9
mov ecx, dword [esp + 0x44]
or dword [ecx + 8], 2
jmp 0x45cf01
add eax, 1
mov dword [esp + 0x80], eax
adc esi, 0
mov dword [esp + 0x84], esi
jmp 0x45cefd
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x45cfae
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x45cf39
mov eax, dword [edx + 4]
test eax, eax
je 0x45cf2e
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x45cf25
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x45cf43
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x1c], ecx
call fcn.00450980
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, 0xffffffff
jne 0x45cf65
cmp eax, 0x7fffffff
je 0x45d03f
mov edi, dword [esp + 0x44]
test byte [edi + 8], 2
mov edi, dword [esp + 0x64]
jne 0x45d03f
add edx, 1
adc eax, 0
mov dword [esp + 0x30], eax
cmp esi, eax
jg 0x45cfa5
jl 0x45cf8f
mov eax, dword [esp + 0x40]
cmp eax, edx
jae 0x45cfa9
mov esi, dword [esp + 0x30]
mov eax, edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], esi
jmp 0x45cfa9
mov eax, dword [esp + 0x40]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov ecx, dword [esp + 0x44]
test byte [ecx + 8], 2
je 0x45d051
mov dword [esp + 0x1c], 0
lea eax, [esp + 0x80]
push eax
push 8
call fcn.004338d0
mov esi, dword [esp + 0x8c]
lea ecx, [esp + 0xac]
mov eax, dword [esp + 0x88]
and esi, 0x3fffffff
add eax, 1
push ecx
adc esi, 0
mov dword [esp + 0x4c], eax
push 0
push esi
mov dword [esp + 0x94], eax
xor edx, edx
push eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x9c], esi
mov ecx, dword [eax + 0x28]
call fcn.00448f50
add esp, 0x18
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
cmp dword [esp + 0xa4], eax
jne 0x45d049
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, 0x64
jl 0x45cfc4
mov eax, 0xd
jmp 0x45edfb
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov byte [ecx + 3], 0
mov dword [ecx + 0x1c], 0
mov ecx, dword [esp + 0x3c]
mov dword [ecx], eax
mov dword [ecx + 4], esi
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x20]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 1], 0xfa
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8]
mov dword [esp + 0x30], edi
mov dword [esp + 0x190], edi
mov edi, dword [esp + 0x20]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x194], eax
jne 0x45d0ef
cmp dword [edi + 0xec], 0
je 0x45d0ef
movsx ecx, byte [esi + 1]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x3c], eax
jmp 0x45d0ff
mov dword [esp + 0x3c], 0
mov dword [esp + 0x24], 0
test byte [ecx + 2], 1
je 0x45d10c
mov eax, dword [esp + 0x10]
inc dword [eax + 0x2c]
test byte [ecx + 2], 0x20
je 0x45d120
mov eax, dword [esp + 0x30]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x20]
movzx ecx, word [ecx + 2]
mov eax, dword [eax + edx*8 + 0x10]
mov dword [esp + 0x198], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edx*8 + 0xc]
mov dword [esp + 0x1a4], eax
test cl, 0x10
je 0x45d150
mov eax, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
jmp 0x45d158
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x20]
mov edi, 0x4000
test word [eax + edx*8 + 8], di
mov edi, dword [esp + 0x64]
je 0x45d178
mov eax, dword [eax + edx*8]
mov dword [esp + 0x1a8], eax
jmp 0x45d183
mov dword [esp + 0x1a8], 0
push dword [esp + 0x1c]
and ecx, 0xa
mov dword [esp + 0x18c], 0
push ecx
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x190]
call fcn.0044ce80
add esp, 8
mov dword [esp + 0x18], eax
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x45a1e4
push dword [esp + 0x194]
mov ecx, 0x17
push dword [esp + 0x194]
push dword [eax]
mov eax, dword [esp + 0x18]
push dword [esp + 0x30]
test byte [eax + 2], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [edi + 0xe8]
mov eax, dword [edi + 0xec]
call eax
add esp, 0x18
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], esi
cmp byte [eax + 1], 0xfa
jne 0x45d28e
cmp dword [edi + 0xec], 0
je 0x45d28e
movsx ecx, byte [esi + 1]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
test byte [eax + 2], 2
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x3c], ecx
je 0x45d29c
cmp byte [esi + 4], 0
je 0x45d29c
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00448510
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x20]
mov dword [ecx + 0x40], eax
mov eax, dword [esi + 0x24]
mov esi, ecx
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0xc]
jmp 0x45d29c
xor ecx, ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x3c], ecx
mov dl, byte [eax + 2]
mov ecx, dword [esi + 0x28]
call fcn.0044d250
mov dword [esp + 0x18], eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
test eax, eax
jne 0x45edfb
test byte [esp + 0x30], 1
je 0x45a1e4
mov edx, dword [esp + 0x10]
inc dword [edx + 0x2c]
mov ecx, dword [edi + 0xec]
test ecx, ecx
je 0x45a1e4
mov eax, dword [esp + 0x3c]
test byte [eax + 0x24], 0x20
jne 0x45a1e4
push dword [esi + 0x44]
push dword [esi + 0x40]
push dword [eax]
push dword [esp + 0x30]
push 9
push dword [edi + 0xe8]
call ecx
add esp, 0x18
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x2c]
add dword [edi + 0x68], eax
add esi, 0x14
mov dword [edi + 0x64], eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x64]
mov dword [edx + 0x2c], 0
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xd0], 0
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edx, [edx + eax*8]
lea eax, [esp + 0xd0]
push eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
call fcn.00463c00
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
cmp dword [esp + 0xd0], eax
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.00463b60
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x1c], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00459e80
mov esi, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], esi
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x60]
mov ecx, dword [ecx + edx*4]
mov eax, dword [ecx + 0x28]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.00448510
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x2c]
cmp eax, dword [edi + 0x6c]
ja 0x45ea45
push esi
push eax
xor edx, edx
call fcn.00451140
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
cmp dword [esi + 0xc], eax
jne 0x45a1e8
mov ecx, dword [esp + 0x1c]
mov eax, 0x1000
test word [ecx + 8], ax
je 0x45a1e8
call fcn.004503b0
test eax, eax
jne 0x45bbb9
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00459e80
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x45d4de
mov ecx, 1
mov word [eax + 8], cx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp byte [esi + 3], 0
je 0x45d4f6
mov ecx, dword [esi + 0x40]
mov dword [esp + 0xb8], ecx
mov eax, dword [esi + 0x44]
jmp 0x45d5ba
cmp byte [esi], 2
jne 0x45d559
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0xb8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, esi
mov dword [esp + 0x18], eax
call fcn.00456b40
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xb8]
mov dword [edx], ecx
mov eax, dword [esp + 0xbc]
mov dword [edx + 4], eax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x45d576
mov ecx, esi
call fcn.004551d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
jmp 0x45d57c
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp byte [esi + 2], 0
je 0x45d5a3
mov edx, dword [esp + 0x1c]
mov eax, 1
mov word [edx + 8], ax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.00448510
mov ecx, dword [esi + 0x20]
mov dword [esp + 0xb8], ecx
mov eax, dword [esi + 0x24]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
mov dword [edx], ecx
mov eax, dword [esp + 0xbc]
mov dword [edx + 4], eax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x1c], 0
jne 0x45a1e8
mov ecx, dword [ecx + 0x28]
call fcn.00444690
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp byte [esp + 0x2b], 0x82
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov dword [esp + 0xd4], 0
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax + 0x28]
jne 0x45d654
mov dword [eax + 0x20], 0xffffffff
cmp byte [ecx], 0
je 0x45a1e8
lea edx, [esp + 0xd4]
call fcn.00448f00
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov byte [eax + 2], cl
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
cmp dword [esi + 8], eax
jle 0x45a1e8
test ecx, ecx
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
lea edx, [esp + 0xd8]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x28]
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.00448ed0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
cmp dword [esp + 0xd8], eax
jne 0x45f860
mov ecx, dword [esp + 0x30]
call fcn.004494e0
test edx, edx
jl 0x45a1e8
jg 0x45d700
test eax, eax
jb 0x45a1e8
push edx
push eax
call fcn.00435810
cwde
add esp, 8
cmp eax, dword [esi + 0xc]
jge 0x45a1e8
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
mov dword [esp + 0xd8], 1
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov eax, dword [esp + 0x10]
inc dword [eax + 0xac]
jmp 0x45d74f
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
lea edx, [esp + 0xb0]
mov eax, dword [eax + 0x60]
mov dword [esp + 0xb0], 1
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x1c], eax
cmp byte [eax], 1
jne 0x45d784
mov ecx, eax
call fcn.00463a70
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jmp 0x45d7bf
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.00448ed0
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
cmp word [eax + 2], 0
je 0x45d7ac
cmp byte [esi], 0
jne 0x45d7ac
mov byte [esi], 2
mov dword [esi + 4], 1
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov byte [ecx + 3], 0
mov dword [ecx + 0x1c], 0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0xb0]
mov byte [ecx + 2], al
test eax, eax
jne 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, edi
call fcn.00463ad0
jmp 0x45d830
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
push dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push dword [ecx + 0x28]
call eax
mov esi, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x1c], 0
test ecx, ecx
jne 0x45d862
mov byte [eax + 2], cl
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa4]
jmp 0x45f342
cmp ecx, 0x65
jne 0x45edf7
xor ecx, ecx
mov byte [eax + 2], 1
mov dword [esp + 0x18], ecx
jmp 0x45e16d
mov edx, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov esi, dword [esp + 0x20]
mov eax, dword [edx + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], eax
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x45d8a5
inc dword [edx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x45d8c3
mov ecx, esi
call fcn.00450410
test eax, eax
jne 0x45edfb
mov ecx, dword [esp + 0xc]
cmp byte [ecx], 0x83
jne 0x45d8d8
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.00462b80
jmp 0x45d945
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x240], eax
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x238], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x244], edx
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x24c], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x250], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x45d925
mov ecx, dword [esi + 0x20]
jmp 0x45d927
xor ecx, ecx
push ecx
mov ecx, dword [esi + 0x28]
lea edx, [esp + 0x23c]
and eax, 0xa
push eax
call fcn.0044ce80
add esp, 8
mov dword [esi + 0x1c], 0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x158]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x158], eax
mov ax, word [ecx + 0xc]
mov word [esp + 0x160], ax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x162], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x108]
push eax
push 0
push 0
push 0
call fcn.00448f50
add esp, 0x10
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
cmp dword [esp + 0x108], eax
jne 0x45d9fc
mov ecx, dword [esp + 0x1c]
mov dl, 4
call fcn.0044d250
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x45da48
mov ecx, esi
call fcn.004551d0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
jmp 0x45da4e
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp byte [esi + 2], 0
jne 0x45db08
mov edx, dword [esi + 0x28]
lea eax, [esp + 0xe0]
xorps xmm0, xmm0
mov ecx, edi
push eax
movlpd qword [esp + 0xe4], xmm0
call fcn.00456850
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0xc]
cmp byte [eax], 0x86
jne 0x45dad6
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xe0]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0xe4]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x24], esi
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, eax
call fcn.00459e80
mov ecx, dword [esp + 0xe0]
mov dword [eax], ecx
mov ecx, dword [esp + 0xe4]
mov dword [eax + 4], ecx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00450bd0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
cmp byte [esp + 0x2b], 0x27
mov dword [esp + 0x9c], 0
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + 0x2c]
mov dword [esp + 0x168], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x170], ax
sbb al, al
mov byte [esp + 0x172], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x16c], eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x16c]
push eax
call fcn.00456990
mov esi, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x9c]
test byte [esi], 1
je 0x45dbb8
neg eax
jmp 0x45dbb9
inc eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x9c], eax
test ecx, ecx
jne 0x45edf7
test eax, eax
jg 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00459e80
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [edi + 0xbc]
inc ecx
cmp dword [edi + 0xb0], ecx
jg 0x45fa77
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0xdc]
push ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0xe0], 0
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 4]
mov dword [esp + 0x20], eax
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0044de20
mov ecx, dword [esp + 0xe0]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
test eax, eax
jne 0x45edfb
test ecx, ecx
je 0x45a1e4
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
push dword [eax + 4]
push ecx
mov ecx, edi
call fcn.00477770
mov al, byte [esp + 0x24]
add esp, 8
inc al
mov byte [esp + 0x6b], al
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esp + 0xc]
lea eax, [esp + 0xc4]
xor ecx, ecx
mov dword [esp + 0xc4], 0
cmp dword [esi + 0xc], ecx
mov edx, dword [edx + 4]
cmove eax, ecx
mov ecx, dword [edi + 0x10]
push eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0044dae0
mov esi, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x18], eax
cmp dword [esi + 0xc], 0
je 0x45dd19
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc4]
add dword [edx + 0x2c], eax
mov ecx, dword [esi + 0xc]
test ecx, ecx
jle 0x45dd15
mov edi, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
mov eax, edi
mov edi, dword [esp + 0x64]
adc dword [eax + ecx*8 + 4], edx
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x45dd5d
mov edx, dword [ecx + 0x28]
mov ecx, edi
call fcn.00461d10
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [ecx + 0x28]
push 0
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.0044dae0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00459e80
mov esi, eax
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xc8]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
add ecx, dword [edi + 0x10]
mov ecx, dword [ecx + 4]
call fcn.0044d8f0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0xc8]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
inc byte [edi + 0x5a]
push 0
push 0
push 0
push dword [esi + 0x10]
push edi
call fcn.00487190
dec byte [edi + 0x5a]
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], ecx
test edx, edx
jne 0x45de7a
mov eax, dword [edi + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0047bce0
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x30]
add eax, 0x7c
and dword [edi + 0x18], 0xfffffff7
mov ecx, edi
push 1
push eax
call fcn.0048b9f0
mov edx, dword [esp + 0x18]
add esp, 8
or dword [edi + 0x18], 1
mov dword [esp + 0x18], eax
and dword [edx + 0x98], 0xfffffffc
jmp 0x45df43
mov eax, dword [esp + 0x10]
add eax, 0x7c
mov dword [esp + 0x148], ecx
mov dword [esp + 0x144], eax
add ecx, ecx
mov eax, dword [edi + 0x10]
push edx
push str.sqlite_master
mov dword [esp + 0x148], edi
mov dword [esp + 0x158], 0
push dword [eax + ecx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push edi
call fcn.00433640
add esp, 0x14
mov dword [esp + 0x30], eax
test eax, eax
je 0x45fa8c
push 0
lea ecx, [esp + 0x144]
mov byte [edi + 0xa5], 1
push ecx
push fcn.0048b810
push eax
push edi
mov dword [esp + 0x160], 0
mov dword [esp + 0x168], 0
call fcn.00487190
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45df2d
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45df2d
cmp dword [esp + 0x154], eax
jne 0x45df2d
mov ecx, 0x15c40
call fcn.004b83f0
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x30]
mov ecx, edi
call fcn.004310d0
mov eax, dword [esp + 0x18]
mov byte [edi + 0xa5], 0
test eax, eax
jne 0x45fa94
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.00472870
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
push dword [esi + 0x10]
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.00474f30
mov eax, dword [esp + 0x18]
add esp, 4
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
push dword [esi + 0x10]
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.004746c0
mov eax, dword [esp + 0x18]
add esp, 4
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
push dword [esi + 0x10]
mov edx, dword [esi + 4]
mov ecx, edi
call fcn.00498f80
mov eax, dword [esp + 0x18]
add esp, 4
mov edi, dword [esp + 0x64]
add esi, 0x14
jmp 0x459f84
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov esi, dword [esp + 0x20]
add edx, 4
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
lea eax, [esp + 0x10c]
push eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*8]
mov ecx, dword [edi + 0x10]
inc eax
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 8]
movzx eax, word [eax + 2]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0044ea40
add esp, 0xc
mov dword [esp + 0x1c], eax
mov ecx, esi
call fcn.00450bd0
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x45e078
cmp dword [esp + 0x1c], 0
je 0x45bbb9
mov ecx, dword [esp + 0x30]
dec eax
mov edi, dword [esp + 0x20]
cdq
push fcn.00431020
push 1
sub dword [edi + ecx*8], eax
push 0xffffffffffffffff
sbb dword [edi + ecx*8 + 4], edx
mov ecx, esi
mov edx, dword [esp + 0x28]
call fcn.00450e30
add esp, 0xc
test byte [esi + 8], 2
movzx ecx, byte [esp + 0x60]
je 0x45a1e4
movzx eax, byte [esi + 0xa]
cmp eax, ecx
je 0x45a1e4
mov dl, cl
mov ecx, esi
call fcn.00433c50
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x10
lea esi, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
mov dword [esp + 0x30], eax
jne 0x45e0e5
mov ecx, esi
call fcn.00450c70
test eax, eax
jne 0x45bbb9
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
push dword [edi + eax*8 + 4]
mov ecx, dword [esi + 0x10]
push dword [edi + eax*8]
call fcn.0043b830
add esp, 8
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x10
lea eax, [ecx + eax*8]
mov dword [esp + 0x30], eax
je 0x45e1df
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x130]
call fcn.0043bbc0
test eax, eax
je 0x45e1db
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
push dword [esp + 0x134]
mov eax, dword [eax + 0xc]
push dword [esp + 0x134]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00450c30
add esp, 8
mov esi, dword [esp + 0xc]
cmp dword [edi + 0x108], 0
jne 0x45fd52
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x78]
jb case.0x459fa6.86
mov ecx, dword [edi + 0x140]
test ecx, ecx
je case.0x459fa6.86
mov eax, dword [edi + 0x148]
xor edx, edx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x14]
div dword [esp + 0x78]
mov eax, dword [esp + 0x78]
push dword [edi + 0x144]
sub eax, edx
add eax, dword [esp + 0x18]
mov dword [esp + 0x7c], eax
call ecx
add esp, 4
test eax, eax
jne 0x45fb3c
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x30]
mov ecx, eax
call fcn.00450bd0
jmp case.0x459fa6.11
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x10
lea esi, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x1c], eax
jne 0x45e22f
mov ecx, esi
call fcn.00450c70
test eax, eax
jne 0x45bbb9
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
test eax, eax
je 0x45e259
push dword [edi + ecx*8 + 4]
mov edx, eax
push dword [edi + ecx*8]
mov ecx, dword [esi + 0x10]
call fcn.0043bc20
add esp, 8
test eax, eax
jne 0x45b51c
mov eax, dword [esp + 0x1c]
test eax, eax
js 0x45a1e4
mov eax, dword [esp + 0x3c]
jmp 0x45e0e9
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x50], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
cmp word [eax + 2], 0
je 0x45e2b4
mov eax, dword [esp + 0x10]
mov ecx, dword [edx + 0x14]
mov eax, dword [eax + 0xc8]
test eax, eax
je 0x45e2b0
nop dword [eax]
cmp dword [eax + 0x1c], ecx
je 0x45a1e4
mov eax, dword [eax + 4]
test eax, eax
jne 0x45e2a0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xd0]
cmp eax, dword [edi + 0x94]
jge 0x45faad
test byte [ecx + 8], 0x10
jne 0x45e3d4
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x45e2fc
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, edi
mov dword [esp + 0x30], eax
cdq
push edx
push eax
call fcn.00431360
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x45bbb9
mov ecx, dword [esp + 0x24]
call fcn.00450770
mov edx, dword [esp + 0x24]
mov eax, 0x410
mov ecx, dword [esp + 0x1c]
mov word [edx + 8], ax
mov eax, dword [esp + 0x30]
mov dword [edx + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x24], 0x4531f0
mov dword [ecx], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 0x3c], esi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0x40], eax
mov eax, 0x66666667
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0x58]
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x1c]
mov dword [edx + 0x30], eax
mov eax, dword [ecx + 0x58]
mov dword [edx + 0x10], eax
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x38], eax
mov eax, dword [ecx + 0x60]
mov dword [edx + 0x14], eax
mov eax, dword [ecx + 0x1c]
mov dword [edx + 0x2c], eax
mov eax, dword [ecx + 0x68]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0x6c]
mov dword [edx + 0x34], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0x14]
mov dword [edx + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
lea eax, [edx + 0x50]
cmp eax, ecx
je 0x45e3d7
mov esi, 0x80
mov word [eax + 8], si
mov dword [eax + 0x20], edi
add eax, 0x28
cmp eax, ecx
jne 0x45e3c4
jmp 0x45e3d7
mov edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x10]
lea ecx, [edx + 0x50]
mov esi, dword [esp + 0x50]
mov dword [esp + 0x20], ecx
inc dword [eax + 0xd0]
mov eax, dword [eax + 0xc8]
mov dword [edx + 4], eax
mov eax, dword [edi + 0x28]
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x2c]
mov edi, dword [esp + 0x10]
mov dword [edx + 0x24], eax
mov eax, dword [edi + 0x2c]
mov dword [edx + 0x44], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x64]
mov dword [edx + 0x48], eax
mov eax, dword [edi + 0xdc]
mov dword [edx + 0x28], eax
mov dword [edi + 0xc8], edx
mov dword [edi + 0x58], ecx
mov dword [edi + 0xdc], 0
mov dword [edi + 0x2c], 0
mov eax, dword [edx + 0x3c]
mov dword [edi + 0x18], eax
movzx eax, word [edx + 0x40]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x18]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [edi + 0x60], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edx + 0x18], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.005889a0
mov edx, dword [esi]
add esp, 0xc
mov dword [edi + 0x68], edx
mov eax, dword [esi + 4]
mov dword [edi + 0x6c], eax
mov eax, dword [esp + 0x14]
lea esi, [edx - 0x14]
mov edi, dword [esp + 0x64]
add esi, 0x14
mov dword [esp + 0x58], edx
jmp 0x459f84
mov edi, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [esp + 0xc]
call fcn.00459e80
mov esi, eax
mov eax, dword [edi + 0xc8]
push 0x1000
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [esp + 0x10]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.00450d20
add esp, 4
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [edi + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0xc]
je 0x45e521
mov eax, dword [eax + 8]
cdq
add dword [edi + 0x1d8], eax
adc dword [edi + 0x1dc], edx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
mov esi, dword [esp + 0xc]
cdq
je 0x45e54b
add dword [edi + 0x1d0], eax
mov eax, dword [esp + 0x14]
adc dword [edi + 0x1d4], edx
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov edi, dword [esp + 0x10]
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x14]
adc dword [edi + 0x44], edx
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp dword [esi + 4], 0
je 0x45e59f
mov eax, dword [edi + 0x1d0]
or eax, dword [edi + 0x1d4]
jne 0x45a1e8
mov eax, dword [edi + 0x1d8]
or eax, dword [edi + 0x1dc]
je 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x40]
or eax, dword [ecx + 0x44]
jmp 0x45e577
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x45e5db
mov eax, dword [edx + 4]
test eax, eax
je 0x45e5c9
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x45e5c0
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x45e5ec
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov ecx, edi
call fcn.00450980
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00450980
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x45a1e4
jl 0x45e623
cmp dword [edi], eax
jae 0x45a1e4
mov dword [edi], eax
mov dword [edi + 4], ecx
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x20]
lea edi, [eax + eax*4]
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [edx + edi*8]
mov dword [esp + 0x30], eax
test eax, eax
jl 0x45a1e8
jg 0x45e663
test ecx, ecx
je 0x45a1e8
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x30]
sbb eax, edx
mov edx, dword [esp + 0x20]
mov dword [edx + edi*8 + 4], eax
mov dword [edx + edi*8], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov edi, dword [esp + 0xc]
mov edx, edi
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea esi, [eax + eax*4]
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
mov dword [esp + 0x30], eax
call fcn.00459e80
mov edx, dword [esp + 0x20]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], ecx
test ecx, ecx
jl 0x45e748
jg 0x45e6e6
test eax, eax
je 0x45e748
mov ecx, dword [esp + 0x30]
mov eax, dword [edx + ecx*8]
mov ecx, dword [edx + ecx*8 + 4]
test ecx, ecx
jl 0x45e6fb
jg 0x45e70c
test eax, eax
jne 0x45e70c
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push ecx
push eax
lea ecx, [esp + 0xf0]
call fcn.00435580
add esp, 8
test eax, eax
jne 0x45e748
mov eax, dword [esp + 0xe8]
mov dword [edi], eax
mov eax, dword [esp + 0xec]
mov dword [edi + 4], eax
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
lea edi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edi*8]
mov edx, dword [eax + edi*8 + 4]
mov eax, ecx
or eax, edx
je 0x45a1e8
test edx, edx
jl 0x45f860
jg 0x45e796
test ecx, ecx
je 0x45f860
mov eax, dword [esp + 0x20]
sub ecx, 1
sbb edx, 0
mov dword [eax + edi*8], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + edi*8 + 4], edx
mov eax, dword [esi + 8]
mov edi, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x20]
lea ecx, [eax + eax*4]
mov edx, dword [edi + ecx*8 + 4]
mov eax, dword [edi + ecx*8]
cmp edx, 0x80000000
jl 0x45e7f3
jg 0x45e7e6
test eax, eax
je 0x45e7f3
sub eax, 1
mov dword [edi + ecx*8], eax
sbb edx, 0
mov dword [edi + ecx*8 + 4], edx
mov eax, dword [edi + ecx*8]
or eax, dword [edi + ecx*8 + 4]
je 0x45f860
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
movzx eax, word [esi + 2]
mov ecx, edi
mov dword [esp + 0x1c], eax
push 0
lea eax, [eax*4 + 0x44]
push eax
call fcn.00431410
mov esi, eax
add esp, 8
mov dword [esp + 0x30], esi
test esi, esi
je 0x45bbb9
mov eax, dword [esp + 0x1c]
add eax, 7
mov dword [esi + 8], 0
lea ecx, [esi + eax*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 8], ax
mov dword [ecx + 0x20], edi
mov dword [ecx + 0x18], 0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x58]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x18], 0
sar edx, 3
mov eax, edx
mov dword [esi + 0x14], 0
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x1c]
mov byte [esi + 0x19], al
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov word [esi], 0xf09b
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x30], eax
cmp dword [esi + 8], eax
je 0x45e908
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi + 8], eax
js 0x45e908
mov edi, dword [esp + 0xc]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x20]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x45e8e6
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
inc dword [eax + 0xc]
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 4]
cmp dword [eax + 4], 0
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
je 0x45e927
mov eax, dword [ecx + 0x1c]
jmp 0x45e92a
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x45a1e4
jle 0x45e95e
mov ecx, dword [esi]
mov dl, 1
call fcn.00451260
push eax
push 0x61956c
push dword [esp + 0x18]
call fcn.00451930
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 0x18], 0
je 0x45e989
mov eax, dword [esp + 0xc]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x45e985
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.00450c30
add esp, 8
mov byte [esi + 0x18], 0
mov ecx, dword [esi]
call fcn.00450770
mov eax, dword [esi]
mov ecx, 1
mov word [eax + 8], cx
mov eax, dword [esp + 0x18]
mov dword [esi + 0x14], 0
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 4]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x45ea02
push dword [eax + 0x10]
lea eax, [ecx + ecx*4]
mov ecx, esi
lea edx, [edx + eax*8]
call fcn.00450640
mov edx, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [esp + 0x10]
add esp, 4
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jmp 0x45ea0e
mov edx, dword [eax + 0x10]
mov ecx, esi
call fcn.00450570
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x45fac8
test byte [esi + 8], 2
movzx ecx, byte [esp + 0x60]
je 0x45ea36
movzx eax, byte [esi + 0xa]
cmp eax, ecx
je 0x45ea36
mov dl, cl
mov ecx, esi
call fcn.00433c50
mov ecx, esi
call fcn.00450cc0
test eax, eax
je 0x45a1e4
push str.string_or_blob_too_big
push dword [esp + 0x14]
call fcn.00451930
add esp, 8
mov eax, 0x12
jmp 0x45edfb
mov edx, dword [esi + 4]
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xf4], 0
push eax
push dword [esi + 8]
mov ecx, edi
mov dword [esp + 0x104], 0xffffffff
mov dword [esp + 0x100], 0xffffffff
call fcn.004b6e10
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
je 0x45eac5
cmp eax, 5
jne 0x45edfb
mov dword [esp + 0x18], 0
mov dword [esp + 0xf0], 1
mov eax, dword [esp + 0xc]
xor esi, esi
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
nop dword [eax + eax]
mov eax, dword [esp + esi*4 + 0xf0]
mov ecx, edi
cdq
push edx
push eax
call fcn.00450c30
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x45eae0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00459e80
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
cmp esi, 0xffffffff
mov eax, dword [ecx + edx*8 + 4]
mov dword [esp + 0x30], eax
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x24], eax
movzx edx, byte [eax + 5]
mov dword [esp + 0x2c], edx
cmove esi, edx
call fcn.00440b50
test eax, eax
mov ecx, edx
mov eax, 0x6194fc
cmovne edx, esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x40], edx
cmp byte [esi + 0xf], 0
jne 0x45eb75
mov eax, dword [esi + 0xa8]
cmp edx, 5
jne 0x45eba8
mov ecx, eax
call fcn.004342f0
test eax, eax
je 0x45eb99
mov edx, 5
mov ecx, esi
mov dword [esp + 0x40], edx
call fcn.00440bd0
test eax, eax
jne 0x45eba4
mov edx, dword [esp + 0x2c]
mov esi, edx
jmp 0x45ec38
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
je 0x45ec30
cmp ecx, 5
je 0x45ebbe
cmp edx, 5
jne 0x45ec30
cmp byte [edi + 0x4f], 0
je 0x45fadc
cmp dword [edi + 0xb0], 1
jg 0x45fadc
cmp ecx, 5
jne 0x45ebfe
mov edx, edi
mov ecx, esi
call fcn.00440d40
mov esi, dword [esp + 0x40]
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x45ec34
mov ecx, dword [esp + 0x24]
mov edx, esi
call fcn.00440a40
jmp 0x45ec18
cmp ecx, 4
jne 0x45ec0d
lea edx, [ecx - 2]
mov ecx, esi
call fcn.00440a40
cmp dword [esp + 0x18], 0
mov esi, dword [esp + 0x40]
jne 0x45ec34
mov ecx, dword [esp + 0x30]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.0044f160
mov dword [esp + 0x18], eax
jmp 0x45ec34
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x18], 0
mov ecx, dword [esp + 0x24]
cmove edx, esi
call fcn.00440a40
mov esi, dword [esp + 0x1c]
mov ecx, 0xa02
mov word [esi + 8], cx
mov ecx, eax
call fcn.004886a0
mov ecx, eax
mov dword [esi + 0x10], eax
call fcn.004342f0
mov dword [esi + 0xc], eax
movzx eax, byte [esp + 0x60]
mov byte [esi + 0xa], 1
cmp eax, 1
je 0x45ec81
mov dl, al
mov ecx, esi
call fcn.00433c50
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 8]
test eax, eax
je 0x45ecb4
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
jmp 0x45ecb6
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edx, edi
push eax
push dword [esi + 4]
add ecx, 0x7c
call fcn.0049cdd0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esi + 4]
mov eax, dword [edi + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.00447a70
mov dword [esp + 0x18], eax
test eax, eax
je 0x45a1e8
cmp eax, 0x65
jne 0x45edfb
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x18], 0
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
cmp dword [esi + 4], 0
jne 0x45ed55
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.00456a50
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 8]
mov edx, dword [esp + 0x10]
inc eax
mov edi, dword [esp + 0x64]
xor eax, dword [edx + 0x98]
and eax, 3
xor dword [edx + 0x98], eax
add esi, 0x14
mov eax, dword [esp + 0x14]
jmp 0x459f84
mov al, byte [esi + 0xc]
mov byte [esp + 0xfc], al
test al, al
jne 0x45eda9
mov eax, dword [edi + 0x20]
and eax, 0x400
mov dword [esp + 0x30], eax
mov eax, 0
jne 0x45a1e8
test eax, eax
jne 0x45a1e8
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0xc]
push dword [esp + 0xfc]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0044f050
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x45a1e4
cmp al, 6
jne 0x45edfb
mov eax, dword [esp + 0xc]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [esp + 0x18]
call fcn.00451930
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp byte [edi + 0x51], 0
mov edx, 7
cmovne eax, edx
cmp dword [ecx + 0x7c], 0
mov dword [esp + 0x18], eax
jne 0x45ee3d
cmp eax, 0xc0a
je 0x45ee3d
mov ecx, eax
call fcn.004b61c0
push eax
push 0x61956c
push dword [esp + 0x18]
call fcn.00451930
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x28], eax
cmp eax, 0xc0a
je 0x45fd84
movzx eax, al
cmp eax, 0xe
je 0x45ee5c
cmp eax, 0xa
jne 0x45fd84
mov eax, dword [edi]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x45fd7f
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x45fd81
mov eax, dword [esi + 0x10]
mov ecx, edi
mov edx, eax
mov dword [esp + 0x30], eax
call fcn.0049e720
mov edx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
test edx, edx
je 0x45eea0
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x10]
call fcn.00456b40
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x20]
movq qword [esp + 0x220], xmm0
movaps xmmword [esp + 0x200], xmm0
lea eax, [eax + eax*4]
movaps xmmword [esp + 0x210], xmm0
lea edx, [ecx + eax*8]
mov dword [esp + 0x220], edi
lea ecx, [esp + 0x200]
call fcn.00450d70
mov dl, 1
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x200]
call fcn.00451260
test eax, eax
je 0x45ef30
mov ecx, dword [esp + 0x10]
add ecx, 0x7c
push ecx
push eax
mov eax, dword [esp + 0x14]
mov ecx, edi
mov edx, dword [eax + 4]
call fcn.0049e1c0
mov esi, dword [esp + 0x14]
add esp, 8
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x200]
call fcn.00450770
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
inc dword [edi + 0xbc]
mov ecx, edi
push dword [esi + 0x10]
mov edx, dword [esi + 4]
call fcn.0049e4f0
dec dword [edi + 0xbc]
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 0x10]
mov dword [esp + 0xa8], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x45fb0f
mov eax, dword [esi]
mov dword [esp + 0x30], eax
test eax, eax
je 0x45fb0f
mov eax, dword [eax + 0x18]
lea ecx, [esp + 0xa8]
push ecx
push esi
call eax
mov ecx, dword [esp + 0x18]
add esp, 8
mov edx, esi
mov dword [esp + 0x18], eax
call fcn.00456b40
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x45edff
mov eax, dword [esp + 0xa8]
push 2
push 0xffffffffffffffff
push 0
mov dword [eax], esi
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
call fcn.00459ae0
add esp, 0xc
test eax, eax
je 0x45faf7
mov ecx, dword [esp + 0xa8]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x20]
add esi, 0x28
lea edx, [eax + eax*4]
mov eax, dword [esp + 0xc]
lea esi, [esi + edx*8]
movd xmm0, esi
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], esi
mov esi, dword [esi]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x5c]
test esi, esi
jle 0x45f13b
cmp esi, 8
jb 0x45f11b
cmp dword [0x65463c], 2
jl 0x45f11b
movaps xmm2, xmmword [0x625470]
mov eax, esi
and eax, reloc.WS2_32.dll_getsockopt
jns 0x45f0bc
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edi, esi
sub edi, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x45f0d0
mov edi, dword [esp + 0x64]
cmp ecx, esi
jge 0x45f13b
mov edi, dword [esp + 0x30]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x64]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x45f130
mov eax, dword [esp + 0xc]
push edx
push esi
mov esi, dword [esp + 0x2c]
push dword [eax + 0x10]
mov eax, dword [esp + 0x28]
push dword [esp + 0x48]
push esi
mov eax, dword [eax + 0x20]
call eax
mov edx, dword [esp + 0x64]
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
call fcn.00456b40
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x1c]
push esi
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [esp + 0x48]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x45a1e4
jmp 0x45b51c
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x30], edx
cmp byte [edx + 2], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x45f1db
mov ecx, esi
call fcn.00450bd0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
test byte [ecx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edx + 0x28]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [eax]
movaps xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x1c], eax
movaps xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0x1b0], esi
je 0x45f226
mov ecx, esi
call fcn.00450bd0
mov ecx, dword [esp + 0xc]
mov eax, 0x4001
mov edx, dword [esp + 0x30]
mov dword [esi], 0
jmp 0x45f233
mov ax, word [esi + 8]
and ax, word [esp + 0x74]
or ax, 1
mov word [esi + 8], ax
lea eax, [esp + 0x1b0]
push dword [ecx + 8]
push eax
mov eax, dword [esp + 0x24]
push dword [edx + 0x28]
mov eax, dword [eax + 0x2c]
call eax
mov edx, dword [esp + 0x48]
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
call fcn.00456b40
cmp dword [esp + 0x1c4], 0
jle 0x45f292
mov dl, 1
mov ecx, esi
call fcn.00451260
push eax
push 0x61956c
push dword [esp + 0x18]
call fcn.00451930
mov eax, dword [esp + 0x1d0]
add esp, 0xc
mov dword [esp + 0x18], eax
test byte [esi + 8], 2
movzx ecx, byte [esp + 0x60]
je 0x45f2ae
movzx eax, byte [esi + 0xa]
cmp eax, ecx
je 0x45f2ae
mov dl, cl
mov ecx, esi
call fcn.00433c50
mov ecx, esi
call fcn.00450cc0
test eax, eax
jne 0x45ea45
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
cmp byte [eax + 2], 0
jne 0x45a1e8
mov eax, dword [eax + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [esp + 0x14]
add esp, 4
mov edx, esi
mov dword [esp + 0x18], eax
call fcn.00456b40
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x30]
push dword [eax + 0x28]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x45e169
mov esi, dword [esp + 0xc]
mov esi, dword [esi + 8]
mov ecx, dword [esp + 0x58]
dec esi
lea esi, [esi + esi*4]
lea esi, [ecx + esi*4]
mov dword [esp + 0xc], esi
jmp 0x45e16d
mov eax, dword [edi + 0x20]
or dword [edi + 0x20], 0x4000000
and eax, 0x4000000
mov edx, dword [esp + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x24]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 2
lea esi, [edx + eax*8]
je 0x45f3b7
cmp byte [esi + 0xa], 1
je 0x45f3b7
mov dl, 1
mov ecx, esi
call fcn.00433c50
test eax, eax
jne 0x45edfb
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
push dword [esi + 0x10]
push ecx
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [esp + 0x18], eax
cmp dword [esp + 0x30], 0
jne 0x45f3dd
mov eax, dword [edi + 0x24]
and dword [edi + 0x20], 0xfbffffff
mov dword [edi + 0x24], eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
call fcn.00456b40
mov eax, dword [esp + 0x10]
and dword [eax + 0x98], 0xfffffffc
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
cmp byte [edi + 0x51], 0
jne 0x45bbb9
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x30], eax
test eax, eax
je 0x45fb0f
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x45fb0f
cmp dword [eax + 0x34], 0
mov edx, dword [esi + 8]
je 0x45a1e8
mov al, byte [edi + 0x56]
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x45f480
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x45f475
mov eax, dword [esp + 0xc]
mov al, byte [eax + 2]
mov byte [edi + 0x56], al
lea eax, [esp + 0x138]
push eax
mov eax, dword [esp + 0x40]
push esi
mov esi, dword [esp + 0x38]
push edx
mov eax, dword [eax + 0x34]
push esi
call eax
add esp, 0x10
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x2b]
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
mov byte [edi + 0x56], al
call fcn.00456b40
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xc]
jne 0x45f4e6
cmp dword [eax + 4], 0
je 0x45f4e6
mov eax, dword [esp + 0x138]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x13c]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
cmp cl, 0x13
jne 0x45f531
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x45f531
mov esi, dword [esp + 0xc]
movzx eax, word [esi + 2]
cmp eax, 4
jne 0x45f51b
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov edi, dword [esp + 0x64]
add esi, 0x14
mov dword [esp + 0x18], ecx
jmp 0x459f84
cmp eax, 5
jne 0x45f525
mov eax, 2
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x92], al
jmp 0x45f538
inc dword [esi + 0x2c]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x45edfb
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00459e80
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 4]
mov ecx, dword [edi + 0x10]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
add esi, 0x14
mov edi, dword [esp + 0x64]
jmp 0x459f84
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.00459e80
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
xor edx, edx
test esi, esi
je 0x45f5c5
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, esi
cmovb edx, esi
call fcn.00446b90
mov ecx, dword [esp + 0x30]
jmp 0x45a1de
movzx eax, word [esi + 2]
mov ecx, edi
mov dword [esp + 0x30], eax
push 0
lea eax, [eax*4 + 0x1c]
push eax
call fcn.00431410
mov esi, eax
add esp, 8
mov dword [esp + 0x1c], esi
test esi, esi
je 0x45bbb9
mov eax, dword [esp + 0xc]
mov dword [esi], 0
mov ecx, dword [eax + 0x10]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [esp + 0x58]
mov eax, 0x66666667
imul ecx
mov dword [esi + 0x14], 0
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x30]
mov byte [esi + 0x19], al
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add byte [esi], 2
mov byte [esi + 1], 0xf0
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esp + 0x1c]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov dword [esp + 0x24], edx
cmp dword [esi], edx
je 0x45f6a9
movzx ecx, byte [esi + 0x19]
sub ecx, 1
mov dword [esi], edx
js 0x45f6a9
mov edi, dword [esp + 0xc]
lea edx, [esi + 0x1c]
mov esi, dword [esp + 0x20]
lea edx, [edx + ecx*4]
mov eax, dword [edi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edx + 4], eax
jns 0x45f687
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ax, word [edx + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 1
mov word [edx + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x45f730
jle 0x45f6ff
mov ecx, dword [esp + 0x24]
mov dl, 1
call fcn.00451260
push eax
push 0x61956c
push dword [esp + 0x18]
call fcn.00451930
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov ecx, edi
mov edx, dword [esp + 0x10]
push dword [eax + 4]
lea edx, [edx + 0xdc]
push dword [esi + 0x10]
call fcn.00454cf0
mov eax, dword [esp + 0x20]
add esp, 8
mov dword [esi + 0x14], 0
test eax, eax
jne 0x45edfb
mov esi, dword [esp + 0x24]
movzx eax, word [esi + 8]
test al, 0x12
je 0x45a1e4
test al, 2
jmp 0x45ea1e
mov cl, byte [edi + 0x58]
test cl, 0x41
je 0x45f802
mov edx, dword [esp + 0x10]
test byte [edx + 0x98], 0x10
jne 0x45f802
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x45f779
mov eax, dword [edx + 0xc0]
test eax, eax
je 0x45f802
test cl, 0x40
je 0x45f7ad
mov ecx, dword [esp + 0x10]
mov edx, eax
mov edi, dword [edi + 0xc8]
call fcn.00459620
mov esi, eax
mov eax, dword [esp + 0x64]
push esi
push dword [eax + 0xcc]
call edi
push esi
call fcn.00431020
mov esi, dword [esp + 0x18]
add esp, 0xc
jmp 0x45f802
cmp dword [edi + 0xb8], 1
push eax
jle 0x45f7ee
push str.____s
push edi
call fcn.00433640
mov ecx, dword [edi + 0xc8]
add esp, 0xc
mov esi, eax
push esi
push dword [esp + 0x14]
push dword [edi + 0xcc]
push 1
call ecx
add esp, 0x10
mov edx, esi
mov ecx, edi
call fcn.00431110
mov esi, dword [esp + 0xc]
jmp 0x45f802
mov eax, dword [edi + 0xc8]
push edx
push dword [edi + 0xcc]
push 1
call eax
add esp, 0x10
mov eax, dword [esi + 4]
cmp eax, dword [0x64a528]
jl 0x45f853
cmp byte [esi], 0xa8
je 0x45a1e8
mov edi, dword [esp + 0x10]
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x45f84a
mov eax, 0x14
nop dword [eax]
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0x11
jne 0x45f841
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x45f830
mov dword [esi + 4], 0
jmp 0x45f857
mov edi, dword [esp + 0x10]
inc dword [esi + 4]
inc dword [edi + 0xbc]
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x64]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea esi, [ecx + eax*4]
mov eax, dword [esp + 0x14]
add esi, 0x14
jmp 0x459f84
mov ecx, dword [edx + 4]
mov edi, dword [esp + 0x10]
mov dword [eax + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x92], al
mov eax, edi
mov edi, dword [esp + 0x64]
mov dword [eax + 0x24], esi
test ecx, ecx
je 0x45f928
movzx eax, word [edx + 2]
test ax, ax
je 0x45f8ef
push dword [eax*4 + 0x61a3c0]
push str._s_constraint_failed
push dword [esp + 0x18]
call fcn.00451930
mov esi, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esi + 0x10]
test eax, eax
je 0x45f907
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0x7c]
push str._z:__s
push edi
call fcn.00433640
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov dword [ecx + 0x7c], eax
jmp 0x45f907
push dword [edx + 0x10]
push 0x61956c
push dword [esp + 0x18]
call fcn.00451930
mov esi, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esp + 0x10]
push dword [eax + 0x7c]
push dword [eax + 0xc0]
push dword [esp + 0x38]
push str.abort_at__d_in___s_:__s
push dword [esi + 4]
call fcn.00433890
add esp, 0x14
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00454820
mov dword [esp + 0x18], eax
cmp eax, 5
jne 0x45fcf2
mov dword [esi + 0x28], eax
jmp 0x45fe20
mov ecx, 0x15047
call fcn.004b83f0
jmp 0x45edfb
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [esp + 0x14]
call fcn.00451930
add esp, 8
mov eax, 5
jmp 0x45edfb
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x45f95c
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x10]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, 5
mov byte [edi + 0x4f], 0
mov dword [esp + 0x18], eax
mov dword [esi + 0x28], eax
jmp 0x45fe20
push ecx
push str.no_such_savepoint:__s
push dword [esp + 0x18]
call fcn.00451930
add esp, 0xc
mov eax, 1
jmp 0x45edfb
mov eax, 8
jmp 0x45edfb
cmp al, 5
jne 0x45edfb
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x10]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x28], eax
jmp 0x45fe20
mov edx, dword [edx + 0x7c]
mov ecx, edi
call fcn.00431110
mov edx, str.database_schema_has_changed
mov ecx, edi
call fcn.004316a0
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x7c], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0xb4]
je 0x45fa49
mov ecx, edi
call fcn.004748b0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov eax, 0x11
jmp 0x45edff
mov eax, 0x204
jmp 0x45edfb
mov ecx, dword [esp + 0x10]
mov eax, 6
mov byte [ecx + 0x92], 2
jmp 0x45edff
mov dword [esp + 0x18], 7
mov ecx, edi
call fcn.00474a70
mov eax, dword [esp + 0x18]
cmp eax, 7
je 0x45bbb9
jmp 0x45edfb
push str.too_many_levels_of_trigger_recursion
push dword [esp + 0x14]
call fcn.00451930
add esp, 8
mov eax, 1
jmp 0x45edfb
mov dl, 1
mov ecx, esi
call fcn.00451260
push eax
push 0x61956c
jmp 0x45edeb
cmp edx, 5
mov eax, str.into
mov ecx, str.out_of
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
jmp 0x45f9b4
mov eax, dword [esp + 0x30]
push dword [esp + 0xa8]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
jmp 0x45bbb9
mov eax, 6
jmp 0x45edfb
mov eax, dword [edi + 0x140]
test eax, eax
je 0x45fb46
mov edx, dword [esp + 0x14]
cmp edx, dword [esp + 0x78]
jb 0x45fb46
push dword [edi + 0x144]
call eax
add esp, 4
test eax, eax
je 0x45fb46
mov eax, 9
jmp 0x45edfb
mov ecx, dword [esp + 0x10]
xor edx, edx
call fcn.004547c0
test eax, eax
jne 0x45edfb
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
cmp dword [eax + 0x1c8], 0
je 0x45fb80
cmp dword [edx + 0x30], 0
je 0x45fb80
mov ecx, dword [esp + 0x10]
mov edx, 1
call fcn.00454630
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x20]
mov ecx, dword [esp + 0xc]
add eax, 2
mov esi, dword [esp + 0x20]
or eax, 1
mov dword [edx + 0x20], eax
mov dword [esp + 0x74], 0
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [edx + 0x78], esi
cmp dword [ecx + 8], 0
jle 0x45fbea
nop
mov eax, 0x1000
test word [esi + 8], ax
je 0x45fbca
mov ecx, esi
call fcn.004503b0
test eax, eax
jne 0x45bbb9
mov ecx, esi
call fcn.00450470
mov edx, dword [esp + 0x74]
add esi, 0x28
mov eax, dword [esp + 0xc]
inc edx
mov dword [esp + 0x74], edx
cmp edx, dword [eax + 8]
jl 0x45fbb0
mov edx, dword [esp + 0x10]
cmp byte [edi + 0x51], 0
jne 0x45bbe6
test byte [edi + 0x58], 4
je 0x45fc10
mov eax, dword [edi + 0xc8]
push 0
push edx
push dword [edi + 0xcc]
push 4
call eax
add esp, 0x10
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x10]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x24], eax
mov eax, 0x64
mov dword [esp + 0x18], eax
jmp 0x45fe20
mov ecx, dword [esi + 4]
movzx eax, byte [edi + 0x4f]
mov esi, dword [esi + 8]
mov dword [esp + 0x74], ecx
cmp ecx, eax
je 0x45fd0c
test esi, esi
je 0x45fc6f
mov edx, 0x204
mov ecx, edi
call fcn.004b6080
mov esi, dword [esp + 0x10]
mov byte [edi + 0x4f], 1
jmp 0x45fca9
test ecx, ecx
je 0x45fc86
cmp dword [edi + 0xb4], 0
jle 0x45fc86
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x45f95c
mov esi, dword [esp + 0x10]
mov edx, 1
mov ecx, esi
call fcn.004547c0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x45fe20
mov eax, dword [esp + 0x74]
mov byte [edi + 0x4f], al
mov ecx, esi
call fcn.00454820
cmp eax, 5
jne 0x45fceb
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x24], eax
mov al, 1
sub al, byte [esp + 0x74]
mov byte [edi + 0x4f], al
mov eax, 5
mov dword [esp + 0x18], eax
mov dword [esi + 0x28], eax
jmp 0x45fe20
mov ecx, edi
call fcn.004b56c0
cmp dword [esi + 0x28], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x18], eax
jmp 0x45fe20
test ecx, ecx
jne 0x45fd2c
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push dword [esp + 0x14]
call fcn.00451930
add esp, 8
mov eax, 1
jmp 0x45edfb
mov ecx, str.cannot_commit___no_transaction_is_active
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, ecx
push eax
push dword [esp + 0x14]
call fcn.00451930
add esp, 8
mov eax, 1
jmp 0x45edfb
mov edx, dword [esp + 0x10]
xor eax, eax
cmp byte [edi + 0x51], al
sete al
lea eax, [eax*2 + 7]
mov ecx, eax
mov dword [esp + 0x18], eax
mov dword [edx + 0x28], eax
call fcn.004b61c0
push eax
push 0x61956c
push edx
jmp 0x45edef
xor eax, eax
mov dword [edi + 0x48], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
sub ecx, dword [esp + 0x58]
push dword [eax + 0x7c]
push dword [eax + 0xc0]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [esp + 0x28]
call fcn.00433890
mov esi, dword [esp + 0x24]
add esp, 0x14
mov ecx, esi
call fcn.00454820
cmp dword [esp + 0x18], 0xc0a
jne 0x45fdfa
cmp byte [edi + 0x51], 0
jne 0x45fdfa
cmp byte [edi + 0x52], 0
jne 0x45fdfa
cmp dword [edi + 0xb8], 0
mov byte [edi + 0x51], 1
jle 0x45fdf4
mov dword [edi + 0x108], 1
inc dword [edi + 0x110]
mov cl, byte [esp + 0x6b]
mov eax, 1
mov dword [esp + 0x18], eax
test cl, cl
je 0x45fe20
movzx edx, cl
mov ecx, edi
dec edx
call fcn.004748b0
mov eax, dword [esp + 0x18]
jmp 0x45fe20
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add dword [esi + 0xb4], ecx
cmp dword [esi + 0xa0], 0
je 0x45fe3e
mov ecx, esi
call fcn.00453070
mov eax, dword [esp + 0x18]
pop edi
pop esi
mov esp, ebp
pop ebp
ret