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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x310
mov eax, dword [0x52f8b0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov al, byte [ebx + 0x42]
mov byte [ebp - 0x110], al
mov eax, dword [esi + 8]
mov dword [ebp - 0xdc], eax
xor eax, eax
mov dword [ebp - 0x150], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x24]
push esi
mov dword [ebp - 0xd0], esi
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0x11c], ebx
mov byte [ebp - 0x11d], 0
mov dword [ebp - 0x168], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x13c], eax
call fcn.004a5c10
add esp, 4
cmp dword [esi + 0x50], 7
je 0x4a7ca9
mov dword [esi + 0x50], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0x14], 0
cmp dword [ebx + 0xf8], 0
mov dword [ebx + 0x184], 0
jne 0x4ab75f
cmp dword [ebx + 0x130], 0
je 0x4a5dee
mov ecx, dword [ebx + 0x138]
mov eax, dword [esi + 0x84]
xor edx, edx
div ecx
sub ecx, edx
mov dword [ebp - 0x154], ecx
mov eax, dword [esi + 0x4c]
mov ecx, 4
lea eax, [eax + eax*4]
mov dword [ebp - 0x1e4], 0x3e00
lea edi, [edi + eax*4]
mov dword [ebp - 0x1e0], 0x17
xor eax, eax
inc eax
mov dword [ebp - 0xd4], eax
mov al, byte [edi]
movzx edx, al
mov dword [ebp - 0xcc], edi
mov byte [ebp - 0xe5], al
mov dword [ebp - 0x100], edx
cmp edx, 0x9d
ja case.0x4a5e3c.110
jmp dword [edx*4 + 0x4ab90c]
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
mov eax, 0x66666667
mov word [ebx + esi*8 + 8], cx
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x10c]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
mov edi, dword [ebp - 0xcc]
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x10c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x4a6324
mov ebx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*4]
mov eax, 0x80
mov word [ebx + ecx*8 + 8], ax
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov eax, ebx
mov ebx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
dec eax
cdq
mov dword [ebx + ecx*8], eax
mov eax, 4
mov dword [ebx + ecx*8 + 4], edx
mov word [ebx + ecx*8 + 8], ax
cmp dword [edi + 8], 0
jne 0x4a5e85
mov ebx, dword [ebp - 0x11c]
mov ecx, eax
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov ebx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x4a5eba
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0x10c]
mov eax, dword [ebx + 4]
sub ebx, edi
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xdc]
mov word [eax + esi*8 + 8], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul ebx
mov ebx, dword [ebp - 0xdc]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ebx + esi*8], eax
lea eax, [ecx + ecx*4]
mov dword [ebx + esi*8 + 4], edx
lea edi, [edi + eax*4]
jmp 0x4a6324
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x4a632a
mov ecx, edi
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0xcc]
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp dword [ecx + 4], 0
jne 0x4ab1ea
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4ab1ea
mov eax, dword [edx + 4]
dec dword [esi + 0xc0]
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 0x64]
add dword [ebx + 0x58], eax
push edx
mov dword [ebx + 0x54], eax
call fcn.004ac1f0
mov ecx, eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0xcc]
add esp, 4
cmp dword [eax + 8], 4
jne 0x4a6043
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
mov ecx, dword [eax + ecx*4 + 8]
dec ecx
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
mov ebx, dword [ebp - 0x11c]
mov dword [ebp - 0xdc], eax
lea eax, [ecx + ecx*4]
mov dword [ebp - 0x10c], edx
lea edi, [edx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
mov ecx, eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x11c]
mov edx, eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov ecx, dword [eax + 0x10]
add edi, 0x14
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 0xd4]
mov ecx, 4
jmp 0x4a5e12
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x11c]
mov ecx, eax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov eax, dword [eax + 0x10]
add edi, 0x14
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0xd4]
movsd qword [ecx], xmm0
mov ecx, 4
jmp 0x4a5e12
push edi
push esi
call fcn.004751c0
mov esi, eax
mov eax, dword [ebp - 0xcc]
mov edi, dword [eax + 0x10]
push edi
mov byte [eax], 0x4c
call fcn.004a1040
mov ecx, dword [ebp - 0xcc]
add esp, 0xc
cmp byte [ebp - 0x110], 1
mov dword [ecx + 4], eax
je 0x4a61dc
push 0
push 1
push 0xffffffffffffffff
push edi
push esi
call fcn.004adb30
mov dword [ebp - 0xd8], eax
movzx eax, byte [ebp - 0x110]
push eax
push esi
call fcn.004a5170
add esp, 0x1c
test eax, eax
jne 0x4a7ca3
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 1], 0xff
jne 0x4a61c6
push dword [eax + 0x10]
push ebx
call fcn.00487810
mov eax, dword [ebp - 0xcc]
add esp, 8
mov ecx, dword [ebp - 0xcc]
mov byte [eax + 1], 0xff
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]
mov esi, dword [ebp - 0xd0]
cmp eax, dword [ebx + 0x5c]
jg 0x4ab520
mov ebx, dword [ebp - 0xcc]
push ebx
push esi
call fcn.004751c0
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, ebx
mov edi, ebx
mov eax, dword [eax + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x110]
mov byte [ecx + 0xa], al
mov eax, dword [edi + 0xc]
add esp, 8
test eax, eax
jle 0x4a632a
mov ebx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
movzx eax, byte [edi + 3]
cdq
cmp dword [ebx + esi*8], eax
jne 0x4a6324
cmp dword [ebx + esi*8 + 4], edx
mov esi, dword [ebp - 0xd0]
jne 0x4a632a
mov ebx, dword [ebp - 0x11c]
mov eax, 0xa10
mov word [ecx + 8], ax
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
mov ecx, dword [ebp - 0xcc]
mov esi, eax
mov edi, dword [ecx + 0xc]
sub edi, dword [ecx + 8]
mov eax, dword [ebp - 0xcc]
add esp, 8
cmp dword [eax + 4], 0
mov ecx, 1
mov eax, 0x101
cmovne ecx, eax
movzx ebx, cx
mov word [esi + 8], bx
test edi, edi
jle 0x4a631e
add esi, 0x28
push esi
call fcn.004ada30
dec edi
add esp, 4
mov word [esi + 8], bx
test edi, edi
jg 0x4a62b5
jmp 0x4a631e
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov edx, 0xff7f
mov ax, word [ebx + ecx*8 + 8]
and ax, dx
or ax, 1
jmp 0x4a5ec2
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
push 0
mov esi, eax
mov eax, dword [ebp - 0xcc]
push 0
push dword [eax + 4]
push dword [eax + 0x10]
push esi
call fcn.004adb30
add esp, 0x1c
mov al, byte [ebp - 0x110]
mov byte [esi + 0xa], al
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov ecx, 4
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 4]
mov esi, dword [esi + 0x3c]
lea ecx, [eax + eax*4]
add esi, 0xffffffd8
lea esi, [esi + ecx*8]
push esi
call fcn.004ade70
add esp, 4
test eax, eax
jne 0x4ab51a
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
call fcn.004751c0
push 0x800
push esi
push eax
call fcn.004add50
add esp, 0x14
jmp 0x4a631e
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push edi
push esi
call fcn.004ad830
mov eax, 0x1000
add esp, 8
test word [esi + 8], ax
je 0x4a63d8
push esi
call fcn.004ad7b0
add esp, 4
test eax, eax
jne 0x4a7ca3
add edi, 0x28
add esi, 0x28
dec dword [ebp - 0xe4]
jne 0x4a63b2
jmp 0x4a631e
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push 0x1000
push edi
push esi
call fcn.004add50
mov eax, 0x1000
add esp, 0xc
test word [esi + 8], ax
je 0x4a6443
push esi
call fcn.004ad7b0
add esp, 4
test eax, eax
jne 0x4a7ca3
mov ecx, dword [ebp - 0xe4]
mov eax, ecx
dec ecx
mov dword [ebp - 0xe4], ecx
test eax, eax
je 0x4a631e
add esi, 0x28
add edi, 0x28
jmp 0x4a6418
mov ebx, dword [ebp - 0xcc]
push 0x1000
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.004add50
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 0xc
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
push dword [ebx + eax*8 + 4]
push dword [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ebx + eax*8]
push eax
call fcn.004ad9f0
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 0xc
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe4], ecx
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
movzx edx, word [ecx + 8]
mov al, byte [edi + 8]
or al, dl
test al, 1
je 0x4a6552
push esi
call fcn.004ada30
add esp, 4
jmp 0x4a631e
test edx, 0x4000
je 0x4a656b
push ecx
call fcn.004ad3c0
add esp, 4
test eax, eax
jne 0x4a7ca3
mov eax, 0x4000
test word [edi + 8], ax
je 0x4a6587
push edi
call fcn.004ad3c0
add esp, 4
test eax, eax
jne 0x4a7ca3
mov eax, dword [ebp - 0xe4]
test byte [eax + 8], 0x12
jne 0x4a65ac
push 0
push dword [ebp - 0x110]
push eax
call fcn.004addb0
add esp, 0xc
test eax, eax
jne 0x4a7ca3
test byte [edi + 8], 0x12
jne 0x4a65cb
push 0
push dword [ebp - 0x110]
push edi
call fcn.004addb0
add esp, 0xc
test eax, eax
jne 0x4a7ca3
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0xc]
add eax, dword [edi + 0xc]
cdq
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 0x5c]
mov ecx, edx
cdq
cmp ecx, edx
jg 0x4ab51a
mov ecx, dword [ebp - 0xfc]
jl 0x4a65fc
cmp ecx, eax
ja 0x4ab51a
xor eax, eax
cmp esi, edi
sete al
push eax
lea eax, [ecx + 2]
push eax
push esi
call fcn.004ad560
add esp, 0xc
test eax, eax
jne 0x4a7ca3
mov ax, word [esi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 2
mov word [esi + 8], ax
cmp esi, edi
je 0x4a6642
push dword [edi + 0xc]
push dword [edi + 0x10]
push dword [esi + 0x10]
call fcn.0041f0d0
add esp, 0xc
mov eax, dword [ebp - 0xe4]
push dword [eax + 0xc]
push dword [eax + 0x10]
mov eax, dword [esi + 0x10]
add eax, dword [edi + 0xc]
push eax
call fcn.0041f0d0
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 0xfc]
add esp, 0xc
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 dword [esi + 0xc], ecx
jmp 0x4a6315
mov ebx, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0xe0], eax
call fcn.00474aa0
movzx eax, ax
mov dword [ebp - 0xfc], eax
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
push eax
mov dword [ebp - 0xf8], eax
call fcn.00474aa0
mov edx, dword [ebp - 0xe0]
movzx eax, ax
mov dword [ebp - 0xe4], eax
mov ecx, ebx
add esp, 8
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea ebx, [esi + eax*8]
mov esi, dword [ebp - 0xf8]
mov dword [ebp - 0xf4], ebx
mov al, byte [esi + 8]
or al, byte [edx + 8]
test al, 1
jne 0x4a69a5
mov al, byte [ebp - 0xe4]
and al, byte [ebp - 0xfc]
test al, 4
je 0x4a686b
mov eax, edx
mov byte [ebp - 0xe5], 1
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0xf8]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
movzx eax, byte [ecx]
add eax, 0xffffffd1
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x144], ebx
cmp eax, 3
ja case.default.0x4a6741
jmp dword [eax*4 + 0x4abb84]
push esi
push edx
lea eax, [ebp - 0x148]
push eax
call fcn.0047ef90
add esp, 0xc
test eax, eax
je 0x4a683b
mov ebx, dword [ebp - 0xf4]
mov esi, dword [ebp - 0xf8]
mov edx, dword [ebp - 0xe0]
push edx
call fcn.004ae560
fst qword [ebp - 0x128]
push esi
fstp qword [ebp - 0xf0]
call fcn.004ae560
fst qword [ebp - 0x108]
mov eax, dword [ebp - 0xcc]
add esp, 8
movzx eax, byte [eax]
add eax, 0xffffffd1
cmp eax, 3
ja case.default.0x4a67a9
jmp dword [eax*4 + 0x4abb94]
push esi
push edx
lea eax, [ebp - 0x148]
push eax
call fcn.004a1060
add esp, 0xc
test eax, eax
jne 0x4a6761
jmp 0x4a683b
push esi
push edx
lea eax, [ebp - 0x148]
push eax
call fcn.00495280
add esp, 0xc
test eax, eax
jne 0x4a6761
jmp 0x4a683b
mov eax, edx
or eax, esi
je 0x4a69a5
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x4a6801
test edi, edi
jne 0x4a6801
cmp ebx, 0x80000000
je 0x4a6761
push esi
push edx
push ebx
push edi
call fcn.0042b540
jmp 0x4a682f
mov eax, edx
or eax, esi
je 0x4a69a5
mov eax, edx
and eax, esi
cmp eax, 0xffffffff
jne 0x4a6826
mov edx, 1
xor esi, esi
push esi
push edx
push ebx
push edi
call fcn.0042b5f0
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x148]
mov dword [ecx], eax
mov eax, dword [ebp - 0x144]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
mov edx, 0x3e00
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp 0x4a631e
mov byte [ebp - 0xe5], 0
jmp 0x4a6773
movsd xmm1, qword [ebp - 0x108]
fstp st(0)
addsd xmm1, qword [ebp - 0xf0]
jmp 0x4a694a
movsd xmm1, qword [ebp - 0x108]
fstp st(0)
subsd xmm1, qword [ebp - 0xf0]
jmp 0x4a694a
movsd xmm1, qword [ebp - 0x108]
fstp st(0)
mulsd xmm1, qword [ebp - 0xf0]
jmp 0x4a694a
movsd xmm0, qword [ebp - 0xf0]
fstp st(0)
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4a69a5
movsd xmm1, qword [ebp - 0x108]
divsd xmm1, xmm0
jmp 0x4a694a
fld qword [ebp - 0x128]
call fcn.004c5a56
mov esi, eax
mov edi, edx
call fcn.004c5a56
mov ecx, eax
mov eax, esi
or eax, edi
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], edx
je 0x4a69a5
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x4a6921
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.0042b5f0
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], edx
fild qword [ebp - 0x240]
fstp qword [ebp - 0x108]
movsd xmm1, qword [ebp - 0x108]
sub esp, 8
movsd qword [esp], xmm1
call fcn.00493800
add esp, 8
test eax, eax
jne 0x4a69a5
mov ax, word [ebx + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 8
mov word [ebx + 8], ax
mov eax, dword [ebp - 0xe4]
or al, byte [ebp - 0xfc]
movsd qword [ebx], xmm1
test al, 8
jne 0x4a631e
cmp byte [ebp - 0xe5], 0
jne 0x4a631e
push ebx
call fcn.004ac9b0
add esp, 4
jmp 0x4a631e
mov ecx, dword [ebp - 0xf4]
push ecx
call fcn.004ada30
add esp, 4
jmp 0x4a631e
mov eax, dword [edi + 4]
test eax, eax
je case.0x4a5e3c.110
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
push 0
lea eax, [ecx + eax*8]
push 0
push eax
call fcn.004ad9f0
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 0xc
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
movzx eax, byte [edi + 3]
mov dword [ebp - 0xec], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
push ebx
call fcn.004878a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4a7ca3
mov ecx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xcc]
mov dword [esi], 0
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x10c]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0xec]
mov byte [esi + 0x1a], al
mov word [edi], 0xeb58
mov dword [edi + 0x10], esi
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov dword [ebp - 0xec], edi
cmp dword [esi], edi
je 0x4a6ac0
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi], edi
js 0x4a6ac0
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xdc]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea edx, [edx - 4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x4a6aa0
mov ebx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0xec]
mov ecx, dword [esi]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
or ax, 1
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x138]
mov byte [esi + 0x19], 0
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x13c]
mov dword [ebx + 0x24], ecx
mov ecx, dword [esi + 4]
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x138], eax
mov eax, dword [ebx + 0x24]
add esp, 0xc
cmp byte [esi + 0x19], 0
mov dword [ebp - 0x13c], eax
je 0x4a6b72
cmp dword [esi + 0x14], 0
je 0x4a6b43
push dword [esi]
call fcn.004509e0
push eax
push 0x5162f0
push dword [ebp - 0xd0]
call fcn.004a5c80
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
push dword [eax + 4]
mov eax, dword [ebp - 0xd0]
push dword [esi + 0x10]
add eax, 0xd4
push eax
push ebx
call fcn.004a5a90
mov eax, dword [ebp - 0xd8]
add esp, 0x10
test eax, eax
jne 0x4ab2d4
test byte [edi + 8], 0x12
je 0x4a631e
movzx eax, byte [ebp - 0x110]
push eax
push dword [esi]
call fcn.004a5170
push dword [esi]
call fcn.004ade70
mov esi, dword [ebp - 0xd0]
add esp, 0xc
test eax, eax
jne 0x4ab520
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebx + 8]
mov ebx, ecx
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edx, [ebx + eax*8]
mov al, byte [ecx + 8]
or al, byte [edi + 8]
mov dword [ebp - 0xec], edx
test al, 1
je 0x4a6c27
push edx
call fcn.004ada30
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 4
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
push ecx
call fcn.004ac940
mov ebx, eax
mov esi, edx
push edi
mov dword [ebp - 0x1cc], ebx
mov dword [ebp - 0x1c8], esi
call fcn.004ac940
mov edi, eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov cl, byte [eax]
cmp cl, 0x2b
jne 0x4a6c5e
and ebx, edi
and esi, edx
jmp 0x4a6cef
cmp cl, 0x2c
jne 0x4a6c6c
or ebx, edi
or esi, edx
jmp 0x4a6cef
mov eax, edi
or eax, edx
je 0x4a6cef
test edx, edx
jg 0x4a6ca4
jl 0x4a6c80
test edi, edi
jae 0x4a6c99
mov al, 0x5b
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x4a6ca4
jg 0x4a6c92
cmp edi, 0xffffffc0
jbe 0x4a6ca4
neg edi
adc edx, 0
neg edx
test edx, edx
jl 0x4a6cc6
jg 0x4a6ca4
cmp edi, 0x40
jb 0x4a6cc6
test esi, esi
jg 0x4a6cbd
jl 0x4a6cae
test ebx, ebx
jae 0x4a6cbd
cmp cl, 0x2d
je 0x4a6cbd
or eax, 0xffffffff
cdq
mov ebx, eax
mov esi, edx
jmp 0x4a6cef
xor eax, eax
cdq
mov ebx, eax
mov esi, edx
jmp 0x4a6cef
movq xmm1, qword [ebp - 0x1cc]
movd xmm0, edi
cmp cl, 0x2d
jne 0x4a6d13
psllq xmm1, xmm0
movq qword [ebp - 0x170], xmm1
mov ebx, dword [ebp - 0x170]
mov esi, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0xec]
mov edx, 0x3e00
mov ax, word [ecx + 8]
and ax, dx
or ax, 4
mov dword [ecx], ebx
mov dword [ecx + 4], esi
mov word [ecx + 8], ax
jmp 0x4a631e
psrlq xmm1, xmm0
movq qword [ebp - 0x170], xmm1
test esi, esi
jg 0x4a6ce3
jl 0x4a6d29
test ebx, ebx
jae 0x4a6ce3
mov ecx, 0x40
sub ecx, edi
or eax, 0xffffffff
or edx, 0xffffffff
call fcn.004c5ef0
mov ebx, dword [ebp - 0x170]
mov esi, dword [ebp - 0x16c]
or ebx, eax
or esi, edx
jmp 0x4a6cef
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
push esi
call fcn.004ad730
mov eax, ebx
add esp, 4
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
adc dword [esi + 4], edx
jmp 0x4a631e
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x4a6dcc
test al, 8
jne 0x4a6da7
test al, 2
je 0x4a6db0
push 1
push esi
call fcn.0045fb90
add esp, 8
jmp 0x4a6db0
push esi
call fcn.004ac9b0
add esp, 4
movzx eax, word [esi + 8]
test al, 4
jne 0x4a6dcc
cmp dword [edi + 8], 0
jne 0x4a5e85
mov eax, 0x14
jmp 0x4ab2d4
and eax, 0x3e00
or eax, 4
mov word [esi + 8], ax
jmp 0x4a6324
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 4
lea eax, [ecx + eax*8]
je 0x4a632a
push eax
call fcn.004ad950
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 4
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4a6e44
push esi
call fcn.004ad3c0
add esp, 4
mov dword [ebp - 0xd8], eax
jmp 0x4a6e4e
mov dword [ebp - 0xd8], 0
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0x110]
movzx eax, byte [eax + 8]
push eax
push esi
call fcn.004ad250
add esp, 0xc
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
test eax, eax
jne 0x4ab2da
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
movzx esi, word [ecx + eax*8 + 8]
lea edx, [ecx + eax*8]
mov eax, ebx
mov dword [ebp - 0xe0], edx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xf4], esi
lea eax, [eax + eax*4]
movzx ebx, word [ecx + eax*8 + 8]
lea edi, [ecx + eax*8]
mov ecx, ebx
or ecx, esi
mov dword [ebp - 0xec], edi
mov dword [ebp - 0xf8], ebx
test cl, 1
je 0x4a6f58
mov edi, dword [ebp - 0xcc]
mov al, byte [edi + 3]
test al, al
jns 0x4a6f20
test byte [ebp - 0xf4], 1
je 0x4a6f10
test bl, 1
je 0x4a6f10
test ebx, 0x100
jne 0x4a6f10
xor ecx, ecx
mov ebx, edx
jmp 0x4a7093
mov ebx, dword [ebp - 0xe0]
mov ecx, 1
jmp 0x4a7093
test al, 0x20
je 0x4a6f4b
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
mov ebx, 0x3e00
mov ax, word [edx + ecx*8 + 8]
and ax, bx
or ax, 1
mov word [edx + ecx*8 + 8], ax
jmp 0x4a6324
test al, 0x10
jne 0x4a5e85
jmp 0x4a6324
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 3]
and al, 0x47
cmp al, 0x43
jl 0x4a6fa7
test cl, 2
je 0x4a7033
mov al, byte [ebp - 0xf4]
and al, 0xe
cmp al, 2
jne 0x4a6f87
push 0
push edx
call fcn.0045fb90
add esp, 8
mov al, byte [ebp - 0xf8]
and al, 0xe
cmp al, 2
jne 0x4a7033
push 0
push edi
call fcn.0045fb90
add esp, 8
jmp 0x4a7033
cmp al, 0x42
jne 0x4a7033
mov al, byte [ebp - 0xf4]
test al, 2
jne 0x4a6ff4
test al, 0xc
je 0x4a6ff4
push 1
push dword [ebp - 0x110]
push edx
call fcn.004addb0
mov eax, dword [ebp - 0xe0]
mov ecx, 0x7e00
mov ax, word [eax + 8]
xor ax, word [ebp - 0xf4]
add esp, 0xc
and ax, cx
xor word [ebp - 0xf4], ax
mov esi, dword [ebp - 0xf4]
mov al, byte [ebp - 0xf8]
test al, 2
jne 0x4a7033
test al, 0xc
je 0x4a7033
push 1
push dword [ebp - 0x110]
push edi
call fcn.004addb0
mov ax, word [edi + 8]
xor ax, word [ebp - 0xf8]
mov ecx, 0x7e00
and ax, cx
add esp, 0xc
xor word [ebp - 0xf8], ax
mov ebx, dword [ebp - 0xf8]
test esi, 0x4000
je 0x4a7055
push dword [ebp - 0xe0]
call fcn.004ad3c0
add esp, 4
and esi, 0xbfff
mov dword [ebp - 0xf4], esi
test ebx, 0x4000
je 0x4a7072
push edi
call fcn.004ad3c0
add esp, 4
and ebx, 0xbfff
mov dword [ebp - 0xf8], ebx
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xe0]
push dword [eax + 0x10]
push ebx
push edi
call fcn.00495110
mov edi, dword [ebp - 0xcc]
add esp, 0xc
mov ecx, eax
movzx eax, byte [edi]
add eax, 0xffffffdc
cmp eax, 4
ja case.default.0x4a709e
jmp dword [eax*4 + 0x4abba4]
xor edx, edx
test ecx, ecx
sete dl
jmp 0x4a70d9
xor edx, edx
test ecx, ecx
setne dl
jmp 0x4a70d9
xor edx, edx
test ecx, ecx
sets dl
jmp 0x4a70d9
xor edx, edx
test ecx, ecx
setle dl
jmp 0x4a70d9
xor edx, edx
test ecx, ecx
setg dl
jmp 0x4a70d9
xor edx, edx
test ecx, ecx
setns dl
movzx eax, word [ebp - 0xf4]
mov ecx, dword [ebp - 0xec]
mov word [ebx + 8], ax
movzx eax, word [ebp - 0xf8]
mov word [ecx + 8], ax
test byte [edi + 3], 0x20
je 0x4a712c
mov eax, dword [edi + 8]
mov ebx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
mov eax, 0x3e00
mov cx, word [ebx + esi*8 + 8]
and cx, ax
mov eax, edx
cdq
or cx, 4
mov word [ebx + esi*8 + 8], cx
mov dword [ebx + esi*8], eax
mov dword [ebx + esi*8 + 4], edx
jmp 0x4a6324
test edx, edx
jne 0x4a5e85
jmp 0x4a6324
mov eax, dword [edi + 0x10]
mov ebx, dword [ebp - 0x11c]
add eax, 4
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
test byte [edi + 3], 1
mov ebx, dword [ebp - 0x150]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x10]
mov eax, 0
cmove ebx, eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x124], ecx
mov ecx, dword [edi + 8]
xor esi, esi
mov dword [ebp - 0x150], ebx
mov dword [ebp - 0x114], eax
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xec], ecx
test eax, eax
jle 0x4a7227
lea edi, [edx + 0x14]
test ebx, ebx
je 0x4a71ab
mov ecx, dword [ebx + esi*4]
jmp 0x4a71ad
mov ecx, esi
mov eax, dword [edx + 0x10]
mov edx, dword [ebp - 0xdc]
movzx ebx, byte [esi + eax]
mov eax, dword [ebp - 0xec]
push dword [edi]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
mov eax, dword [ebp - 0x124]
add eax, ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
push eax
call fcn.00495110
add esp, 0xc
mov dword [ebp - 0x168], eax
test eax, eax
jne 0x4a7215
mov edx, dword [ebp - 0xe4]
mov ebx, dword [ebp - 0x150]
inc esi
add edi, 4
cmp esi, dword [ebp - 0x114]
jl 0x4a71a2
mov edi, dword [ebp - 0xcc]
mov dword [ebp - 0x150], eax
jmp 0x4a6324
test ebx, ebx
je 0x4a7221
neg eax
mov dword [ebp - 0x168], eax
mov edi, dword [ebp - 0xcc]
xor eax, eax
mov dword [ebp - 0x150], eax
jmp 0x4a6324
mov eax, dword [ebp - 0x168]
mov ebx, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0x10c]
test eax, eax
jns 0x4a726f
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
jne 0x4a7296
mov eax, dword [ebx + 8]
mov ebx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [ebx + 0xc]
mov ebx, dword [ebp - 0x11c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xdc]
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea eax, [edi + eax*8]
je 0x4a72de
mov esi, 2
jmp 0x4a72f4
push eax
call fcn.004ac940
add esp, 4
or eax, edx
je 0x4a72f2
mov esi, 1
jmp 0x4a72f4
xor esi, esi
mov eax, dword [ebx + 8]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea eax, [edi + eax*8]
je 0x4a730b
mov eax, 2
jmp 0x4a7321
push eax
call fcn.004ac940
add esp, 4
or eax, edx
je 0x4a731f
mov eax, 1
jmp 0x4a7321
xor eax, eax
cmp byte [ebx], 0x1c
lea eax, [eax + esi*2]
jne 0x4a7333
movzx edx, byte [esi + eax + 0x511a00]
jmp 0x4a733b
movzx edx, byte [esi + eax + 0x511a0c]
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
mov esi, dword [ebp - 0xd0]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x4a738d
mov edx, dword [ebp - 0xdc]
mov ebx, 0x3e00
mov ax, word [edx + ecx*8 + 8]
and ax, bx
mov ebx, dword [ebp - 0x11c]
or ax, 1
mov word [edx + ecx*8 + 8], ax
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov ebx, dword [ebp - 0xdc]
mov eax, edx
cdq
mov dword [ebx + ecx*8], eax
mov ax, word [ebx + ecx*8 + 8]
mov dword [ebx + ecx*8 + 4], edx
mov edx, 0x3e00
and ax, dx
or ax, 4
jmp 0x4a5ec2
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.004ada30
add esp, 4
test byte [edi + 8], 1
jne 0x4a631e
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004ac940
add esp, 4
or eax, edx
jne 0x4a7410
mov eax, 1
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4a631e
xor eax, eax
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4a631e
mov ebx, dword [ebp - 0xcc]
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.004ada30
add esp, 4
test byte [edi + 8], 1
jne 0x4a631e
mov eax, 4
push edi
mov word [esi + 8], ax
call fcn.004ac940
not eax
not edx
add esp, 4
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4a631e
mov eax, dword [esi + 0xd0]
mov ecx, dword [edi + 4]
cmp byte [eax + ecx], 0
jne 0x4a5e85
mov ebx, dword [ebp - 0x11c]
mov byte [eax + ecx], 1
mov eax, dword [ebp - 0xd4]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
lea eax, [ecx + eax*8]
je 0x4a74bf
mov ecx, dword [edi + 0xc]
jmp 0x4a74fa
push eax
call fcn.004ae560
fstp qword [ebp - 0x108]
movsd xmm0, qword [ebp - 0x108]
add esp, 4
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4a74ea
mov ecx, 1
jmp 0x4a74ec
xor ecx, ecx
cmp byte [edi], 0x16
jne 0x4a74fa
xor eax, eax
test ecx, ecx
sete al
mov ecx, eax
test ecx, ecx
jne 0x4a5e85
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x4a5e85
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x4a5e85
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.004a59b0
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
mov esi, dword [edx + 0x54]
mov eax, dword [eax + 0xc]
add esp, 8
lea eax, [eax + eax*4]
mov dword [ebp - 0xf8], esi
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [edx + 0x14]
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0xfc], ecx
test eax, eax
jne 0x4ab2d4
mov ebx, dword [ebp - 0xd0]
mov eax, dword [edx + 0x40]
cmp eax, dword [ebx + 0x48]
mov ebx, dword [ebp - 0x11c]
je 0x4a784e
cmp byte [edx + 2], 0
je 0x4a7648
cmp byte [edx], 3
jne 0x4a763a
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xdc]
lea edi, [edx + 0x44]
mov esi, dword [ecx + eax*8 + 0xc]
mov dword [edx + 0x48], esi
mov dword [edi], esi
mov eax, dword [ecx + eax*8 + 0x10]
mov dword [edx + 0x50], eax
jmp 0x4a76df
push edi
call fcn.004ada30
add esp, 4
jmp 0x4a631e
cmp byte [edx + 4], 0
jne 0x4a7693
lea eax, [ebp - 0x278]
push eax
push ecx
call fcn.00483170
mov edx, dword [ebp - 0xfc]
add esp, 8
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
mov edx, dword [ebp - 0x118]
sub esi, ecx
cmp eax, esi
cmovb esi, eax
mov eax, dword [ebp - 0x278]
lea edi, [edx + 0x44]
mov dword [edx + 0x50], ecx
mov dword [edi], eax
jmp 0x4a76c8
lea edi, [edx + 0x44]
push edi
push ecx
call fcn.00482400
mov edx, dword [ebp - 0xfc]
add esp, 8
movsx eax, byte [edx + 0x44]
mov ecx, dword [edx + 0x18]
mov eax, dword [edx + eax*4 + 0x78]
mov esi, dword [eax + 0x3c]
movzx eax, word [edx + 0x20]
mov edx, dword [ebp - 0x118]
sub esi, ecx
cmp eax, esi
cmovb esi, eax
mov dword [edx + 0x50], ecx
mov eax, dword [edi]
cmp eax, esi
ja 0x4a76d3
mov dword [edx + 0x48], eax
jmp 0x4a76df
cmp eax, dword [ebx + 0x5c]
ja 0x4ab51a
mov dword [edx + 0x48], esi
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x48]
mov dword [edx + 0x40], eax
mov ecx, dword [edx + 0x50]
mov al, byte [ecx]
cmp al, 0x80
jae 0x4a7704
movzx ecx, al
mov dword [ebp - 0x194], ecx
mov eax, 1
jmp 0x4a7723
lea eax, [ebp - 0x194]
push eax
push ecx
call fcn.004916f0
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x118]
add esp, 8
movzx eax, al
movzx eax, al
mov dword [edx + 0x4c], eax
xor eax, eax
mov word [edx + 0x12], ax
mov eax, dword [ebp - 0xf8]
mov dword [eax], ecx
cmp esi, ecx
jae 0x4a775d
mov dword [edx + 0x50], 0
mov dword [edx + 0x48], 0
cmp ecx, 0x18003
ja 0x4ab2c7
cmp ecx, dword [edi]
ja 0x4ab2c7
mov esi, eax
mov eax, dword [edx + 0x4c]
cmp eax, dword [esi]
jae 0x4a7998
mov ecx, dword [edx + 0x50]
mov dword [ebp - 0xe4], ecx
test ecx, ecx
jne 0x4a77e3
xorps xmm0, xmm0
lea eax, [ebp - 0x2c8]
push eax
xor eax, eax
movq qword [ebp - 0x2c8], xmm0
movq qword [ebp - 0x2c0], xmm0
movq qword [ebp - 0x2b8], xmm0
movq qword [ebp - 0x2b0], xmm0
movq qword [ebp - 0x2a8], xmm0
cmp byte [edx + 4], al
sete al
push eax
push dword [esi]
push ecx
push dword [ebp - 0xfc]
call fcn.004ad4f0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0xe4], ecx
movzx eax, word [edx + 0x12]
mov dword [ebp - 0x114], eax
mov edi, dword [esi + eax*4]
mov esi, dword [edx + 0x4c]
add esi, ecx
mov ecx, dword [ebp - 0xf8]
mov dword [ebp - 0x100], 0
mov ecx, dword [ecx]
add ecx, dword [ebp - 0xe4]
add eax, 0x16
mov dword [ebp - 0x124], ecx
lea eax, [edx + eax*4]
mov dword [ebp - 0xec], eax
mov ebx, eax
movzx ecx, byte [esi]
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x15c], ecx
cmp ecx, 0x80
jae 0x4a7875
movzx eax, cl
inc esi
movzx eax, byte [eax + 0x5118f0]
cdq
add edi, eax
adc dword [ebp - 0x100], edx
jmp 0x4a78ad
movzx eax, word [edx + 0x12]
mov ecx, dword [ebp - 0x140]
cmp eax, ecx
jle 0x4a775f
mov ecx, dword [edx + ecx*4 + 0x58]
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x15c], ecx
jmp 0x4a79bc
lea eax, [ebp - 0x15c]
push eax
push esi
call fcn.004916f0
mov ecx, dword [ebp - 0x15c]
movzx eax, al
push ecx
add esi, eax
mov dword [ebp - 0xe0], ecx
call fcn.004aefd0
mov edx, dword [ebp - 0x100]
add esp, 0xc
add edi, eax
adc edx, 0
mov dword [ebp - 0x100], edx
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0xf8]
inc eax
mov dword [ebx], ecx
add ebx, 4
mov dword [edx + eax*4], edi
mov edx, dword [ebp - 0x100]
mov dword [ebp - 0x114], eax
cmp eax, dword [ebp - 0x140]
jg 0x4a78e2
cmp esi, dword [ebp - 0x124]
jb 0x4a7821
mov ebx, dword [ebp - 0x118]
mov word [ebx + 0x12], ax
mov eax, esi
sub eax, dword [ebp - 0xe4]
mov dword [ebx + 0x4c], eax
mov eax, dword [ebp - 0x124]
mov ebx, dword [ebp - 0x11c]
cmp esi, eax
mov esi, dword [ebp - 0x118]
jb 0x4a7924
ja 0x4ab33a
cmp edi, dword [esi + 0x44]
jne 0x4ab33a
test edx, edx
jne 0x4ab33a
test edx, edx
ja 0x4ab33a
jb 0x4a7937
cmp edi, dword [esi + 0x44]
ja 0x4ab33a
mov edx, dword [ebp - 0x118]
cmp dword [edx + 0x50], 0
jne 0x4a795e
lea eax, [ebp - 0x2c8]
push eax
call fcn.004ad9c0
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x118]
add esp, 4
mov esi, dword [ebp - 0xf8]
movzx eax, word [edx + 0x12]
cmp eax, dword [ebp - 0x140]
jg 0x4a79b6
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xf4]
cmp byte [eax + 1], 0xf8
jne 0x4a79a8
push 0x800
push dword [eax + 0x10]
push edx
call fcn.004add50
add esp, 0xc
jmp 0x4a631e
xor ecx, ecx
mov dword [ebp - 0xe0], ecx
mov dword [ebp - 0x15c], ecx
jmp 0x4a7964
push edx
call fcn.004ada30
add esp, 4
jmp 0x4a631e
mov edi, dword [ebp - 0xf4]
mov eax, 0x2460
test word [edi + 8], ax
je 0x4a79dc
push edi
call fcn.004ada30
mov ecx, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x118]
add esp, 4
mov al, byte [ebp - 0x110]
mov ebx, dword [ebp - 0x140]
mov byte [edi + 0xa], al
mov eax, dword [edx + 0x48]
cmp eax, dword [esi + ebx*4 + 4]
mov ebx, dword [ebp - 0x11c]
jb 0x4a7aa2
mov eax, dword [ebp - 0x140]
mov edi, dword [edx + 0x50]
add edi, dword [esi + eax*4]
cmp ecx, 0xc
jae 0x4a7a25
mov edx, dword [ebp - 0xf4]
push edx
push ecx
push edi
call fcn.004aec70
add esp, 0xc
jmp 0x4a631e
lea esi, [ecx - 0xc]
mov ecx, dword [ebp - 0xf4]
shr esi, 1
mov dword [ecx + 0xc], esi
lea eax, [esi + 2]
cmp dword [ecx + 0x18], eax
jge 0x4a7a60
push 0
push eax
mov edx, 1
push ecx
mov word [ecx + 8], dx
call fcn.004ad560
add esp, 0xc
test eax, eax
jne 0x4a7ca3
mov ecx, dword [ebp - 0xf4]
jmp 0x4a7a66
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push dword [ecx + 0x10]
call fcn.0041f0d0
mov edx, dword [ebp - 0xf4]
add esp, 0xc
mov eax, dword [edx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [edx + 0x10]
mov byte [esi + eax + 1], 0
mov eax, dword [ebp - 0xe0]
and eax, 1
mov ax, word [eax*2 + 0x511dac]
mov word [edx + 8], ax
jmp 0x4a631e
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 3]
test al, 0xc0
je 0x4a7abd
cmp ecx, 0xc
jb 0x4a7ab9
test cl, 1
je 0x4a7acc
test al, al
js 0x4a7acc
push ecx
call fcn.004aefd0
mov edx, eax
add esp, 4
test edx, edx
jne 0x4a7ae0
push edi
push ecx
push 0x534660
call fcn.004aec70
add esp, 0xc
jmp 0x4a631e
mov esi, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x140]
xor eax, eax
cmp byte [esi + 4], al
push edi
sete al
push eax
mov eax, dword [ebp - 0xf8]
push edx
push dword [eax + ecx*4]
push dword [ebp - 0xfc]
call fcn.004ad4f0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0xe0]
push edi
push eax
push dword [edi + 0x10]
call fcn.004aec70
mov eax, 0xefff
add esp, 0xc
and word [edi + 8], ax
jmp 0x4a631e
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [esi]
mov byte [ebp - 0x1ac], al
test al, al
je 0x4a631e
nop
push dword [ebp - 0x110]
lea esi, [esi + 1]
push dword [ebp - 0x1ac]
push edi
call fcn.0045fb20
mov al, byte [esi]
add esp, 0xc
add edi, 0x28
mov byte [ebp - 0x1ac], al
test al, al
jne 0x4a7b60
jmp 0x4a631e
mov esi, dword [edi + 0x10]
xor eax, eax
mov dword [ebp - 0xf4], eax
mov eax, dword [edi + 4]
mov edi, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
xorps xmm0, xmm0
lea ecx, [edi + eax*8]
mov eax, dword [ebp - 0xcc]
movlpd qword [ebp - 0x238], xmm0
mov eax, dword [eax + 8]
movlpd qword [ebp - 0x220], xmm0
lea eax, [eax + eax*4]
mov dword [ebp - 0x100], ecx
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xd0]
movzx edx, byte [eax + 0x5c]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x124], edx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0xec], eax
test esi, esi
je 0x4a7c2d
mov bl, byte [esi]
mov edi, ecx
push dword [ebp - 0x110]
push ebx
push edi
call fcn.0045fb20
mov bl, byte [esi + 1]
lea esi, [esi + 1]
add esp, 0xc
add edi, 0x28
test bl, bl
jne 0x4a7c04
mov ebx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x234]
mov esi, dword [ebp - 0x114]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0xf8], eax
lea eax, [ebp - 0x178]
push eax
push edx
push esi
call fcn.004aee80
mov edi, eax
mov eax, 0x4000
add esp, 0xc
mov dword [esi + 0x1c], edi
test word [esi + 8], ax
je 0x4a7d01
mov ecx, dword [ebp - 0xe0]
or ecx, dword [ebp - 0xfc]
je 0x4a7cea
push esi
call fcn.004ad3c0
add esp, 4
test eax, eax
je 0x4a7d01
mov esi, dword [ebp - 0xd0]
cmp byte [ebx + 0x45], 0
jne 0x4a7cd2
cmp byte [ebx + 0x46], 0
jne 0x4a7cd2
cmp dword [ebx + 0xa4], 0
mov byte [ebx + 0x45], 1
jle 0x4a7ccc
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
push str.out_of_memory
push esi
call fcn.004a5c80
add esp, 8
mov eax, 7
jmp 0x4ab2da
mov ecx, dword [esi]
mov eax, ecx
cdq
add dword [ebp - 0xf8], eax
adc dword [ebp - 0xe4], edx
sub dword [ebp - 0x178], ecx
mov eax, dword [ebp - 0xe0]
add eax, dword [ebp - 0x178]
adc dword [ebp - 0xfc], 0
mov dword [ebp - 0xe0], eax
cmp edi, 0x7f
ja 0x4a7d26
mov eax, 1
jmp 0x4a7d31
push 0
push edi
call fcn.004a4ca0
add esp, 8
mov ecx, dword [ebp - 0xf4]
add ecx, eax
mov dword [ebp - 0xf4], ecx
cmp esi, dword [ebp - 0x100]
je 0x4a7d55
mov edx, dword [ebp - 0x124]
sub esi, 0x28
jmp 0x4a7c63
cmp ecx, 0x7e
jle 0x4a7d89
mov eax, ecx
cdq
push edx
push eax
call fcn.004a4ca0
mov esi, eax
mov eax, dword [ebp - 0xf4]
add eax, esi
mov dword [ebp - 0xf4], eax
cdq
push edx
push eax
call fcn.004a4ca0
mov ecx, dword [ebp - 0xf4]
add esp, 0x10
cmp esi, eax
jge 0x4a7d90
inc ecx
mov dword [ebp - 0xf4], ecx
mov edi, dword [ebp - 0xe0]
mov eax, ecx
cdq
mov ecx, eax
add edi, ecx
mov dword [ebp - 0x104], ecx
mov ecx, dword [ebp - 0xfc]
mov eax, edx
adc ecx, eax
mov esi, edi
add esi, dword [ebp - 0xf8]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx + 0x5c]
adc ecx, dword [ebp - 0xe4]
cdq
mov dword [ebp - 0xe0], edi
cmp ecx, edx
jg 0x4ab51a
jl 0x4a7ddd
cmp esi, eax
ja 0x4ab51a
push edi
mov edi, dword [ebp - 0xec]
push edi
call fcn.004ad310
add esp, 8
test eax, eax
jne 0x4a7ca3
mov ecx, dword [ebp - 0xf4]
mov edi, dword [edi + 0x10]
cmp ecx, 0x80
jae 0x4a7e0f
mov byte [edi], cl
mov eax, 1
jmp 0x4a7e24
push dword [ebp - 0x124]
push dword [ebp - 0x104]
push edi
call fcn.0049b240
add esp, 0xc
mov ebx, dword [ebp - 0x100]
movzx esi, al
lea ecx, [ecx]
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x4a7e45
mov byte [esi + edi], bl
mov eax, 1
jmp 0x4a7e54
push 0
lea eax, [esi + edi]
push ebx
push eax
call fcn.0049b240
add esp, 0xc
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0xf4]
push ebx
mov ebx, dword [ebp - 0x100]
add eax, edi
push ebx
push eax
call fcn.004aee10
add dword [ebp - 0xf4], eax
add ebx, 0x28
add esp, 0xc
mov dword [ebp - 0x100], ebx
cmp ebx, dword [ebp - 0x114]
jbe 0x4a7e30
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xf8]
mov dword [edx + 0xc], eax
mov eax, 0x10
mov word [edx + 8], ax
mov eax, ecx
or eax, dword [ebp - 0xe4]
je 0x4a7ebc
mov eax, 0x4010
mov dword [edx], ecx
mov word [edx + 8], ax
mov byte [edx + 0xa], 1
jmp 0x4a631e
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
xorps xmm0, xmm0
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x1c0]
push ecx
push dword [eax + 0x14]
movlpd qword [ebp - 0x1c0], xmm0
call fcn.00482130
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
mov ecx, dword [ebp - 0x1c0]
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x11c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x1bc]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0xd4]
add esp, 8
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 4]
mov esi, dword [edi + 0x10]
mov dword [ebp - 0x100], eax
test eax, eax
jne 0x4a8018
cmp dword [ebx + 0xa0], eax
jg 0x4ab359
push esi
call fcn.004a1040
mov ecx, dword [ebx + 0x1b4]
add ecx, dword [ebx + 0x1b0]
mov dword [ebp - 0xec], eax
push ecx
push 0
push ebx
call fcn.004b07a0
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0xec]
add eax, 0x21
push 0
push eax
push ebx
call fcn.004878a0
add esp, 0xc
mov dword [ebp - 0x104], eax
test eax, eax
je 0x4a6324
mov ecx, dword [ebp - 0xec]
inc ecx
push ecx
lea edx, [eax + 0x20]
push esi
push edx
mov dword [eax], edx
call fcn.0041f0d0
add esp, 0xc
cmp byte [ebx + 0x43], 0
je 0x4a7fd4
mov byte [ebx + 0x43], 0
mov byte [ebx + 0x4b], 1
jmp 0x4a7fda
inc dword [ebx + 0x1b0]
mov eax, dword [ebx + 0x1a8]
mov ecx, dword [ebp - 0x104]
mov dword [ecx + 0x18], eax
mov eax, dword [ebx + 0x1b8]
mov dword [ebx + 0x1a8], ecx
mov dword [ecx + 8], eax
mov eax, dword [ebx + 0x1bc]
mov dword [ecx + 0xc], eax
mov eax, dword [ebx + 0x1c0]
mov dword [ecx + 0x10], eax
mov eax, dword [ebx + 0x1c4]
mov dword [ecx + 0x14], eax
jmp 0x4a6324
mov edi, dword [ebx + 0x1a8]
xor ecx, ecx
mov dword [ebp - 0xe0], ecx
test edi, edi
je 0x4a804c
lea ebx, [ebx]
push esi
push dword [edi]
call fcn.004a0fc0
add esp, 8
test eax, eax
je 0x4a8057
mov edi, dword [edi + 0x18]
inc dword [ebp - 0xe0]
test edi, edi
jne 0x4a8030
push esi
push str.no_such_savepoint:__s
jmp 0x4ab4e4
cmp dword [ebx + 0xa0], 0
mov edx, dword [ebp - 0x100]
jle 0x4a806f
cmp edx, 1
je 0x4ab377
cmp dword [edi + 0x18], 0
jne 0x4a80d0
cmp byte [ebx + 0x4b], 0
je 0x4a80d0
mov dword [ebp - 0xe4], 1
cmp edx, 1
jne 0x4a80da
mov esi, dword [ebp - 0xd0]
push edx
push esi
call fcn.004a5310
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab8c5
push esi
mov byte [ebx + 0x43], 1
call fcn.004ac400
add esp, 4
cmp eax, 5
je 0x4ab37e
mov byte [ebx + 0x4b], 0
mov eax, dword [esi + 0x50]
mov dword [ebp - 0xd8], eax
jmp 0x4a81e4
mov dword [ebp - 0xe4], 0
mov eax, dword [ebx + 0x1b0]
sub eax, dword [ebp - 0xe0]
dec eax
mov dword [ebp - 0xe0], eax
cmp edx, 2
jne 0x4a816c
mov ecx, dword [ebx + 0x18]
shr ecx, 1
and ecx, 1
cmp dword [ebx + 0x14], 0
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0xec], 0
jle 0x4a8176
xor eax, eax
test ecx, ecx
sete al
xor esi, esi
mov dword [ebp - 0x104], eax
nop
push eax
mov eax, dword [ebx + 0x10]
push 0x204
push dword [esi + eax + 4]
call fcn.004847b0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0xec]
inc eax
add esi, 0x10
cmp eax, dword [ebx + 0x14]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x104]
jl 0x4a8120
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0x100]
jmp 0x4a8176
mov dword [ebp - 0x124], 0
cmp dword [ebx + 0x14], 0
mov dword [ebp - 0xec], 0
jle 0x4a81c8
xor esi, esi
push eax
mov eax, dword [ebx + 0x10]
push edx
push dword [esi + eax + 4]
call fcn.00484150
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0xec]
mov edx, dword [ebp - 0x100]
inc eax
add esi, 0x10
cmp eax, dword [ebx + 0x14]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xe0]
jl 0x4a8188
cmp dword [ebp - 0x124], 0
je 0x4a81e4
push ebx
call fcn.004895f0
push ebx
call fcn.0049bb60
add esp, 8
or dword [ebx + 0x18], 2
cmp dword [ebx + 0x1a8], edi
je 0x4a8251
lea esp, [esp]
cmp dword [ebx + 0x1c8], 0
mov ecx, dword [ebx + 0x1a8]
mov eax, dword [ecx + 0x18]
mov dword [ebx + 0x1a8], eax
je 0x4a8214
push ecx
push ebx
call fcn.004726a0
add esp, 8
jmp 0x4a8243
cmp ecx, dword [ebx + 0x120]
jb 0x4a823a
cmp ecx, dword [ebx + 0x124]
jae 0x4a823a
mov eax, dword [ebx + 0x11c]
mov dword [ecx], eax
dec dword [ebx + 0x108]
mov dword [ebx + 0x11c], ecx
jmp 0x4a8243
push ecx
call fcn.004584c0
add esp, 4
dec dword [ebx + 0x1b0]
cmp dword [ebx + 0x1a8], edi
jne 0x4a81f0
mov esi, dword [ebp - 0x100]
cmp esi, 1
jne 0x4a8284
mov eax, dword [edi + 0x18]
push edi
push ebx
mov dword [ebx + 0x1a8], eax
call fcn.00487810
add esp, 8
cmp dword [ebp - 0xe4], 0
jne 0x4a6e68
dec dword [ebx + 0x1b0]
jmp 0x4a82ba
cmp dword [ebp - 0xe4], 0
mov eax, dword [edi + 8]
mov dword [ebx + 0x1b8], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x1bc], eax
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x1c0], eax
mov eax, dword [edi + 0x14]
mov dword [ebx + 0x1c4], eax
je 0x4a82ba
cmp esi, 2
jne 0x4a6e68
mov ecx, dword [ebp - 0xe0]
push ecx
push esi
push ebx
call fcn.004b07a0
add esp, 0xc
mov dword [ebp - 0xd8], eax
jmp 0x4a6e6e
mov edx, dword [edi + 8]
test edx, edx
je 0x4a82ea
test dword [ebx + 0x18], 0x4000000
jne 0x4ab3b5
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x4a83ff
push edx
push esi
call fcn.004818e0
add esp, 8
mov dword [ebp - 0xd8], eax
cmp al, 5
je 0x4ab3bf
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0xcc]
cmp dword [eax + 8], 0
je 0x4a83ca
mov edi, dword [ebp - 0xd0]
test byte [edi + 0x60], 0x10
je 0x4a83ca
cmp byte [ebx + 0x43], 0
je 0x4a8351
cmp dword [ebx + 0x9c], 1
jle 0x4a83ca
cmp dword [edi + 0x70], 0
jne 0x4a836c
mov eax, dword [ebx + 0x1b0]
inc dword [ebx + 0x1b4]
add eax, dword [ebx + 0x1b4]
mov dword [edi + 0x70], eax
mov eax, dword [edi + 0x70]
dec eax
push eax
push 0
push ebx
call fcn.004b07a0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0xd8], ecx
test ecx, ecx
jne 0x4a839a
push dword [edi + 0x70]
push esi
call fcn.00481880
add esp, 8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebx + 0x1b8]
mov dword [edi + 0xa0], eax
mov eax, dword [ebx + 0x1bc]
mov dword [edi + 0xa4], eax
mov eax, dword [ebx + 0x1c0]
mov dword [edi + 0xa8], eax
mov eax, dword [ebx + 0x1c4]
mov dword [edi + 0xac], eax
lea eax, [ebp - 0x1a8]
push eax
push 1
push esi
call fcn.00482880
mov eax, dword [ebp - 0xcc]
mov esi, dword [ebp - 0x1a8]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
mov edi, dword [ebp - 0xcc]
add esp, 0xc
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax + 4]
jmp 0x4a8409
xor esi, esi
mov dword [ebp - 0x1a8], esi
xor eax, eax
cmp byte [edi + 3], 0
je 0x4a8421
cmp esi, dword [edi + 0xc]
jne 0x4ab3f3
cmp eax, dword [edi + 0x10]
jne 0x4ab3f3
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x1e8]
push eax
push dword [edi + 0xc]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00482880
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
mov ecx, eax
mov eax, dword [ebp - 0x1e8]
add esp, 0x14
jmp 0x4a608e
mov esi, dword [edi + 4]
push dword [edi + 0xc]
shl esi, 4
add esi, dword [ebx + 0x10]
push dword [edi + 8]
push dword [esi + 4]
call fcn.004849c0
mov dword [ebp - 0xd8], eax
mov eax, dword [edi + 8]
add esp, 0xc
cmp eax, 1
jne 0x4a84b9
mov ecx, dword [esi + 0xc]
mov eax, dword [edi + 0xc]
mov dword [ecx], eax
or dword [ebx + 0x18], 2
jmp 0x4a84c7
cmp eax, 2
jne 0x4a84c7
mov ecx, dword [esi + 0xc]
mov al, byte [edi + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edi + 4], 1
jne 0x4a84e2
push ebx
call fcn.004895f0
mov esi, dword [ebp - 0xd0]
add esp, 4
and dword [esi + 0x58], 0xfffffffe
jmp 0x4a84e8
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x4a8526
mov eax, dword [esi + 0xc]
cmp eax, dword [edi + 8]
je 0x4a866f
mov esi, dword [ebp - 0xd0]
mov al, byte [ebp - 0xe5]
test byte [esi + 0x58], 1
jne 0x4ab445
mov esi, dword [edi + 0xc]
mov edx, dword [edi + 8]
mov ecx, esi
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov dword [ebp - 0x114], 0
mov dword [ebp - 0xec], 0
mov ebx, dword [ecx + 4]
mov dword [ebp - 0xfc], ebx
mov ebx, dword [ebp - 0x11c]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0x104], esi
cmp al, 0x67
jne 0x4a85a9
movzx edx, byte [edi + 3]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xd0]
mov al, byte [eax + 0x4c]
and edx, 8
or edx, 4
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0xe4]
cmp al, byte [ecx + 0x5c]
jae 0x4a85b3
mov byte [ecx + 0x5c], al
jmp 0x4a85b3
mov dword [ebp - 0x124], 0
test byte [edi + 3], 0x10
je 0x4a85dc
mov ecx, dword [ebp - 0xdc]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
push esi
call fcn.004ad730
mov eax, dword [esi]
mov esi, dword [ebp - 0x104]
add esp, 4
mov dword [ebp - 0xe4], eax
mov al, byte [edi + 1]
cmp al, 0xfa
jne 0x4a85f8
mov eax, dword [edi + 0x10]
mov dword [ebp - 0xec], eax
movzx ecx, word [eax + 8]
movzx eax, word [eax + 6]
add ecx, eax
jmp 0x4a8607
cmp al, 0xf2
jne 0x4a8601
mov ecx, dword [edi + 0x10]
jmp 0x4a8607
mov ecx, dword [ebp - 0x114]
push 0
push esi
push ecx
push dword [edi + 4]
push dword [ebp - 0xd0]
call fcn.0045e9d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4a7ca3
push dword [esi + 0x14]
mov edi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xe4]
or dword [esi + 8], 4
push edi
push dword [ebp - 0x124]
mov byte [esi + 2], 1
push eax
push dword [ebp - 0xfc]
mov dword [esi + 0xc], eax
call fcn.00482340
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
add esp, 0x14
mov dword [esi + 0x1c], edi
cmp byte [eax + 1], 0xfa
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0xcc]
mov cl, byte [eax + 3]
mov eax, dword [esi + 0x14]
and cl, 3
mov byte [eax + 0x43], cl
jmp 0x4a6e68
push 0
push 0xffffffffffffffff
push dword [edi + 8]
push dword [edi + 4]
push esi
call fcn.0045e9d0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4a7ca3
or dword [esi + 8], 1
mov eax, dword [ebp - 0xcc]
mov byte [esi + 2], 1
movzx eax, byte [eax + 3]
push 0x41e
or eax, 5
push eax
lea edi, [esi + 0x18]
push edi
push ebx
push 0
push dword [ebx]
call fcn.00483880
add esp, 0x18
test eax, eax
jne 0x4ab2d4
push 1
push dword [edi]
call fcn.004818e0
add esp, 8
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x104], ecx
test ecx, ecx
je 0x4a874c
movzx eax, byte [eax + 3]
or eax, 2
push eax
lea eax, [ebp - 0x1dc]
push eax
push dword [edi]
call fcn.004822f0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4a8746
push dword [esi + 0x14]
mov eax, dword [ebp - 0x104]
push eax
push 4
push dword [ebp - 0x1dc]
mov dword [esi + 0x1c], eax
push dword [edi]
call fcn.00482340
add esp, 0x14
mov dword [ebp - 0xd8], eax
mov byte [esi + 4], 0
jmp 0x4a8769
push dword [esi + 0x14]
push 0
push 4
push 1
push dword [edi]
call fcn.00482340
add esp, 0x14
mov dword [ebp - 0xd8], eax
mov byte [esi + 4], 1
test eax, eax
jne 0x4ab2d4
mov edi, dword [ebp - 0xcc]
cmp byte [edi + 3], 8
setne al
shl eax, 2
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
jmp 0x4a6324
push 1
push 0xffffffffffffffff
push dword [edi + 8]
push dword [edi + 4]
push esi
call fcn.0045e9d0
mov edx, eax
add esp, 0x14
test edx, edx
je 0x4a7ca9
mov eax, dword [ebp - 0xcc]
push edx
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x1c], ecx
push dword [eax + 0xc]
push ebx
call fcn.004af2a0
add esp, 0xc
mov dword [ebp - 0xd8], eax
jmp 0x4a6e74
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x28]
mov esi, dword [edx + 0x2c]
mov ecx, edi
add ecx, 1
mov eax, esi
adc eax, 0
or edi, esi
mov edi, dword [ebp - 0xcc]
mov dword [edx + 0x28], ecx
mov dword [edx + 0x2c], eax
je 0x4a5e85
jmp 0x4a6324
push 3
push 0xffffffffffffffff
push dword [edi + 0xc]
push dword [edi + 4]
push esi
call fcn.0045e9d0
add esp, 0x14
test eax, eax
je 0x4a7ca9
mov ecx, dword [ebp - 0xcc]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x14], ecx
mov byte [eax + 4], 1
jmp 0x4a6094
mov ebx, dword [ebp - 0xcc]
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
push dword [eax + ecx*4]
push esi
call fcn.004ac280
mov eax, ebx
add esp, 8
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], 0
jmp 0x4a6094
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
xor edi, edi
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x104], edi
cmp byte [esi + 4], 0
mov byte [esi + 2], 0
je 0x4a8968
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov al, byte [edi + 8]
and al, 0xe
cmp al, 2
jne 0x4a88aa
push 0
push edi
call fcn.0045fb90
add esp, 8
push edi
call fcn.004ac940
movzx ecx, word [edi + 8]
add esp, 4
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b4], edx
test cl, 4
jne 0x4a891f
test cl, 8
je 0x4a5e7f
fild qword [ebp - 0x1b8]
fstp qword [ebp - 0xf0]
fld qword [ebp - 0xf0]
movsd xmm1, qword [edi]
fstp qword [ebp - 0xf0]
movsd xmm0, qword [ebp - 0xf0]
comisd xmm0, xmm1
jbe 0x4a8908
mov eax, dword [ebp - 0x100]
test al, 1
jne 0x4a891f
dec eax
jmp 0x4a8919
comisd xmm1, xmm0
jbe 0x4a891f
mov eax, dword [ebp - 0x100]
test al, 1
je 0x4a891f
inc eax
mov dword [ebp - 0x100], eax
mov edi, dword [ebp - 0x1b8]
lea eax, [ebp - 0x12c]
push eax
push 0
push edx
push edi
push 0
push dword [esi + 0x14]
call fcn.00483330
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x1b4]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0xd8]
add esp, 0x18
mov dword [esi + 0x30], edi
test eax, eax
jne 0x4ab2d4
mov edi, dword [ebp - 0x104]
jmp 0x4a8a13
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0xcc]
test byte [eax + 0x43], 2
mov eax, 1
cmovne edi, eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x1f8], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x1f0], ax
lea eax, [edx - 1]
test al, 1
sete al
lea eax, [eax*2 - 1]
mov byte [ebp - 0x1ee], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, 0x4000
mov dword [ebp - 0x1f4], eax
test word [eax + 8], cx
je 0x4a89cf
push eax
call fcn.004ad3c0
add esp, 4
lea eax, [ebp - 0x12c]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x1f8]
push eax
mov byte [ebp - 0x1ea], 0
push dword [esi + 0x14]
call fcn.00483330
add esp, 0x18
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
test edi, edi
je 0x4a8a13
cmp byte [ebp - 0x1ea], al
je 0x4a8aaa
mov eax, dword [ebp - 0x100]
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov ecx, dword [ebp - 0x12c]
cmp eax, 0x19
jl 0x4a8a61
test ecx, ecx
js 0x4a8a46
jne 0x4a8a3a
cmp eax, 0x1a
je 0x4a8a46
mov dword [ebp - 0x12c], 0
jmp 0x4a8ab7
lea eax, [ebp - 0x12c]
push eax
mov dword [ebp - 0x12c], 0
push dword [esi + 0x14]
call fcn.00483800
jmp 0x4a8a99
test ecx, ecx
jg 0x4a8a80
jne 0x4a8a6c
cmp eax, 0x17
je 0x4a8a80
mov eax, dword [esi + 0x14]
xor ecx, ecx
cmp byte [eax + 0x42], 1
setne cl
mov dword [ebp - 0x12c], ecx
jmp 0x4a8aaa
lea eax, [ebp - 0x12c]
push eax
mov dword [ebp - 0x12c], 0
push dword [esi + 0x14]
call fcn.00483f80
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
cmp dword [ebp - 0x12c], 0
jne 0x4a5e7f
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd4]
test edi, edi
mov edi, dword [ebp - 0xcc]
mov ecx, 4
je 0x4a6335
mov ebx, dword [ebp - 0x11c]
add edi, 0x14
add edi, 0x14
jmp 0x4a5e12
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov dword [ebp - 0x180], 0
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xec], edx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x104], ecx
cmp dword [eax + 0x10], 0
jle 0x4a8b99
mov eax, dword [edx + 0x1c]
mov dword [ebp - 0x230], eax
mov eax, dword [ebp - 0xcc]
xor edi, edi
mov dx, word [eax + 0x10]
xor eax, eax
mov word [ebp - 0x228], dx
mov dword [ebp - 0x22c], ecx
cmp ax, dx
jae 0x4a8b91
xor esi, esi
mov ebx, 0x4000
jmp 0x4a8b60
test word [esi + ecx + 8], bx
lea eax, [esi + ecx]
je 0x4a8b80
push eax
call fcn.004ad3c0
mov dx, word [ebp - 0x228]
mov ecx, dword [ebp - 0x22c]
add esp, 4
movzx eax, dx
inc edi
add esi, 0x28
cmp edi, eax
jl 0x4a8b60
mov ebx, dword [ebp - 0x11c]
lea edi, [ebp - 0x230]
jmp 0x4a8bf3
lea eax, [ebp - 0x180]
push eax
push 0xb7
lea eax, [ebp - 0xbc]
push eax
push dword [edx + 0x1c]
call fcn.004a50f0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x4a7ca9
mov esi, dword [ebp - 0x104]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4a8bdb
push esi
call fcn.004ad3c0
add esp, 4
mov eax, dword [ebp - 0xec]
push edi
push dword [esi + 0x10]
push dword [esi + 0xc]
push dword [eax + 0x1c]
call fcn.004aeaa0
add esp, 0x10
mov eax, dword [ebp - 0xcc]
mov byte [edi + 0xa], 0
xor esi, esi
cmp byte [eax], 0x1d
jne 0x4a8c28
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
jle 0x4a8c28
mov eax, dword [edi + 4]
add eax, 8
test byte [eax], 1
jne 0x4a8c23
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4a8c14
jmp 0x4a8c28
mov esi, 1
lea eax, [ebp - 0x1d0]
push eax
push 0
push 0
push 0
push edi
mov edi, dword [ebp - 0xec]
push dword [edi + 0x14]
call fcn.00483330
push dword [ebp - 0x180]
mov dword [ebp - 0xd8], eax
push ebx
call fcn.00487810
mov eax, dword [ebp - 0xd8]
add esp, 0x20
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0x1d0]
xor ecx, ecx
test eax, eax
mov dword [edi + 0x20], eax
sete cl
mov al, 1
sub al, cl
mov byte [edi + 2], al
mov byte [edi + 3], 0
mov dword [edi + 0x40], 0
mov edi, dword [ebp - 0xcc]
cmp byte [edi], 0x1f
jne 0x4a8ca1
test ecx, ecx
jne 0x4a5e85
jmp 0x4a6324
test esi, esi
jne 0x4a5e85
test ecx, ecx
je 0x4a5e85
jmp 0x4a6324
mov ebx, dword [ebp - 0xcc]
mov eax, dword [esi + 0x38]
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x184], 0
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
mov esi, dword [ecx + eax*8]
mov edi, dword [ecx + eax*8 + 4]
lea eax, [ebp - 0x184]
push eax
push 0
push edi
push esi
push 0
push dword [ebx + 0x14]
call fcn.00483330
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x184]
add esp, 0x18
mov dword [ebx + 0x34], edi
mov edi, dword [ebp - 0xcc]
mov dword [ebx + 0x30], esi
mov word [ebx + 2], 0
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x20], eax
test eax, eax
je 0x4a8d4d
cmp dword [edi + 8], 0
jne 0x4a5e85
push 0x13b6c
call fcn.004862f0
mov ebx, eax
add esp, 4
mov dword [ebp - 0xd8], ebx
jmp 0x4a8d53
mov ebx, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
test ebx, ebx
je 0x4a632a
mov ebx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0xd8]
jmp 0x4ab2da
mov ebx, dword [ebp - 0xcc]
push ebx
push esi
call fcn.004751c0
mov ecx, dword [esi + 0x38]
mov edx, dword [ebx + 4]
add esp, 8
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x28]
mov dword [eax], ecx
mov ecx, dword [edx + 0x2c]
mov dword [eax + 4], ecx
mov eax, ebx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
jmp 0x4a6094
xorps xmm0, xmm0
push edi
push esi
movlpd qword [ebp - 0x134], xmm0
mov dword [ebp - 0x160], 0
call fcn.004751c0
mov ecx, dword [esi + 0x38]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [eax + 4]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0xe0], eax
test byte [eax + 8], 2
jne 0x4a8e88
lea ecx, [ebp - 0x160]
push ecx
push dword [eax + 0x14]
call fcn.004831a0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
cmp dword [ebp - 0x160], eax
je 0x4a8e2f
mov edi, 1
xor esi, esi
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x130], esi
jmp 0x4a8e94
lea eax, [ebp - 0x134]
push eax
mov eax, dword [ebp - 0xe0]
push dword [eax + 0x14]
call fcn.00483170
mov esi, dword [ebp - 0x130]
mov edi, dword [ebp - 0x134]
add esp, 8
mov dword [ebp - 0xd8], eax
cmp esi, 0x7fffffff
jl 0x4a8e74
jg 0x4a8e68
cmp edi, 0xffffffff
jb 0x4a8e74
mov eax, dword [ebp - 0xe0]
or dword [eax + 8], 2
jmp 0x4a8e94
add edi, 1
adc esi, 0
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x130], esi
jmp 0x4a8e94
mov esi, dword [ebp - 0x130]
mov edi, dword [ebp - 0x134]
mov ecx, dword [ebp - 0xcc]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x4a8f46
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax + 0xb8]
test edx, edx
je 0x4a8ed4
mov eax, dword [edx + 4]
test eax, eax
je 0x4a8ec9
lea esp, [esp]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4a8ec0
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
jmp 0x4a8ee0
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0xdc]
lea eax, [ecx + eax*8]
push eax
mov dword [ebp - 0xec], eax
call fcn.004ad730
mov eax, dword [ebp - 0xec]
add esp, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x4a8f0b
cmp edx, 0x7fffffff
je 0x4a8fd8
mov ebx, dword [ebp - 0xe0]
test byte [ebx + 8], 2
mov ebx, dword [ebp - 0x11c]
jne 0x4a8fd8
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x4a8f41
jl 0x4a8f31
cmp edi, ecx
jae 0x4a8f41
mov edi, ecx
mov esi, edx
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x130], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [ebp - 0xe0]
test byte [eax + 8], 2
je 0x4a8fe8
mov dword [ebp - 0xec], 0
lea eax, [ebp - 0x134]
push eax
push 8
call fcn.004585e0
mov esi, dword [ebp - 0x130]
mov edi, dword [ebp - 0x134]
lea eax, [ebp - 0x160]
push eax
mov eax, dword [ebp - 0xe0]
and esi, 0x3fffffff
add edi, 1
push 0
adc esi, 0
push esi
push edi
push 0
push dword [eax + 0x14]
mov dword [ebp - 0x134], edi
mov dword [ebp - 0x130], esi
call fcn.00483330
add esp, 0x20
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
cmp dword [ebp - 0x160], eax
jne 0x4a8fe2
mov eax, dword [ebp - 0xec]
inc eax
mov dword [ebp - 0xec], eax
cmp eax, 0x64
jl 0x4a8f60
mov eax, 0xd
jmp 0x4ab2d4
mov eax, dword [ebp - 0xe0]
mov byte [eax + 3], 0
mov dword [eax + 0x40], 0
mov eax, dword [ebp - 0x104]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x4a631e
cmp byte [ebp - 0xe5], 0x71
mov eax, dword [edi + 8]
mov dword [ebp - 0x124], 0
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe4], ecx
mov eax, dword [eax + 0xc]
jne 0x4a9052
mov edx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
mov edi, dword [edx + eax*8]
mov edx, dword [edx + eax*8 + 4]
jmp 0x4a9055
cdq
mov edi, eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xec], edx
cmp byte [eax + 1], 0xec
jne 0x4a90a9
cmp dword [ebx + 0xd8], 0
je 0x4a90a9
movsx ecx, byte [ecx + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0x10]
test byte [eax + 3], 4
mov dword [ebp - 0x114], ecx
mov ecx, 0x12
cmovne ecx, dword [ebp - 0x1e0]
mov dword [ebp - 0x124], ecx
jmp 0x4a90bd
mov dword [ebp - 0x114], 0
mov dword [ebp - 0xfc], 0
test byte [eax + 3], 1
je 0x4a90cc
mov ecx, dword [ebp - 0xd0]
inc dword [ecx + 0x64]
test byte [eax + 3], 2
je 0x4a90e4
mov dword [ebp - 0x138], edi
mov dword [ebp - 0x13c], edx
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x24], edx
mov edx, dword [ebp - 0xdc]
movzx ecx, word [edx + esi*8 + 8]
test cl, 1
je 0x4a9104
mov dword [edx + esi*8 + 0x10], 0
mov dword [edx + esi*8 + 0xc], 0
mov dl, byte [eax + 3]
test dl, 0x10
je 0x4a9117
mov eax, dword [ebp - 0xe4]
mov eax, dword [eax + 0x20]
jmp 0x4a9119
xor eax, eax
test ecx, 0x4000
je 0x4a912c
mov ecx, dword [ebp - 0xdc]
mov ecx, dword [ecx + esi*8]
jmp 0x4a912e
xor ecx, ecx
push eax
movzx eax, dl
shr eax, 3
and eax, 1
push eax
mov eax, dword [ebp - 0xdc]
push ecx
push dword [eax + esi*8 + 0xc]
push dword [eax + esi*8 + 0x10]
mov esi, dword [ebp - 0xec]
mov eax, dword [ebp - 0xe4]
push esi
push edi
push 0
push dword [eax + 0x14]
call fcn.00482a30
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe4]
add esp, 0x24
mov byte [eax + 3], 0
mov dword [eax + 0x40], 0
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x4a631e
mov ecx, dword [ebp - 0x124]
test ecx, ecx
je 0x4a631e
mov edx, dword [ebp - 0x114]
push esi
push edi
push dword [edx]
push dword [ebp - 0xfc]
push ecx
push dword [ebx + 0xd4]
call eax
add esp, 0x18
jmp 0x4a631e
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x104], eax
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
cmp byte [eax + 1], 0xec
jne 0x4a922a
cmp dword [ebx + 0xd8], 0
je 0x4a922a
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xcc]
test byte [eax + 3], 2
mov edi, dword [eax + 0x10]
je 0x4a9236
cmp byte [esi + 4], 0
je 0x4a9236
lea eax, [esi + 0x30]
push eax
push dword [esi + 0x14]
call fcn.00483170
mov eax, dword [ebp - 0xcc]
add esp, 8
jmp 0x4a9236
mov dword [ebp - 0xec], 0
xor edi, edi
movzx eax, byte [eax + 3]
push eax
push dword [esi + 0x14]
call fcn.00482420
add esp, 8
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x4ab2d4
test byte [ebp - 0x104], 1
je 0x4a631e
mov eax, dword [ebp - 0xd0]
inc dword [eax + 0x64]
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x4a631e
test byte [edi + 0x2a], 0x20
jne 0x4a631e
push dword [esi + 0x34]
push dword [esi + 0x30]
push dword [edi]
push dword [ebp - 0xec]
push 9
push dword [ebx + 0xd4]
call eax
add esp, 0x18
jmp 0x4a631e
mov eax, dword [esi + 0x64]
add dword [ebx + 0x58], eax
mov dword [ebx + 0x54], eax
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov dword [esi + 0x64], 0
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x17c], 0
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
lea edx, [ebp - 0x17c]
push edx
mov edx, dword [ebp - 0xcc]
push dword [edx + 0x10]
push eax
push ecx
call fcn.004af1b0
add esp, 0x10
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
mov edi, dword [ebp - 0xcc]
cmp dword [ebp - 0x17c], eax
jne 0x4a5e85
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
push edx
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
push dword [eax + ecx*4]
call fcn.004af710
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x40], 0
jmp 0x4a6094
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x104], eax
cmp byte [eax + 4], 0
mov esi, dword [eax + 0x14]
mov dword [ebp - 0xec], esi
jne 0x4a93f5
lea eax, [ebp - 0x248]
push eax
push esi
call fcn.00483170
mov eax, dword [ebx + 0x5c]
cdq
add esp, 8
cmp dword [ebp - 0x244], edx
jg 0x4ab51a
mov esi, dword [ebp - 0x248]
jl 0x4a940a
cmp esi, eax
jmp 0x4a9404
push esi
call fcn.0046ff40
mov esi, dword [esi + 0x1c]
add esp, 4
cmp esi, dword [ebx + 0x5c]
ja 0x4ab51a
mov eax, 0x20
cmp esi, eax
cmova eax, esi
push eax
push edi
call fcn.004ad310
add esp, 8
test eax, eax
jne 0x4a7ca3
mov ax, word [edi + 8]
mov ecx, 0x3e00
and ax, cx
or ax, 0x10
mov word [edi + 8], ax
mov eax, dword [ebp - 0x104]
mov dword [edi + 0xc], esi
cmp byte [eax + 4], 0
jne 0x4a9461
push 0
push dword [edi + 0x10]
push esi
push 0
push dword [ebp - 0xec]
call fcn.0045dbb0
add esp, 0x14
jmp 0x4a9475
push dword [edi + 0x10]
push esi
push 0
push dword [ebp - 0xec]
call fcn.004823c0
add esp, 0x10
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
mov byte [edi + 0xa], 1
jmp 0x4a6094
push edi
push esi
call fcn.004751c0
mov ecx, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x38]
mov edi, eax
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x4a94c1
mov eax, 1
mov word [edi + 8], ax
jmp 0x4a631e
cmp byte [esi + 3], 0
je 0x4a94f5
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x190], eax
mov eax, dword [esi + 0x34]
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp - 0x190]
mov dword [edi], eax
mov eax, dword [ebp - 0x18c]
mov dword [edi + 4], eax
jmp 0x4a6094
cmp byte [esi], 2
jne 0x4a9548
mov ecx, dword [esi + 0x14]
lea edx, [ebp - 0x190]
mov esi, dword [ecx]
push edx
mov eax, dword [esi]
push ecx
mov eax, dword [eax + 0x30]
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.004b0570
mov eax, dword [ebp - 0xd8]
add esp, 0x10
test eax, eax
jne 0x4ab2da
mov eax, dword [ebp - 0x190]
mov dword [edi], eax
mov eax, dword [ebp - 0x18c]
mov dword [edi + 4], eax
jmp 0x4a6094
push esi
call fcn.004a5a10
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
cmp byte [esi + 2], al
je 0x4a9572
mov eax, 1
mov word [edi + 8], ax
jmp 0x4a631e
lea eax, [ebp - 0x190]
push eax
push dword [esi + 0x14]
call fcn.00483170
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x190]
mov dword [edi], eax
mov eax, dword [ebp - 0x18c]
add esp, 8
mov dword [edi + 4], eax
jmp 0x4a6094
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x40], 0
jne 0x4a632a
push dword [eax + 0x14]
call fcn.00481b40
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 4
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x1a0], 0
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x1a0]
push eax
push dword [esi + 0x14]
call fcn.004831a0
mov ecx, dword [ebp - 0x1a0]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xcc]
mov byte [esi + 2], cl
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
mov eax, dword [eax + 0xc]
mov dword [esi + 0x20], eax
mov eax, dword [ebp - 0xd8]
add esp, 8
test eax, eax
jne 0x4ab2d4
mov edi, dword [ebp - 0xcc]
cmp dword [edi + 8], eax
jle 0x4a6324
test ecx, ecx
jne 0x4a5e85
jmp 0x4a6324
inc dword [esi + 0x7c]
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x174], 1
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x174]
cmp byte [esi], 1
push eax
jne 0x4a9686
push esi
call fcn.004af6a0
jmp 0x4a9699
push dword [esi + 0x14]
call fcn.004827d0
mov byte [esi + 3], 0
mov dword [esi + 0x40], 0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0x174]
mov byte [esi + 2], al
test eax, eax
jne 0x4a5e85
jmp 0x4a6324
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x164]
push eax
push esi
push ebx
mov dword [ebp - 0x164], 0
call fcn.004af470
add esp, 0xc
jmp 0x4a9726
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
cmp dword [eax + ecx*4], 0
je 0x4a632a
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x164]
push eax
push dword [esi + 0x14]
mov eax, dword [ecx + 0x10]
call eax
mov edi, dword [ebp - 0xcc]
add esp, 8
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x40], 0
test eax, eax
jne 0x4ab2d4
cmp dword [ebp - 0x164], eax
jne 0x4a9765
mov ecx, dword [ebp - 0xd0]
mov edi, dword [ebp - 0xcc]
mov byte [esi + 2], al
mov eax, dword [ebp - 0xcc]
movzx eax, byte [eax + 3]
inc dword [ecx + eax*4 + 0x74]
jmp case.0x4a5e3c.13
mov byte [esi + 2], 1
jmp 0x4aaeb0
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xcc]
test byte [ecx + 3], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
je 0x4a979b
mov eax, dword [ebp - 0xd0]
inc dword [eax + 0x64]
mov eax, 0x4000
test word [esi + 8], ax
je 0x4a97bd
push esi
call fcn.004ad3c0
add esp, 4
test eax, eax
jne 0x4ab2d4
mov ecx, dword [ebp - 0xcc]
cmp byte [ecx], 0x7b
jne 0x4a97d7
push esi
push edi
call fcn.004af7c0
add esp, 8
mov dword [ebp - 0xd8], eax
jmp 0x4a6e6e
test byte [ecx + 3], 0x10
je 0x4a97e2
mov eax, dword [edi + 0x20]
jmp 0x4a97e4
xor eax, eax
push eax
push dword [ecx + 0xc]
mov eax, dword [esi + 0xc]
push 0
push 0
push 0x52743d
cdq
push edx
push eax
push dword [esi + 0x10]
push dword [edi + 0x14]
call fcn.00482a30
add esp, 0x24
mov dword [edi + 0x40], 0
mov dword [ebp - 0xd8], eax
jmp 0x4a6e6e
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x14]
mov dword [ebp - 0x260], eax
mov ax, word [ecx + 0xc]
mov word [ebp - 0x258], ax
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
mov byte [ebp - 0x256], 0
lea eax, [ecx + eax*8]
mov dword [ebp - 0x25c], eax
lea eax, [ebp - 0x1d8]
push eax
push 0
push 0
push 0
lea eax, [ebp - 0x260]
push eax
push edi
call fcn.00483330
add esp, 0x18
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
cmp dword [ebp - 0x1d8], eax
jne 0x4a98a5
push 4
push edi
call fcn.00482420
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov dword [esi + 0x40], 0
jmp 0x4a631e
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
push esi
call fcn.004a5a10
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
cmp byte [esi + 2], al
jne 0x4a9990
lea eax, [ebp - 0x19c]
push eax
push dword [esi + 0x14]
xorps xmm0, xmm0
push ebx
movlpd qword [ebp - 0x19c], xmm0
call fcn.004ac7f0
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0xcc]
cmp byte [eax], 0x7e
jne 0x4a994c
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0xd0]
mov eax, dword [eax + 0x38]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x19c]
mov dword [ecx + 0x30], eax
mov eax, dword [ebp - 0x198]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0xcc]
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x3c], eax
mov dword [ecx + 0x38], esi
jmp 0x4a631e
mov esi, dword [ebp - 0xd0]
push eax
push esi
call fcn.004751c0
mov ecx, dword [ebp - 0x19c]
mov edi, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0x11c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x198]
mov dword [eax + 4], ecx
mov ecx, 4
add esp, 8
mov word [eax + 8], cx
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004ada30
add esp, 4
jmp 0x4a631e
mov eax, dword [esi + 0x38]
mov ecx, dword [edi + 4]
cmp byte [ebp - 0xe5], 0x3a
mov ecx, dword [eax + ecx*4]
mov edx, dword [ebp - 0xdc]
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x14c], 0
mov ax, word [eax + 0x10]
mov word [ebp - 0x268], ax
sbb al, al
mov byte [ebp - 0x266], al
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x26c], eax
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x270]
push eax
push ecx
push ebx
call fcn.004ac6f0
mov edi, dword [ebp - 0xcc]
add esp, 0x10
test byte [edi], 1
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x14c]
jne 0x4a9a3d
neg eax
jmp 0x4a9a3e
inc eax
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x14c], eax
test ecx, ecx
jne 0x4ab4c3
test eax, eax
jg 0x4a5e85
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
push edi
push esi
call fcn.004751c0
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ebx + 0xa8]
inc ecx
add esp, 8
cmp dword [ebx + 0x9c], ecx
jg 0x4ab44f
mov eax, dword [ebp - 0xcc]
lea edx, [ebp - 0x1b0]
mov ecx, dword [eax + 0xc]
push edx
push dword [eax + 4]
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xec], ecx
add ecx, ecx
mov dword [ebp - 0x1b0], 0
push dword [eax + ecx*8 + 4]
call fcn.00482710
mov ecx, dword [ebp - 0x1b0]
mov dword [ebp - 0xd8], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0xd8]
add esp, 0xc
mov dword [esi + 4], edx
test eax, eax
jne 0x4ab2d4
test ecx, ecx
je 0x4a631e
mov eax, dword [ebp - 0xcc]
push dword [eax + 4]
push ecx
push dword [ebp - 0xec]
push ebx
call fcn.0049c240
mov al, byte [ebp - 0xec]
add esp, 0x10
inc al
mov byte [ebp - 0x11d], al
jmp 0x4a631e
xor ecx, ecx
cmp dword [edi + 0xc], ecx
lea eax, [ebp - 0x188]
cmove eax, ecx
push eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x188], 0
mov ecx, dword [eax + 8]
push dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00481b60
mov edi, dword [ebp - 0xcc]
add esp, 0xc
cmp dword [edi + 0xc], 0
mov dword [ebp - 0xd8], eax
je 0x4a9ba5
mov eax, dword [ebp - 0x188]
add dword [esi + 0x64], eax
mov ecx, dword [edi + 0xc]
test ecx, ecx
jle 0x4a9b9f
mov ebx, dword [ebp - 0xdc]
cdq
lea ecx, [ecx + ecx*4]
add dword [ebx + ecx*8], eax
mov eax, ebx
mov ebx, dword [ebp - 0x11c]
adc dword [eax + ecx*8 + 4], edx
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
cmp byte [eax], 1
jne 0x4a9bf7
push dword [eax + 0x14]
push ebx
call fcn.004af4f0
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 8
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [eax + 0x14]
push 0
push dword [eax + 0x34]
push dword [eax]
call fcn.00481b60
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
push edi
push esi
call fcn.004751c0
mov esi, eax
mov eax, dword [ebp - 0xcc]
xor ecx, ecx
mov edx, dword [eax + 4]
shl edx, 4
add edx, dword [ebx + 0x10]
cmp byte [eax], 0x84
lea eax, [ebp - 0x1a4]
setne cl
mov dword [ebp - 0x1a4], 0
inc ecx
push ecx
push eax
push dword [edx + 4]
call fcn.004822f0
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0x1a4]
cdq
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x4a631e
mov edx, dword [edi + 4]
cmp edx, 1
mov eax, str.sqlite_master
mov ecx, str.sqlite_temp_master
cmovne ecx, eax
lea eax, [esi + 0x2c]
mov dword [ebp - 0x20c], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x208], edx
push dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
push ecx
add edx, edx
mov dword [ebp - 0x210], ebx
push dword [eax + edx*8]
push str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.00494c80
mov esi, eax
add esp, 0x14
test esi, esi
je 0x4ab463
push 0
lea eax, [ebp - 0x210]
push eax
push fcn.00492130
push esi
push ebx
mov byte [ebx + 0x95], 1
mov dword [ebp - 0x204], 0
call fcn.00454910
test eax, eax
cmove eax, dword [ebp - 0x204]
push esi
push ebx
mov dword [ebp - 0xd8], eax
call fcn.00487810
mov ecx, dword [ebp - 0xd8]
add esp, 0x1c
mov byte [ebx + 0x95], 0
test ecx, ecx
jne 0x4ab46d
jmp 0x4a631e
push dword [edi + 4]
push ebx
call fcn.0047fba0
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.004a1d80
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 0xc
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.004a1cd0
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 0xc
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.004a1df0
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 0xc
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
lea edi, [eax + eax*4]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x1c4]
push eax
push dword [ecx + edi*8]
mov eax, dword [ebp - 0xcc]
push dword [eax + 8]
movzx ecx, byte [eax + 3]
push dword [eax + 0x10]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00482c30
mov esi, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0xec], eax
mov eax, esi
cdq
sub dword [ecx + edi*8], eax
sbb dword [ecx + edi*8 + 4], edx
mov edi, dword [ebp - 0x104]
push edi
call fcn.004ada30
add esp, 0x18
test esi, esi
je 0x4a9e78
mov eax, dword [ebp - 0xec]
test eax, eax
je 0x4a7ca3
push fcn.004584c0
push 1
push 0xffffffffffffffff
push eax
push edi
call fcn.004adb30
add esp, 0x14
movzx eax, byte [ebp - 0x110]
push eax
push edi
call fcn.004a5170
add esp, 8
jmp 0x4a631e
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea edi, [eax + eax*4]
jne 0x4a9ec3
push esi
call fcn.004ada60
add esp, 4
test byte [esi + 8], 0x20
je 0x4a7ca3
mov ebx, dword [ebp - 0xdc]
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push dword [esi]
call fcn.0049c380
add esp, 0xc
jmp 0x4a631e
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
je 0x4a9f3f
lea eax, [ebp - 0x218]
push eax
push dword [esi]
call fcn.0049c420
add esp, 8
test eax, eax
je 0x4a9f3f
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0x214]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xdc]
push dword [ebp - 0x218]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
push eax
call fcn.004ad9f0
mov edi, dword [ebp - 0xcc]
add esp, 0xc
jmp 0x4aaeb0
push esi
call fcn.004ada30
add esp, 4
jmp case.0x4a5e3c.13
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 0x20
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xec], eax
jne 0x4a9f97
push esi
call fcn.004ada60
add esp, 4
test byte [esi + 8], 0x20
je 0x4a7ca3
mov eax, dword [ebp - 0xec]
mov ebx, dword [ebp - 0xdc]
test eax, eax
je 0x4a9fc3
push dword [ebx + edi*8 + 4]
push dword [ebx + edi*8]
push eax
push dword [esi]
call fcn.0049c480
add esp, 0x10
test eax, eax
jne 0x4a5e7f
mov eax, dword [ebp - 0xec]
test eax, eax
js 0x4a631e
jmp 0x4a9ec9
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [edi + 0x10]
lea eax, [eax + eax*4]
mov dword [ebp - 0xec], edx
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe4], ecx
cmp byte [eax + 3], 0
je 0x4aa01b
mov eax, dword [esi + 0xb8]
mov ecx, dword [edx + 0x14]
test eax, eax
je 0x4aa015
cmp dword [eax + 0x1c], ecx
je 0x4a6094
mov eax, dword [eax + 4]
test eax, eax
jne 0x4aa005
mov ecx, dword [ebp - 0xe4]
mov eax, dword [esi + 0xc0]
cmp eax, dword [ebx + 0x84]
jge 0x4ab490
test byte [ecx + 8], 0x40
jne 0x4aa1e8
mov ecx, dword [edx + 0xc]
mov esi, dword [edx + 8]
add esi, ecx
test ecx, ecx
jne 0x4aa044
inc esi
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [edx + 0x10]
lea eax, [eax + ecx*4]
cdq
push edx
push eax
push ebx
call fcn.00487980
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4a7ca3
push dword [ebp - 0xe4]
call fcn.004ad9c0
mov eax, dword [ebp - 0xe4]
mov ecx, 0x40
mov word [eax + 8], cx
mov dword [eax], edi
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x10c]
mov dword [edi], eax
mov eax, dword [ebp - 0xec]
mov dword [edi + 0x40], esi
mov eax, dword [eax + 0xc]
mov dword [edi + 0x44], eax
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebp - 0xd0]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0xec]
mov dword [edi + 0x30], eax
mov eax, dword [ecx + 8]
mov dword [edi + 0x10], eax
mov eax, dword [ecx + 0x1c]
mov dword [edi + 0x38], eax
mov eax, dword [ecx + 0x38]
mov dword [edi + 0x18], eax
mov eax, dword [ecx + 0x24]
mov dword [edi + 0x2c], eax
mov eax, dword [ecx + 4]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x20]
mov dword [edi + 0x34], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x1c], eax
mov eax, dword [ecx + 0xd0]
mov dword [edi + 0x14], eax
mov eax, dword [ecx + 0xcc]
mov dword [edi + 0x3c], eax
lea eax, [esi + 2]
add esp, 4
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x4aa12e
mov esi, 0x80
lea esp, [esp]
mov word [eax + 8], si
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x4aa120
mov esi, dword [ebp - 0xd0]
inc dword [esi + 0xc0]
mov eax, dword [esi + 0xb8]
mov dword [edi + 4], eax
mov eax, dword [ebp - 0x138]
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x13c]
mov dword [edi + 0x24], eax
mov eax, dword [esi + 0x64]
mov dword [edi + 0x48], eax
mov eax, dword [esi]
lea ebx, [edi + 0x50]
mov eax, dword [eax + 0x54]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xd4]
mov dword [edi + 0x28], eax
mov dword [esi + 0xd4], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0xb8], edi
mov dword [esi + 8], ebx
mov eax, dword [edi + 0x40]
mov dword [esi + 0x1c], eax
movzx eax, word [edi + 0x44]
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0xdc], ebx
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov dword [esi + 0x38], ecx
mov ebx, dword [edx]
mov dword [esi + 4], ebx
mov eax, dword [edx + 4]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x10c], ebx
lea ecx, [ecx + eax*4]
mov dword [esi + 0xd0], ecx
mov eax, dword [edx + 0x10]
push eax
lea edx, [ebx - 0x14]
push 0
push ecx
mov dword [esi + 0xcc], eax
mov dword [ebp - 0xcc], edx
call fcn.0041f040
add esp, 0xc
jmp 0x4a6094
mov edi, dword [ecx]
jmp 0x4aa134
push dword [ebp - 0xcc]
push esi
call fcn.004751c0
mov esi, eax
mov eax, dword [ebp - 0xd0]
push 0x1000
mov eax, dword [eax + 0xb8]
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 [ebp - 0xcc]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*8]
push eax
push esi
call fcn.004add50
add esp, 0x14
jmp 0x4a631e
test dword [ebx + 0x18], 0x2000000
mov eax, dword [edi + 8]
cdq
je 0x4aa269
add dword [ebx + 0x1c0], eax
mov eax, dword [ebp - 0xd4]
adc dword [ebx + 0x1c4], edx
mov ebx, dword [ebp - 0x11c]
add edi, 0x14
jmp 0x4a5e12
cmp dword [edi + 4], 0
je 0x4aa28f
add dword [ebx + 0x1b8], eax
mov eax, dword [ebp - 0xd4]
adc dword [ebx + 0x1bc], edx
mov ebx, dword [ebp - 0x11c]
add edi, 0x14
jmp 0x4a5e12
add dword [esi + 0x98], eax
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
adc dword [esi + 0x9c], edx
add edi, 0x14
jmp 0x4a5e12
cmp dword [edi + 4], 0
je 0x4aa2ed
mov eax, dword [ebx + 0x1b8]
or eax, dword [ebx + 0x1bc]
jne case.0x4a5e3c.110
mov eax, dword [ebx + 0x1c0]
or eax, dword [ebx + 0x1c4]
je 0x4a5e85
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [esi + 0x98]
or eax, dword [esi + 0x9c]
jmp 0x4aa2c1
mov edx, dword [esi + 0xb8]
test edx, edx
je 0x4aa333
mov eax, dword [edx + 4]
test eax, eax
je 0x4aa319
lea esp, [esp]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4aa310
mov eax, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xdc]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x4aa348
mov edx, dword [ebp - 0xcc]
mov ebx, dword [ebp - 0xdc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [ebx + eax*8]
push edi
call fcn.004ad730
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ebx + eax*8]
push esi
call fcn.004ad730
mov ecx, dword [esi + 4]
mov eax, dword [esi]
add esp, 8
cmp dword [edi + 4], ecx
jg 0x4a631e
jl 0x4aa37e
cmp dword [edi], eax
jae 0x4a631e
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x4a631e
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
lea esi, [eax + eax*4]
mov ebx, dword [edx + esi*8 + 4]
mov ecx, dword [edx + esi*8]
test ebx, ebx
jl 0x4a6324
jg 0x4aa3ad
test ecx, ecx
je 0x4a6324
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb ebx, edx
mov edx, dword [ebp - 0xdc]
mov dword [edx + esi*8], ecx
mov dword [edx + esi*8 + 4], ebx
jmp 0x4a5e7f
mov ebx, dword [ebp - 0xcc]
push ebx
mov eax, dword [ebx + 4]
push dword [ebp - 0xd0]
lea esi, [eax + eax*4]
mov eax, dword [ebx + 0xc]
lea edi, [eax + eax*4]
call fcn.004751c0
mov ecx, dword [ebp - 0xdc]
add esp, 8
mov edx, dword [ecx + esi*8]
mov esi, dword [ecx + esi*8 + 4]
mov ebx, eax
test esi, esi
jg 0x4aa416
jl 0x4aa407
test edx, edx
jne 0x4aa416
or eax, 0xffffffff
or ecx, eax
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x4a631e
mov eax, dword [ecx + edi*8]
mov ecx, dword [ecx + edi*8 + 4]
test ecx, ecx
jl 0x4aa427
jg 0x4aa43e
test eax, eax
jne 0x4aa43e
xorps xmm0, xmm0
movlpd qword [ebp - 0x200], xmm0
mov ecx, dword [ebp - 0x1fc]
mov eax, dword [ebp - 0x200]
add eax, edx
adc ecx, esi
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x4a631e
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0xdc]
lea ebx, [eax + eax*4]
mov ecx, dword [edx + ebx*8]
mov esi, dword [edx + ebx*8 + 4]
mov eax, ecx
or eax, esi
je 0x4a6324
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
sbb esi, edx
mov edx, dword [ebp - 0xdc]
mov dword [edx + ebx*8], ecx
mov dword [edx + ebx*8 + 4], esi
jmp 0x4a5e7f
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0xdc]
lea ecx, [eax + eax*4]
add dword [ebx + ecx*8], 0xffffffff
mov eax, dword [ebx + ecx*8]
adc dword [ebx + ecx*8 + 4], 0xffffffff
or eax, dword [ebx + ecx*8 + 4]
je 0x4a5e85
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
movzx eax, byte [edi + 3]
mov dword [ebp - 0x104], eax
lea eax, [eax*4 + 0x1c]
push 0
push eax
push ebx
call fcn.004878a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4a7ca3
mov eax, dword [ebp - 0xcc]
mov dword [esi + 8], 0
mov ecx, dword [eax + 0x10]
mov edi, dword [ebp - 0xcc]
mov dword [esi + 4], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xd0]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x104]
mov byte [esi + 0x1a], al
mov word [edi], 0xeb92
mov dword [edi + 0x10], esi
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [edi + 0x10]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x104], eax
cmp dword [esi + 8], eax
je 0x4aa599
movzx ecx, byte [esi + 0x1a]
dec ecx
mov dword [esi + 8], eax
js 0x4aa599
mov ebx, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xdc]
lea edx, [ecx + 7]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea edx, [edx - 4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x4aa573
mov ebx, dword [ebp - 0x11c]
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0x104]
inc dword [eax + 0xc]
mov eax, 1
mov word [ebp - 0x308], ax
mov dword [ebp - 0x2f0], ebx
mov dword [ebp - 0x2f8], 0
mov ecx, dword [esi + 4]
lea eax, [ebp - 0x310]
mov dword [esi], eax
lea eax, [esi + 0x1c]
push eax
movzx eax, byte [esi + 0x1a]
push eax
mov word [esi + 0x18], 0
mov eax, dword [ecx + 0xc]
push esi
call eax
add esp, 0xc
cmp byte [esi + 0x19], 0
je 0x4aa62d
cmp dword [esi + 0x14], 0
je 0x4aa610
lea eax, [ebp - 0x310]
push eax
call fcn.004509e0
push eax
push 0x5162f0
push dword [ebp - 0xd0]
call fcn.004a5c80
mov eax, dword [esi + 0x14]
add esp, 0x10
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x310]
push eax
call fcn.004ad9c0
mov eax, dword [ebp - 0xd8]
add esp, 4
test eax, eax
jne 0x4ab2d4
cmp byte [esi + 0x18], 0
je 0x4a6324
mov eax, dword [edi - 0x10]
test eax, eax
je 0x4a6324
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
push 0
lea eax, [ecx + eax*8]
push 1
push eax
call fcn.004ad9f0
add esp, 0xc
jmp 0x4a6324
mov eax, dword [edi + 4]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, dword [ebp - 0xcc]
push dword [eax + 0x10]
push esi
call fcn.004ad420
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab4a8
movzx eax, byte [ebp - 0x110]
push eax
push esi
call fcn.004a5170
push esi
jmp 0x4a6b8d
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0xc4]
push eax
push dword [edi + 8]
mov dword [ebp - 0xc8], 0
push dword [edi + 4]
mov dword [ebp - 0xc0], 0xffffffff
push ebx
mov dword [ebp - 0xc4], 0xffffffff
call fcn.00484b40
add esp, 0x14
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x4aa705
cmp eax, 5
jne 0x4ab2da
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xc8], 1
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [eax + 0xc]
xor esi, esi
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
lea esp, [esp]
mov eax, dword [ebp + esi*4 - 0xc8]
cdq
push edx
push eax
push edi
call fcn.004ad9f0
inc esi
add esp, 0xc
add edi, 0x28
cmp esi, 3
jl 0x4aa720
jmp 0x4a631e
push edi
push esi
call fcn.004751c0
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xcc]
add esp, 8
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 [ebp - 0x104], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ecx, byte [edi + 5]
cmove esi, ecx
cmp byte [edi + 0x11], 3
mov dword [ebp - 0xe0], ecx
jae 0x4aa79d
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x4aa79f
cmp dword [edi + 0x54], 0
jl 0x4aa79f
jg 0x4aa79d
cmp dword [edi + 0x50], 0
jbe 0x4aa79f
mov esi, ecx
cmp byte [edi + 0x10], 0
mov eax, 0x52743d
jne 0x4aa7b0
mov eax, dword [edi + 0xb0]
cmp esi, 5
jne 0x4aa7e2
push eax
call fcn.004a1040
add esp, 4
test eax, eax
je 0x4aa7cf
push edi
call fcn.00497790
add esp, 4
test eax, eax
jne 0x4aa7dc
mov eax, dword [ebp - 0xe0]
mov esi, eax
jmp 0x4aa86c
mov ecx, dword [ebp - 0xe0]
cmp esi, ecx
je 0x4aa866
cmp ecx, 5
je 0x4aa7f4
cmp esi, 5
jne 0x4aa866
cmp byte [ebx + 0x43], 0
je 0x4ab4ce
cmp dword [ebx + 0x9c], 1
jg 0x4ab4ce
cmp ecx, 5
jne 0x4aa82f
push edi
call fcn.00495f80
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4aa877
push esi
push edi
call fcn.00497150
add esp, 8
jmp 0x4aa848
cmp ecx, 4
jne 0x4aa83f
push 2
push edi
call fcn.00497150
add esp, 8
cmp dword [ebp - 0xd8], 0
jne 0x4aa877
xor eax, eax
cmp esi, 5
sete al
inc eax
push eax
push dword [ebp - 0x104]
call fcn.004845f0
add esp, 8
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xe0]
cmp dword [ebp - 0xd8], 0
je 0x4aa87f
jmp 0x4aa87d
mov eax, dword [ebp - 0xe0]
mov esi, eax
push esi
push edi
call fcn.00497150
mov esi, dword [ebp - 0xec]
add esp, 8
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x4aa8a1
xor eax, eax
jmp 0x4aa8a8
mov eax, dword [eax*4 + 0x5116b0]
push eax
mov dword [esi + 0x10], eax
call fcn.004a1040
mov dword [esi + 0xc], eax
movzx eax, byte [ebp - 0x110]
push eax
push esi
mov byte [esi + 0xa], 1
call fcn.004a5170
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
add esp, 0xc
test eax, eax
jne 0x4ab2da
jmp 0x4a6094
lea eax, [esi + 0x2c]
push ebx
push eax
call fcn.0049cb90
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov ecx, dword [edi + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00482930
add esp, 4
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x4a632a
cmp eax, 0x65
jne 0x4ab2da
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x10c]
lea eax, [eax + eax*4]
mov dword [ebp - 0xd8], 0
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x4a6324
cmp dword [edi + 4], 0
jne 0x4aa983
push ebx
call fcn.004895f0
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add esp, 4
add edi, 0x14
jmp 0x4a5e12
or dword [esi + 0x58], 1
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
add edi, 0x14
jmp 0x4a5e12
mov al, byte [edi + 0xc]
mov byte [ebp - 0x1d4], al
test al, al
jne 0x4aa9b5
test dword [ebx + 0x18], 0x4000
jne case.0x4a5e3c.110
mov eax, dword [ebp - 0xcc]
push dword [ebp - 0x1d4]
mov ecx, dword [eax + 4]
push dword [eax + 8]
mov eax, dword [ebx + 0x10]
add ecx, ecx
push dword [eax + ecx*8 + 4]
call fcn.00483260
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
je 0x4a6094
cmp al, 6
jne 0x4ab2da
mov eax, dword [ebp - 0xcc]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push esi
call fcn.004a5c80
mov eax, dword [ebp - 0xd8]
add esp, 0xc
jmp 0x4ab2da
mov esi, dword [edi + 0x10]
push esi
push ebx
call fcn.004afcd0
add esp, 8
mov dword [ebp - 0xd8], eax
test esi, esi
je 0x4a8427
push dword [esi + 8]
mov esi, dword [ebp - 0xd0]
push esi
call fcn.004b0570
mov eax, dword [ebp - 0xd8]
add esp, 8
jmp 0x4a842d
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
xorps xmm0, xmm0
lea eax, [ecx + eax*8]
push eax
lea eax, [ebp - 0x2a0]
movq qword [ebp - 0x280], xmm0
push eax
movq qword [ebp - 0x2a0], xmm0
movq qword [ebp - 0x298], xmm0
movq qword [ebp - 0x290], xmm0
movq qword [ebp - 0x288], xmm0
mov dword [ebp - 0x280], ebx
call fcn.004ad340
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x2a0]
push eax
call fcn.004509e0
add esp, 0xc
test eax, eax
je 0x4aaad1
lea ecx, [esi + 0x2c]
push ecx
push eax
mov eax, dword [ebp - 0xcc]
push dword [eax + 4]
push ebx
call fcn.004aff30
mov edi, dword [ebp - 0xcc]
add esp, 0x10
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0x2a0]
push eax
call fcn.004ad9c0
mov eax, dword [ebp - 0xd8]
add esp, 4
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
inc dword [ebx + 0xa8]
push dword [edi + 0x10]
push dword [edi + 4]
push ebx
call fcn.004b0010
dec dword [ebx + 0xa8]
add esp, 0xc
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x158], 0
mov esi, dword [eax + 8]
test esi, esi
je 0x4ab510
mov edi, dword [esi]
test edi, edi
je 0x4ab510
lea eax, [ebp - 0x158]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
push esi
push dword [ebp - 0xd0]
mov dword [ebp - 0xd8], eax
call fcn.004b0570
mov eax, dword [ebp - 0xd8]
add esp, 0x10
test eax, eax
jne 0x4ab2d4
mov eax, dword [ebp - 0x158]
push 2
mov dword [eax], esi
mov eax, dword [ebp - 0xcc]
push 0xffffffffffffffff
push 0
push dword [eax + 4]
push dword [ebp - 0xd0]
call fcn.0045e9d0
add esp, 0x14
test eax, eax
je 0x4ab4fd
mov ecx, dword [ebp - 0x158]
mov dword [eax + 0x14], ecx
inc dword [esi + 4]
jmp 0x4a631e
mov eax, dword [edi + 0xc]
mov edi, dword [ebp - 0xd0]
mov esi, dword [ebp - 0xdc]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0xcc]
add esi, 0x28
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x38]
mov edi, dword [edi + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0xfc], eax
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x124], eax
mov eax, dword [eax]
mov dword [ebp - 0xe4], eax
mov eax, dword [eax]
lea esi, [esi + edx*8]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0xec], esi
mov esi, dword [esi]
mov eax, dword [eax + edx*8]
xor ecx, ecx
mov dword [ebp - 0x104], eax
test esi, esi
jle 0x4aacdb
cmp esi, 4
jb 0x4aacb8
cmp dword [0x5335dc], 2
jl 0x4aacb8
movd xmm0, dword [ebp - 0xec]
movdqa xmm2, xmmword [0x519ce0]
mov eax, esi
pshufd xmm1, xmm0, 0
and eax, reloc.WS2_32.dll_closesocket
jns 0x4aac70
dec eax
or eax, 0xfffffffc
inc eax
movdqa xmm4, xmmword [str.____]
movdqa xmm3, xmmword [0x519cd0]
mov edx, esi
sub edx, eax
mov eax, edi
jmp 0x4aac90
movd xmm0, ecx
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
paddd xmm0, xmm3
pmulld xmm0, xmm4
paddd xmm0, xmm1
add ecx, 4
movdqu xmmword [eax], xmm0
lea eax, [eax + 0x10]
cmp ecx, edx
jl 0x4aac90
cmp ecx, esi
jge 0x4aacdb
mov edx, dword [ebp - 0xec]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
jmp 0x4aacd0
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x4aacd0
mov eax, dword [ebp - 0xcc]
push edi
mov edi, dword [ebp - 0x114]
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x124]
push dword [ebp - 0x104]
mov eax, dword [edi + 0x20]
push esi
call eax
push dword [ebp - 0xe4]
mov dword [ebp - 0xd8], eax
push dword [ebp - 0xd0]
call fcn.004b0570
mov eax, dword [ebp - 0xd8]
add esp, 0x1c
test eax, eax
jne 0x4ab2d4
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0xfc]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
jne 0x4a5e7f
jmp 0x4a631e
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xcc]
cmp byte [edx + 2], 0
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xdc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
je 0x4aad78
push edi
call fcn.004ada30
add esp, 4
jmp 0x4a6094
mov eax, dword [edx + 0x14]
xorps xmm0, xmm0
mov esi, dword [eax]
mov ecx, dword [esi]
movq qword [ebp - 0x2e8], xmm0
movq qword [ebp - 0x2e0], xmm0
movq qword [ebp - 0x2d8], xmm0
movq qword [ebp - 0x2d0], xmm0
mov dword [ebp - 0x2e8], edi
mov ax, word [edi + 8]
and ax, word [ebp - 0x1e4]
or ax, 1
mov word [edi + 8], ax
mov eax, dword [ebp - 0xcc]
push dword [eax + 8]
lea eax, [ebp - 0x2e8]
push eax
push dword [edx + 0x14]
mov eax, dword [ecx + 0x2c]
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.004b0570
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [ebp - 0xd8]
test eax, eax
cmovne ecx, eax
movzx eax, byte [ebp - 0x110]
push eax
push edi
mov dword [ebp - 0xd8], ecx
call fcn.004a5170
push edi
call fcn.004ade70
add esp, 0x20
test eax, eax
jne 0x4ab520
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x4ab2da
jmp 0x4a6094
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x104], eax
cmp byte [eax + 2], 0
jne 0x4a632a
mov eax, dword [eax + 0x14]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0xec], ecx
mov eax, dword [ecx + 0x24]
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.004b0570
mov eax, dword [ebp - 0xd8]
add esp, 0xc
test eax, eax
jne 0x4ab2da
mov eax, dword [ebp - 0x104]
push dword [eax + 0x14]
mov eax, dword [ebp - 0xec]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x4aaeb0
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0x10c]
dec edi
lea edi, [edi + edi*4]
lea edi, [ecx + edi*4]
mov dword [ebp - 0xcc], edi
cmp dword [ebx + 0xf8], 0
jne 0x4ab759
mov ecx, dword [ebx + 0x130]
mov eax, dword [ebp - 0xd4]
test ecx, ecx
je 0x4ab1d1
cmp eax, dword [ebp - 0x154]
jb 0x4ab1d1
mov esi, dword [ebx + 0x138]
xor edx, edx
div esi
push dword [ebx + 0x134]
sub esi, edx
add esi, dword [ebp - 0xd4]
mov dword [ebp - 0x154], esi
call ecx
mov esi, dword [ebp - 0xd0]
add esp, 4
test eax, eax
jne 0x4ab569
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0xcc]
push 1
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
push edi
call fcn.004a5170
add esp, 8
test eax, eax
jne 0x4ab2d4
mov eax, dword [esi]
push dword [edi + 0x10]
mov eax, dword [eax + 0x4c]
push esi
call eax
push esi
mov esi, dword [ebp - 0xd0]
push esi
mov dword [ebp - 0xd8], eax
call fcn.004b0570
mov eax, dword [ebp - 0xd8]
and dword [esi + 0x58], 0xfffffffe
add esp, 0x10
test eax, eax
jne 0x4ab2da
jmp 0x4a6094
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 8]
mov dword [ebp - 0x104], eax
test eax, eax
je 0x4ab538
mov eax, dword [eax]
mov dword [ebp - 0xec], eax
test eax, eax
je 0x4ab538
cmp dword [eax + 0x34], 0
mov edx, dword [edi + 8]
je case.0x4a5e3c.110
mov al, byte [ebx + 0x4a]
mov ecx, dword [ebp - 0xdc]
mov esi, dword [esi + 0xc]
mov byte [ebp - 0xe5], al
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x4aafeb
lea ecx, [ecx]
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x4aafe0
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 3]
mov byte [ebx + 0x4a], al
lea eax, [ebp - 0x250]
push eax
mov eax, dword [ebp - 0xec]
push esi
mov esi, dword [ebp - 0x104]
mov eax, dword [eax + 0x34]
push edx
push esi
call eax
push esi
mov esi, dword [ebp - 0xd0]
mov dword [ebp - 0xd8], eax
mov al, byte [ebp - 0xe5]
push esi
mov byte [ebx + 0x4a], al
call fcn.004b0570
mov eax, dword [ebp - 0xcc]
add esp, 0x18
cmp dword [ebp - 0xd8], 0
jne 0x4ab064
cmp dword [eax + 4], 0
je 0x4ab064
mov ecx, dword [ebp - 0x250]
mov edx, dword [ebp - 0x24c]
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x13c], edx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], edx
mov ecx, dword [ebp - 0xd8]
cmp cl, 0x13
jne 0x4ab0be
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x4ab0be
mov edi, dword [ebp - 0xcc]
mov al, byte [edi + 3]
cmp al, 4
jne 0x4ab0a8
mov eax, dword [ebp - 0xd4]
mov ebx, dword [ebp - 0x11c]
mov dword [ebp - 0xd8], 0
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
cmp al, 5
jne 0x4ab0b6
mov eax, 2
mov byte [esi + 0x56], al
jmp 0x4ab0c7
movzx eax, al
mov byte [esi + 0x56], al
jmp 0x4ab0c7
inc dword [esi + 0x64]
mov edi, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xd8]
test eax, eax
jne 0x4ab2da
mov ebx, dword [ebp - 0x11c]
lea ecx, [eax + 4]
mov eax, dword [ebp - 0xd4]
add edi, 0x14
jmp 0x4a5e12
push edi
push esi
call fcn.004751c0
mov ecx, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 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
jmp 0x4a6094
push edi
push esi
call fcn.004751c0
mov ecx, dword [ebx + 0x10]
mov edi, eax
mov eax, dword [ebp - 0xcc]
add esp, 8
mov edx, dword [eax + 4]
add edx, edx
mov esi, dword [ecx + edx*8 + 4]
mov edx, dword [eax + 0xc]
xor ecx, ecx
test edx, edx
je 0x4ab14e
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x2c]
cmp ecx, edx
cmovb ecx, edx
push ecx
push esi
call fcn.004832d0
cdq
add esp, 8
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x4a631e
cmp dword [ebx + 0xb4], 0
je 0x4ab1b0
test byte [esi + 0x58], 2
jne 0x4ab1b0
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x4ab183
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x4ab1b0
push eax
push esi
call fcn.004abbc0
mov ecx, dword [ebx + 0xb4]
mov esi, eax
push esi
push dword [ebx + 0xb8]
call ecx
push esi
push ebx
call fcn.00487810
mov esi, dword [ebp - 0xd0]
add esp, 0x18
mov ecx, 4
cmp dword [edi + 8], 0
je case.0x4a5e3c.110
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x10c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edi, [ecx + eax*4]
jmp 0x4a6324
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0x11c]
mov ecx, 4
add edi, 0x14
jmp 0x4a5e12
mov eax, dword [ecx + 4]
mov dword [esi + 0x50], eax
cmp dword [esi + 0x50], 0
mov al, byte [ecx + 8]
mov byte [esi + 0x56], al
mov dword [esi + 0x4c], edi
je 0x4ab28f
mov al, byte [ecx + 3]
test al, al
je 0x4ab252
movzx eax, al
push dword [eax*4 + 0x51169c]
push str._s_constraint_failed
push esi
call fcn.004a5c80
mov esi, dword [ebp - 0xcc]
add esp, 0xc
mov eax, dword [esi + 0x10]
test eax, eax
je 0x4ab269
push eax
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x2c]
push str._z:__s
push ebx
call fcn.00494c80
mov ecx, dword [ebp - 0xd0]
add esp, 0x10
mov dword [ecx + 0x2c], eax
jmp 0x4ab269
push dword [ecx + 0x10]
push 0x5162f0
push esi
call fcn.004a5c80
mov esi, dword [ebp - 0xcc]
add esp, 0xc
mov eax, dword [ebp - 0xd0]
push dword [eax + 0x2c]
push dword [eax + 0xb0]
push edi
push str.abort_at__d_in___s_:__s
push dword [esi + 4]
call fcn.0045aac0
mov esi, dword [ebp - 0xd0]
add esp, 0x14
push esi
call fcn.004ac400
add esp, 4
mov dword [ebp - 0xd8], eax
cmp eax, 5
jne 0x4ab2ab
mov dword [esi + 0x50], eax
jmp 0x4ab8c5
cmp dword [esi + 0x50], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0xd8], eax
jmp 0x4ab8c5
push 0x13538
call fcn.004862f0
add esp, 4
mov esi, dword [ebp - 0xd0]
cmp byte [ebx + 0x45], 0
mov ecx, 7
cmovne eax, ecx
cmp dword [esi + 0x2c], 0
mov dword [ebp - 0xd8], eax
jne 0x4ab7d4
cmp eax, 0xc0a
je 0x4ab7d4
mov ecx, dword [ebp - 0xd8]
mov eax, str.unknown_error
cmp ecx, 0x204
je 0x4ab7ba
movzx ecx, cl
cmp ecx, 0x1a
ja 0x4ab7bf
mov ecx, dword [ecx*4 + 0x511878]
test ecx, ecx
je 0x4ab7bf
mov eax, ecx
jmp 0x4ab7bf
cmp dword [esi + 0x50], 0
jne 0x4ab34f
lea eax, [ebp - 0x2c8]
push eax
call fcn.004ad9c0
add esp, 4
push 0x13575
jmp 0x4ab2cc
push str.cannot_open_savepoint___SQL_statements_in_progress
mov esi, dword [ebp - 0xd0]
push esi
call fcn.004a5c80
add esp, 8
mov eax, 5
jmp 0x4ab2da
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x4ab35e
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 5
mov byte [ebx + 0x43], 0
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x50], eax
jmp 0x4ab8c5
mov eax, 8
jmp 0x4ab2da
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0xd0]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, dword [ebp - 0xd8]
mov dword [esi + 0x50], eax
jmp 0x4ab8c5
mov edi, dword [ebp - 0xd0]
push dword [edi + 0x2c]
push ebx
call fcn.00487810
push str.database_schema_has_changed
push ebx
call fcn.00487b40
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0xcc]
add esp, 0x10
mov edx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
mov ecx, edx
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
cmp dword [eax], esi
je 0x4ab435
push edx
push ebx
call fcn.0049bbf0
add esp, 8
mov esi, edi
mov eax, 0x11
or dword [esi + 0x58], 1
jmp 0x4ab2da
mov eax, 0x204
jmp 0x4ab2da
mov esi, dword [ebp - 0xd0]
mov eax, 6
mov byte [esi + 0x56], 2
jmp 0x4ab2da
mov dword [ebp - 0xd8], 7
push ebx
call fcn.0049bb60
mov eax, dword [ebp - 0xd8]
mov esi, dword [ebp - 0xd0]
add esp, 4
cmp eax, 7
je 0x4a7ca9
jmp 0x4ab2da
push str.too_many_levels_of_trigger_recursion
push esi
call fcn.004a5c80
add esp, 8
mov eax, 1
jmp 0x4ab2da
push esi
call fcn.004509e0
mov esi, dword [ebp - 0xd0]
push eax
push 0x5162f0
push esi
call fcn.004a5c80
add esp, 0x10
mov eax, dword [ebp - 0xd8]
jmp 0x4ab2da
mov eax, str.into
mov ecx, str.out_of
cmp esi, 5
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
mov esi, dword [ebp - 0xd0]
push esi
call fcn.004a5c80
add esp, 0xc
mov eax, 1
jmp 0x4ab2da
push dword [ebp - 0x158]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x4a7ca3
mov eax, 6
jmp 0x4ab2d4
mov esi, dword [ebp - 0xd0]
push str.string_or_blob_too_big
push esi
call fcn.004a5c80
add esp, 8
mov eax, 0x12
jmp 0x4ab2da
mov eax, 6
jmp 0x4ab2da
mov eax, dword [ebx + 0x130]
test eax, eax
je 0x4ab573
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [ebp - 0x154]
jb 0x4ab573
push dword [ebx + 0x134]
call eax
add esp, 4
test eax, eax
je 0x4ab573
mov eax, 9
jmp 0x4ab2da
push 0
push esi
call fcn.004a5310
add esp, 8
test eax, eax
jne 0x4ab2da
push 1
push esi
call fcn.004a57e0
mov eax, dword [esi + 0x48]
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xdc]
add eax, 2
or eax, 1
mov dword [esi + 0x48], eax
mov eax, dword [ecx + 4]
xor edi, edi
lea eax, [eax + eax*4]
add esp, 8
lea esi, [edx + eax*8]
mov eax, dword [ebp - 0xd0]
mov dword [eax + 0x14], esi
cmp dword [ecx + 8], edi
jle 0x4ab5f6
mov eax, 0x1000
test word [esi + 8], ax
je 0x4ab5de
push esi
call fcn.004ad7b0
add esp, 4
test eax, eax
jne 0x4a7ca3
push esi
call fcn.004ad8a0
mov ecx, dword [ebp - 0xcc]
inc edi
add esp, 4
add esi, 0x28
cmp edi, dword [ecx + 8]
jl 0x4ab5c2
cmp byte [ebx + 0x45], 0
jne 0x4a7ca3
sub ecx, dword [ebp - 0x10c]
mov esi, dword [ebp - 0xd0]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc eax
add eax, edx
mov dword [esi + 0x4c], eax
mov eax, 0x64
mov dword [ebp - 0xd8], eax
jmp 0x4ab8c5
movzx eax, byte [ebx + 0x43]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [ebp - 0xec], ecx
cmp ecx, eax
je 0x4ab719
test edx, edx
je 0x4ab661
push 0x204
push ebx
call fcn.0049c090
add esp, 8
mov byte [ebx + 0x43], 1
jmp 0x4ab6a8
test ecx, ecx
je 0x4ab686
cmp dword [ebx + 0xa0], 0
jle 0x4ab686
push str.cannot_commit_transaction___SQL_statements_in_progress
push esi
call fcn.004a5c80
add esp, 8
mov eax, 5
jmp 0x4ab2da
push 1
push esi
call fcn.004a5310
add esp, 8
mov dword [ebp - 0xd8], eax
test eax, eax
jne 0x4ab8c5
mov eax, dword [ebp - 0xec]
mov byte [ebx + 0x43], al
push esi
call fcn.004ac400
add esp, 4
cmp eax, 5
jne 0x4ab6f4
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x10c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x4c], eax
mov al, 1
sub al, byte [ebp - 0xec]
mov byte [ebx + 0x43], al
mov eax, 5
mov dword [ebp - 0xd8], eax
mov dword [esi + 0x50], eax
jmp 0x4ab8c5
push ebx
call fcn.00484f90
add esp, 4
cmp dword [esi + 0x50], 0
mov eax, 1
mov ecx, 0x65
cmove eax, ecx
mov dword [ebp - 0xd8], eax
jmp 0x4ab8c5
test ecx, ecx
jne 0x4ab736
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push esi
call fcn.004a5c80
add esp, 8
mov eax, 1
jmp 0x4ab2da
mov ecx, str.cannot_commit___no_transaction_is_active
test edx, edx
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, ecx
push eax
push esi
call fcn.004a5c80
add esp, 8
mov eax, 1
jmp 0x4ab2da
mov esi, dword [ebp - 0xd0]
xor ecx, ecx
cmp byte [ebx + 0x45], cl
mov eax, str.unknown_error
sete cl
lea ecx, [ecx*2 + 7]
mov dword [ebp - 0xd8], ecx
mov dword [esi + 0x50], ecx
cmp ecx, 0x204
je 0x4ab79b
movzx ecx, cl
cmp ecx, 0x1a
ja 0x4ab7a0
mov ecx, dword [ecx*4 + 0x511878]
test ecx, ecx
je 0x4ab7a0
mov eax, ecx
jmp 0x4ab7a0
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x5162f0
push esi
call fcn.004a5c80
mov eax, dword [ebp - 0xd8]
add esp, 0xc
jmp 0x4ab2da
mov eax, str.abort_due_to_ROLLBACK
push eax
push 0x5162f0
push esi
call fcn.004a5c80
mov eax, dword [ebp - 0xd8]
add esp, 0xc
mov dword [esi + 0x50], eax
cmp eax, 0xc0a
je 0x4ab805
movzx eax, al
cmp eax, 0xe
je 0x4ab7eb
cmp eax, 0xa
jne 0x4ab805
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x4ab800
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x4ab802
xor eax, eax
mov dword [ebx + 0x3c], eax
mov ecx, dword [ebp - 0xcc]
sub ecx, dword [ebp - 0x10c]
push dword [esi + 0x2c]
mov eax, 0x66666667
push dword [esi + 0xb0]
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 [ebp - 0xd8]
call fcn.0045aac0
push esi
call fcn.004ac400
add esp, 0x18
cmp dword [ebp - 0xd8], 0xc0a
jne 0x4ab87a
cmp byte [ebx + 0x45], 0
jne 0x4ab87a
cmp byte [ebx + 0x46], 0
jne 0x4ab87a
cmp dword [ebx + 0xa4], 0
mov byte [ebx + 0x45], 1
jle 0x4ab874
mov dword [ebx + 0xf8], 1
inc dword [ebx + 0x100]
mov cl, byte [ebp - 0x11d]
mov eax, 1
mov dword [ebp - 0xd8], eax
test cl, cl
je 0x4ab8c5
mov eax, dword [ebx + 0x10]
movzx esi, cl
dec esi
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.0049d000
add esp, 4
cmp esi, 1
je 0x4ab8b9
mov eax, dword [ebx + 0x10]
push dword [eax + 0x1c]
call fcn.0049d000
add esp, 4
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x138]
mov dword [ebx + 0x20], ecx
mov ecx, dword [ebp - 0x13c]
mov dword [ebx + 0x24], ecx
mov ecx, dword [ebp - 0xd4]
add dword [esi + 0x84], ecx
cmp dword [esi + 0x6c], 0
je 0x4ab8f8
push esi
call fcn.004b86e0
mov eax, dword [ebp - 0xd8]
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041a77c
mov esp, ebp
pop ebp
ret