Function at 0x10042d5d
Capabilities:
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x264
mov eax, dword [0x100c7034]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x20], 0
push edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x8c], 0
mov eax, dword [esi + 0x68]
mov ebx, dword [esi]
mov edi, dword [esi + 0x58]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], eax
xor al, al
mov byte [ebp - 0x6d], al
mov al, byte [ebx + 0x4e]
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x54], al
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], edi
call fcn.1003b370
cmp dword [ebx + 0x158], 0
je 0x10042404
mov ecx, dword [ebx + 0x160]
xor edx, edx
mov eax, dword [esi + 0xb4]
div ecx
sub ecx, edx
jmp 0x10042407
or ecx, 0xffffffff
mov eax, esi
mov dword [ebp - 0x78], ecx
cmp dword [eax + 0x28], 7
je 0x1004799c
mov dword [eax + 0x38], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x78], 0
cmp dword [ebx + 0x110], 0
mov dword [ebx + 0x1ac], 0
jne 0x10047963
mov eax, dword [eax + 0x24]
mov esi, dword [ebp - 0x24]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*4]
xor eax, eax
mov dword [ebp - 0x14], ecx
inc eax
mov cl, byte [ecx]
movzx edx, cl
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x3d], cl
mov dword [ebp - 0x2c], edx
cmp edx, 0xaa
ja case.0x1004246e.85
jmp dword [edx*4 + 0x10047b48]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
sub ecx, dword [ebp - 0x24]
lea esi, [eax + eax*4]
mov eax, 4
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov dword [edi + esi*8 + 4], edx
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
mov eax, dword [ecx + 8]
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
mov dword [ebp - 0x14], eax
mov eax, 0x80
mov ebx, dword [ebp - 0x4c]
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [edi + ecx*8], eax
mov eax, 4
mov dword [edi + ecx*8 + 4], edx
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [esi + eax*4 + 8]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x100424d3
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [edx + 4]
sub edx, dword [ebp - 0x24]
lea esi, [eax + eax*4]
mov eax, 4
mov ecx, dword [edi + esi*8]
mov word [edi + esi*8 + 8], ax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
lea eax, [ecx + ecx*4]
mov dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x24]
lea ecx, [esi + eax*4]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
je 0x10042a54
jmp 0x100425a7
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [ebp - 0x14]
cmp dword [edx + 4], 0
jne 0x10047455
mov ecx, dword [edi + 0xc8]
test ecx, ecx
je 0x10047455
mov eax, dword [ecx + 4]
dec dword [edi + 0xd0]
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0x2c]
add dword [ebx + 0x68], eax
mov dword [ebx + 0x64], eax
call fcn.1003c160
mov ecx, dword [ebp - 0x14]
mov ebx, edi
cmp dword [ecx + 8], 4
jne 0x1004260b
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov esi, dword [ebx + 0x68]
lea eax, [eax + eax*4]
mov edi, dword [ebx + 0x58]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x24], esi
lea ecx, [esi + eax*4]
mov dword [ebp - 0x28], edi
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov ebx, dword [ebp - 0x4c]
mov ecx, eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov ebx, dword [ebp - 0x4c]
mov edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ebp - 0x14]
mov dword [edx + 4], eax
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov ebx, dword [ebp - 0x4c]
mov ecx, eax
mov eax, 8
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [ebp - 0x1c]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov esi, eax
mov eax, dword [ebp - 0x14]
mov edi, dword [eax + 0x10]
mov ecx, edi
call fcn.1001c4f0
cmp byte [ebp - 0x54], 1
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], eax
je 0x10042744
push 0
push 1
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.100391f0
add esp, 0xc
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100472e6
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.10038500
test eax, eax
jne 0x1004799c
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x18], eax
mov eax, 0x800
or word [esi + 8], ax
cmp byte [ecx + 1], 0xf9
jne 0x10042734
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x10042734
mov ecx, ebx
call fcn.100191e0
mov ecx, dword [ebp - 0x14]
mov byte [ecx + 1], 0xf9
mov eax, dword [esi + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 4]
cmp eax, dword [ebx + 0x6c]
jg 0x100472e6
mov edi, dword [ebp - 0x28]
mov byte [ecx], 0x47
jmp 0x1004275b
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov edx, dword [ebp - 0x14]
mov ecx, eax
mov eax, 0xa02
mov word [ecx + 8], ax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [ebp - 0x54]
mov byte [ecx + 0xa], al
mov eax, edx
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x1004281a
lea esi, [eax + eax*4]
mov eax, edx
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
jne 0x1004281a
cmp dword [edi + esi*8 + 4], edx
jne 0x1004281a
mov esi, dword [ebp - 0x24]
mov eax, 0xa10
mov ebx, dword [ebp - 0x4c]
mov word [ecx + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov ebx, dword [ebp - 0x14]
mov edx, ebx
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov edi, dword [ebx + 0xc]
mov ecx, 1
sub edi, dword [ebx + 8]
mov edx, 0x101
cmp dword [ebx + 4], 0
lea esi, [eax + 0xc]
cmovne ecx, edx
mov dword [esi], 0
movzx ebx, cx
mov word [eax + 8], bx
test edi, edi
jle 0x1004281a
lea esp, [esp]
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.10038f10
dec edi
mov word [esi - 4], bx
mov dword [esi], 0
test edi, edi
jg 0x10042800
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov edx, 0xff41
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 1
jmp 0x100424de
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov esi, eax
mov eax, dword [ebp - 0x14]
push 0
push 0
mov ecx, esi
push dword [eax + 4]
mov edx, dword [eax + 0x10]
call fcn.100391f0
mov al, byte [ebp - 0x54]
add esp, 0xc
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x4c]
add ecx, 0x14
mov byte [esi + 0xa], al
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.10039070
test eax, eax
jne 0x100472e6
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov eax, 0x2400
test word [esi + 8], ax
je 0x100428d1
mov ecx, esi
call fcn.10038f10
movdqu xmm0, xmmword [edi - 0x28]
mov ecx, 0xebff
movdqu xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov dword [esi + 0x10], eax
mov ax, word [esi + 8]
and ax, cx
mov ecx, 0x840
or ax, cx
mov word [esi + 8], ax
jmp 0x10042a4b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x10042920
mov edx, edi
mov ecx, esi
call fcn.100391a0
mov eax, 0x1000
test word [esi + 8], ax
je 0x10042943
mov ecx, esi
call fcn.10038700
test eax, eax
jne 0x1004799c
add edi, 0x28
add esi, 0x28
dec dword [ebp - 0x3c]
jne 0x10042920
jmp 0x10042a4b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov edi, edi
push 0x1000
mov edx, edi
mov ecx, esi
call fcn.100390d0
mov eax, 0x1000
add esp, 4
test word [esi + 8], ax
je 0x1004299b
mov ecx, esi
call fcn.10038700
test eax, eax
jne 0x10047999
mov eax, ebx
dec ebx
test eax, eax
je 0x1004281a
add esi, 0x28
add edi, 0x28
jmp 0x10042970
mov ecx, dword [ebp - 0x14]
push 0x1000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.100390d0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
push dword [edi + eax*8 + 4]
push dword [edi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038f70
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + 8]
mov dword [ebp - 0x50], ecx
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [edx + 0xc]
movzx edx, word [ecx + 8]
mov dword [ebp - 0x64], edx
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov al, byte [esi + 8]
or al, dl
test al, 1
je 0x10042a62
mov ecx, edi
call fcn.10038f10
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
test dl, 0x12
jne 0x10042a93
mov dl, byte [ebp - 0x54]
push 0
call fcn.100387d0
add esp, 4
test eax, eax
jne 0x1004799c
mov eax, dword [ebp - 0x50]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx ecx, ax
mov dword [ebp - 0x64], ecx
jmp 0x10042abd
test edx, 0x4000
je 0x10042abd
call fcn.10038750
test eax, eax
jne 0x1004799c
mov eax, dword [ebp - 0x50]
mov ecx, 0xfffd
mov ax, word [eax + 8]
and ax, cx
movzx eax, ax
mov dword [ebp - 0x64], eax
movzx eax, word [esi + 8]
mov dword [ebp - 0x38], eax
test al, 0x12
jne 0x10042ad9
mov dl, byte [ebp - 0x54]
mov ecx, esi
push 0
call fcn.100387d0
add esp, 4
jmp 0x10042ae7
test eax, 0x4000
je 0x10042b01
mov ecx, esi
call fcn.10038750
test eax, eax
jne 0x1004799c
mov ax, word [esi + 8]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x50]
mov eax, dword [esi + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov dword [ebp - 0x58], eax
mov ecx, edx
mov eax, dword [ebx + 0x6c]
cdq
cmp ecx, edx
jg 0x100472e6
mov edx, dword [ebp - 0x58]
jl 0x10042b29
cmp edx, eax
ja 0x100472e6
xor eax, eax
mov ecx, edi
cmp edi, esi
sete al
add edx, 3
push eax
call fcn.10038520
add esp, 4
test eax, eax
jne 0x1004799c
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [edi + 8], ax
cmp edi, esi
je 0x10042b76
push dword [esi + 0xc]
push dword [esi + 0x10]
push dword [edi + 0x10]
call sub.MSVCR120.dll_memcpy
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov word [esi + 8], ax
mov ebx, dword [ebp - 0x50]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 0x10]
push eax
call sub.MSVCR120.dll_memcpy
mov eax, dword [ebp - 0x64]
add esp, 0xc
mov ecx, dword [ebp - 0x58]
mov word [ebx + 8], ax
mov eax, dword [edi + 0x10]
mov byte [ecx + eax], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 1], 0
mov eax, dword [edi + 0x10]
mov byte [ecx + eax + 2], 0
mov eax, 0x200
or word [edi + 8], ax
mov al, byte [ebp - 0x54]
mov dword [edi + 0xc], ecx
mov byte [edi + 0xa], al
jmp 0x10042a4b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov ecx, esi
mov dword [ebp - 0x50], esi
call fcn.10042300
movzx ebx, ax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov ecx, eax
mov dword [ebp - 0x38], eax
call fcn.10042300
movzx ecx, ax
mov eax, dword [ebp - 0x14]
and cl, bl
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x38]
mov ax, word [eax + 8]
or ax, word [esi + 8]
movzx eax, ax
test cl, 4
je 0x10042d18
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x38]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
movzx eax, byte [eax]
mov esi, dword [ebx]
add eax, 0xffffff97
mov edi, dword [ebx + 4]
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x94], edi
cmp eax, 3
ja case.default.0x10042c47
jmp dword [eax*4 + 0x10047df4]
push edx
push ecx
lea ecx, [ebp - 0x98]
call fcn.1001d7d0
add esp, 8
test eax, eax
je 0x10042ceb
mov esi, dword [ebp - 0x50]
jmp 0x10042d27
push edx
push ecx
lea ecx, [ebp - 0x98]
call fcn.1001d870
add esp, 8
test eax, eax
jne 0x10042c66
jmp 0x10042ceb
push edx
push ecx
lea ecx, [ebp - 0x98]
call fcn.1001d8c0
add esp, 8
test eax, eax
jne 0x10042c66
jmp 0x10042ceb
mov eax, ecx
or eax, edx
je 0x10042d1c
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x10042cb5
test esi, esi
jne 0x10042cb5
cmp edi, 0x80000000
je 0x10042c66
push edx
push ecx
push edi
push esi
call fcn.100b0f30
jmp 0x10042cdf
mov eax, ecx
or eax, edx
je 0x10042d1c
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x10042cd6
mov ecx, 1
xor edx, edx
push edx
push ecx
push edi
push esi
call fcn.100b10c0
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x64]
mov edx, 0x3e40
mov eax, dword [ebp - 0x98]
mov dword [ecx], eax
mov eax, dword [ebp - 0x94]
mov dword [ecx + 4], eax
mov ax, word [ecx + 8]
and ax, dx
or ax, 4
mov word [ecx + 8], ax
jmp 0x10042a4b
test al, 1
je 0x10042d24
mov ecx, dword [ebp - 0x64]
jmp 0x10042a46
mov ebx, dword [ebp - 0x38]
mov ecx, esi
call fcn.10038b30
mov ecx, ebx
movsd qword [ebp - 0x48], xmm0
call fcn.10038b30
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
add eax, 0xffffff97
cmp eax, 3
ja case.default.0x10042d48
jmp dword [eax*4 + 0x10047e04]
addsd xmm0, qword [ebp - 0x48]
jmp 0x10042dc6
subsd xmm0, qword [ebp - 0x48]
jmp 0x10042dc6
mulsd xmm0, qword [ebp - 0x48]
jmp 0x10042dc6
movsd xmm1, qword [ebp - 0x48]
xorps xmm2, xmm2
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x10042d1c
divsd xmm0, xmm1
jmp 0x10042dc6
mov ecx, esi
call fcn.10038aa0
mov ecx, ebx
mov esi, eax
mov edi, edx
call fcn.10038aa0
mov ecx, eax
mov dword [ebp - 0x94], edx
mov eax, esi
mov dword [ebp - 0x98], ecx
or eax, edi
je 0x10042d1c
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
jne 0x10042db6
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push ecx
call fcn.100b10c0
mov ecx, eax
call fcn.100b16ef
call fcn.1001c4b0
test eax, eax
jne 0x10042d1c
mov ecx, dword [ebp - 0x64]
mov edx, 0x3e40
mov ax, word [ecx + 8]
and ax, dx
movsd qword [ecx], xmm0
or ax, 8
mov word [ecx + 8], ax
jmp 0x10042a4b
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
test eax, eax
je 0x10042a54
lea eax, [eax + eax*4]
push 0
push 0
lea ecx, [edi + eax*8]
call fcn.10038f70
mov ecx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov al, byte [ecx + 8]
or al, byte [esi + 8]
mov dword [ebp - 0x30], edx
test al, 1
je 0x10042e6a
mov ecx, edx
call fcn.10038f10
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
call fcn.10038aa0
mov ebx, eax
mov edi, edx
mov ecx, esi
mov dword [ebp - 0x100], ebx
mov dword [ebp - 0xfc], edi
call fcn.10038aa0
mov esi, eax
mov eax, dword [ebp - 0x14]
mov cl, byte [eax]
cmp cl, 0x65
jne 0x10042e9b
and ebx, esi
and edi, edx
jmp 0x10042f1c
cmp cl, 0x66
jne 0x10042ea6
or ebx, esi
or edi, edx
jmp 0x10042f1c
mov eax, esi
or eax, edx
je 0x10042f1c
test edx, edx
jg 0x10042eda
jl 0x10042eb6
test esi, esi
jae 0x10042ecf
mov al, 0xcf
sub al, cl
mov cl, al
cmp edx, 0xffffffff
jl 0x10042eda
jg 0x10042ec8
cmp esi, 0xffffffc0
jbe 0x10042eda
neg esi
adc edx, 0
neg edx
test edx, edx
jl 0x10042efc
jg 0x10042eda
cmp esi, 0x40
jb 0x10042efc
test edi, edi
jg 0x10042ef3
jl 0x10042ee4
test ebx, ebx
jae 0x10042ef3
cmp cl, 0x67
je 0x10042ef3
or eax, 0xffffffff
cdq
mov ebx, eax
mov edi, edx
jmp 0x10042f1c
xor eax, eax
cdq
mov ebx, eax
mov edi, edx
jmp 0x10042f1c
movq xmm1, qword [ebp - 0x100]
movd xmm0, esi
cmp cl, 0x67
jne 0x10042f3d
psllq xmm1, xmm0
movq qword [ebp - 0x48], xmm1
mov ebx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
mov edx, 0x3e40
mov ax, word [ecx + 8]
and ax, dx
mov dword [ecx], ebx
or ax, 4
mov dword [ecx + 4], edi
mov word [ecx + 8], ax
jmp 0x10042a4b
psrlq xmm1, xmm0
movq qword [ebp - 0x48], xmm1
test edi, edi
jg 0x10042f16
jl 0x10042f50
test ebx, ebx
jae 0x10042f16
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, esi
or edx, 0xffffffff
call fcn.100b1180
mov ebx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x44]
or ebx, eax
or edi, edx
jmp 0x10042f1c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov ecx, esi
call fcn.10038c10
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [ebp - 0x1c]
adc dword [esi + 4], edx
add ecx, 0x14
mov esi, dword [ebp - 0x24]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
movzx eax, word [esi + 8]
test al, 4
jne 0x10042ff1
test al, 8
jne 0x10042fcb
test al, 2
je 0x10042fd5
mov edx, 1
mov ecx, esi
call fcn.100420f0
jmp 0x10042fd2
mov ecx, esi
call fcn.10038bb0
mov ecx, dword [ebp - 0x14]
movzx eax, word [esi + 8]
test al, 4
jne 0x10042ff1
cmp dword [ecx + 8], 0
jne 0x100424a7
mov eax, 0x14
jmp 0x100476b1
mov ebx, dword [ebp - 0x4c]
and eax, 0x3e40
or eax, 4
add ecx, 0x14
mov word [esi + 8], ax
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x24
lea ecx, [edi + eax*8]
je 0x10042a51
call fcn.10038c80
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, 0x4000
test word [esi + 8], ax
je 0x10043061
mov ecx, esi
call fcn.10038750
test eax, eax
jne 0x10047a06
mov eax, dword [ebp - 0x14]
mov ecx, esi
push dword [ebp - 0x54]
mov dl, byte [eax + 8]
call fcn.10038e00
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ebx, [edi + eax*8]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
movzx edx, word [edi + eax*8 + 8]
lea esi, [edi + eax*8]
movzx eax, word [ebx + 8]
mov ecx, edx
or ecx, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], edx
test cl, 1
je 0x10043167
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
test al, al
jns 0x1004310d
mov cl, dl
mov al, cl
and al, byte [ebp - 0x34]
test al, 1
je 0x100430f6
test edx, 0x100
jne 0x100430f6
mov eax, dword [ebp - 0x14]
xor ecx, ecx
movzx eax, byte [eax]
movzx edx, byte [eax + 0x100be910]
jmp 0x100431e3
test cl, 1
mov ecx, 0
sete cl
lea ecx, [ecx*2 - 1]
jmp 0x10043309
mov esi, dword [ebp - 0x24]
test al, 0x20
je 0x1004314e
mov eax, dword [ebp - 0x14]
mov edx, 0x3e40
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x8c], 1
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov ax, word [edi + ecx*8 + 8]
and ax, dx
or ax, 1
mov word [edi + ecx*8 + 8], ax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
test al, 0x10
jne 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edi, dword [ebp - 0x14]
mov al, byte [edi + 2]
and al, 0x47
cmp al, 0x43
jl 0x10043288
test cl, 2
je 0x100431a7
mov al, byte [ebp - 0x34]
and al, 0x2e
cmp al, 2
jne 0x10043195
xor edx, edx
mov ecx, ebx
call fcn.100420f0
movzx eax, word [esi + 8]
mov dword [ebp - 0x2c], eax
mov al, byte [ebp - 0x2c]
and al, 0x2e
cmp al, 2
jne 0x100431a7
xor edx, edx
mov ecx, esi
call fcn.100420f0
mov al, byte [esi + 8]
and al, byte [ebx + 8]
test al, 4
je 0x100432f8
mov edi, dword [esi + 4]
mov edx, dword [ebx + 4]
mov ecx, dword [esi]
mov eax, dword [ebx]
cmp edi, edx
jl 0x10043273
jg 0x100431d1
cmp ecx, eax
jbe 0x10043261
mov ecx, 1
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
movzx edx, byte [eax + 0x100bd120]
movzx eax, word [ebp - 0x2c]
mov word [esi + 8], ax
movzx eax, word [ebp - 0x34]
mov word [ebx + 8], ax
mov ebx, dword [ebp - 0x14]
movzx ebx, word [ebx + 2]
test bl, 0x20
je 0x10043337
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x8c], ecx
mov eax, dword [eax + 8]
lea esi, [eax + eax*4]
test bl, 8
je 0x1004322a
mov ecx, dword [ebp - 0x14]
xor eax, eax
cmp byte [ecx], 0x35
sete al
cmp eax, edx
je 0x1004281d
mov edi, dword [ebp - 0x28]
mov eax, 0x3e40
mov ebx, dword [ebp - 0x4c]
mov cx, word [edi + esi*8 + 8]
and cx, ax
mov eax, edx
or cx, 4
cdq
mov word [edi + esi*8 + 8], cx
mov ecx, dword [ebp - 0x14]
mov dword [edi + esi*8], eax
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov dword [edi + esi*8 + 4], edx
mov esi, dword [ebp - 0x24]
jmp 0x10042450
cmp edi, edx
jg 0x100430e2
jl 0x10043273
cmp ecx, eax
jae 0x100430e2
mov eax, dword [ebp - 0x14]
or ecx, 0xffffffff
movzx eax, byte [eax]
movzx edx, byte [eax + 0x100ba3f0]
jmp 0x100431e3
cmp al, 0x42
jne 0x100432f8
mov al, byte [ebp - 0x34]
test al, 2
jne 0x100432ca
test al, 0x2c
je 0x100432ca
mov dl, byte [ebp - 0x54]
mov ecx, ebx
push 1
call fcn.100387d0
mov ax, word [ebx + 8]
mov ecx, 0x3e40
xor ax, word [ebp - 0x34]
add esp, 4
and ax, cx
xor word [ebp - 0x34], ax
cmp ebx, esi
jne 0x100432ca
mov eax, dword [ebp - 0x34]
or eax, 2
movzx eax, ax
mov dword [ebp - 0x2c], eax
mov al, byte [ebp - 0x2c]
test al, 2
jne 0x100432f8
test al, 0x2c
je 0x100432f8
mov dl, byte [ebp - 0x54]
mov ecx, esi
push 1
call fcn.100387d0
mov ax, word [esi + 8]
mov ecx, 0x3e40
xor ax, word [ebp - 0x2c]
add esp, 4
and ax, cx
xor word [ebp - 0x2c], ax
push dword [edi + 0x10]
mov edx, ebx
mov ecx, esi
call fcn.1003df70
add esp, 4
mov ecx, eax
test ecx, ecx
jns 0x1004331f
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
movzx edx, byte [eax + 0x100ba3f0]
jmp 0x100431e3
jne 0x100431d6
mov eax, dword [ebp - 0x14]
movzx eax, byte [eax]
movzx edx, byte [eax + 0x100be910]
jmp 0x100431e3
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
test edx, edx
jne 0x100424aa
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
cmp dword [ebp - 0x8c], 0
mov ecx, dword [ebp - 0x14]
jne 0x100424aa
mov ebx, dword [ebp - 0x4c]
add ecx, 0x14
jmp 0x10042450
mov ebx, dword [ebp - 0x14]
test byte [ebx + 2], 1
jne 0x1004337e
xor eax, eax
jmp 0x10043384
mov eax, dword [ebx - 4]
add eax, 4
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp - 0x14]
mov edx, dword [ebx + 0x10]
mov ebx, dword [ebx + 4]
mov dword [ebp - 0x64], ebx
mov ebx, dword [esi + 8]
xor esi, esi
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x58], ebx
test ecx, ecx
jle 0x10042a4e
lea ebx, [edx + 0x14]
nop
test eax, eax
je 0x100433b9
mov edi, dword [eax + esi*4]
jmp 0x100433bb
mov edi, esi
mov eax, dword [edx + 0x10]
mov ecx, dword [ebp - 0x28]
push dword [ebx]
movzx eax, byte [esi + eax]
and eax, 1
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x58]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [ebp - 0x64]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.1003df70
mov edx, eax
add esp, 4
mov dword [ebp - 0x8c], edx
test edx, edx
jne 0x1004340b
mov eax, dword [ebp - 0x3c]
inc esi
mov edx, dword [ebp - 0x38]
add ebx, 4
cmp esi, dword [ebp - 0x30]
jl 0x100433b0
jmp 0x10042a4b
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
je 0x10043440
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x28]
add eax, edi
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
jne 0x10043438
mov eax, dword [ebp - 0x58]
add eax, edi
lea eax, [eax + eax*4]
test byte [ecx + eax*8 + 8], 1
je 0x10043440
neg edx
mov dword [ebp - 0x8c], edx
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x14]
je 0x1004281d
mov edi, dword [ebp - 0x28]
neg edx
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x8c], edx
jmp 0x10042450
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x14]
test edx, edx
jns 0x10043490
mov eax, dword [ecx + 4]
mov ebx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
jne 0x100434ac
mov eax, dword [ecx + 8]
mov ebx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov eax, dword [ecx + 0xc]
mov ebx, dword [ebp - 0x4c]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov ebx, dword [ebp - 0x14]
mov edx, 2
mov eax, dword [ebx + 4]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038b60
mov ecx, dword [ebx + 8]
mov edx, 2
mov esi, eax
lea ecx, [ecx + ecx*4]
lea ecx, [edi + ecx*8]
call fcn.10038b60
mov ecx, ebx
lea eax, [eax + esi*2]
cmp byte [ecx], 0x2c
jne 0x10043505
movzx edx, byte [esi + eax + 0x100bb02c]
jmp 0x1004350d
movzx edx, byte [esi + eax + 0x100baa10]
mov eax, dword [ecx + 0xc]
mov esi, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
cmp edx, 2
jne 0x10043531
mov ax, word [edi + ecx*8 + 8]
mov edx, 0x3e40
and ax, dx
or ax, 1
jmp 0x100424de
mov eax, edx
cdq
mov dword [edi + ecx*8], eax
mov ax, word [edi + ecx*8 + 8]
mov dword [edi + ecx*8 + 4], edx
mov edx, 0x3e40
and ax, dx
or ax, 4
jmp 0x100424de
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038b60
mov ecx, dword [ebp - 0x14]
xor eax, dword [ecx + 0x10]
cdq
push edx
push eax
jmp 0x100429f1
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
lea ecx, [edi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jne 0x100435bc
xor edx, edx
call fcn.10038b60
neg eax
mov ecx, esi
sbb eax, eax
inc eax
cdq
push edx
push eax
call fcn.10038f70
mov ecx, dword [ebp - 0x14]
add esp, 8
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, esi
call fcn.10038f10
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10038f10
test byte [edi + 8], 1
jne 0x1004281a
mov eax, 4
mov ecx, edi
mov word [esi + 8], ax
call fcn.10038aa0
not eax
not edx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x10042a4b
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebx + 0xc8]
test esi, esi
je 0x10043688
sub ecx, dword [ebx + 0x68]
mov eax, 0x66666667
mov esi, dword [esi + 0x18]
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, ecx
and ecx, 7
shr edx, 3
shl eax, cl
mov bl, byte [edx + esi]
test bl, al
jne 0x100424a4
mov al, 1
shl al, cl
mov ecx, dword [ebp - 0x14]
or al, bl
mov ebx, dword [ebp - 0x18]
mov byte [edx + esi], al
mov esi, dword [ebp - 0x24]
mov eax, dword [ebx + 0x68]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov eax, dword [ebx + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 4]
je 0x100424a7
mov eax, dword [ebx + 0x68]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax + 4]
mov dword [ecx + 4], eax
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038b60
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
sete dl
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038b60
mov ecx, dword [ebp - 0x14]
test eax, eax
je 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
jne 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 1
je 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
cmp byte [eax + 2], 0
je 0x10042a51
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038f10
mov ecx, dword [ebp - 0x14]
jmp 0x100424aa
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x74], eax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x7c]
mov dword [ebp - 0x7c], eax
call fcn.1003d6f0
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x74]
mov eax, dword [eax + 0xc]
mov edx, dword [esi + 0x48]
mov dword [ebp - 0x34], edx
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov edi, dword [ebp - 0x18]
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x2c], ecx
cmp eax, dword [edi + 0x20]
je 0x100438a1
cmp byte [esi + 2], 0
je 0x1004380b
cmp byte [esi], 3
jne 0x10042a46
mov eax, dword [esi + 0x20]
lea edi, [esi + 0x54]
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [edi], eax
mov dword [esi + 0x50], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + ecx*8 + 0x10]
mov dword [esi + 0x4c], eax
jmp 0x1004383f
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.10030350
mov edx, dword [ebp - 0x74]
mov ecx, esi
mov eax, dword [esi + 0x2c]
mov dword [edx + 0x50], eax
lea edi, [edx + 0x54]
mov edx, edi
call fcn.10030960
mov esi, dword [ebp - 0x74]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x50]
cmp eax, dword [ebx + 0x6c]
ja 0x100472e6
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x20]
mov dword [esi + 0x1c], eax
mov ecx, dword [esi + 0x4c]
mov al, byte [ecx]
cmp al, 0x80
jae 0x1004385d
movzx eax, al
mov dword [edx], eax
mov eax, 1
jmp 0x10043868
call fcn.1001d610
mov edx, dword [ebp - 0x34]
movzx eax, al
movzx eax, al
mov dword [esi + 0x30], eax
xor eax, eax
mov word [esi + 0x3a], ax
mov eax, dword [edi]
cmp eax, dword [edx]
jae 0x10043963
mov dword [esi + 0x4c], 0
mov dword [edi], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x10043a55
cmp eax, dword [esi + 0x50]
ja 0x10043a55
movzx eax, word [esi + 0x3a]
mov edi, dword [ebp - 0x7c]
cmp eax, edi
jg 0x10043a87
mov eax, dword [esi + 0x30]
cmp eax, dword [edx]
jae 0x10043a7d
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x1004390d
xorps xmm0, xmm0
lea eax, [ebp - 0x210]
movdqu xmmword [ebp - 0x210], xmm0
push eax
movdqu xmmword [ebp - 0x200], xmm0
movq qword [ebp - 0x1f0], xmm0
push dword [edx]
mov ecx, dword [esi + 0x28]
xor edx, edx
call fcn.10039520
add esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x200]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x64], eax
movzx ecx, word [esi + 0x3a]
mov esi, dword [esi + 0x30]
add esi, eax
mov dword [ebp - 0x3c], ecx
mov eax, dword [edx]
add eax, dword [ebp - 0x64]
mov edi, dword [edx + ecx*4]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x74]
add eax, 0x58
mov dword [ebp - 0x50], 0
lea eax, [eax + ecx*4]
mov dword [ebp - 0x38], eax
jmp 0x10043940
movzx ebx, byte [esi]
mov dword [ebp - 0xa0], ebx
mov dword [eax], ebx
cmp ebx, 0x80
jae 0x10043968
movzx eax, byte [ebx + 0x100bb648]
inc esi
cdq
add edi, eax
adc dword [ebp - 0x50], edx
jmp 0x1004399a
mov eax, dword [esi + 0x4c]
jmp 0x1004390a
lea edx, [ebp - 0xa0]
mov ecx, esi
call fcn.1001d610
mov ebx, dword [ebp - 0xa0]
mov ecx, ebx
movzx eax, al
add esi, eax
mov eax, dword [ebp - 0x38]
mov dword [eax], ebx
call fcn.1003d740
mov edx, dword [ebp - 0x50]
add edi, eax
mov ecx, dword [ebp - 0x3c]
adc edx, 0
mov dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x38], eax
mov dword [edx + ecx*4], edi
mov edx, dword [ebp - 0x50]
cmp ecx, dword [ebp - 0x7c]
jg 0x100439bf
cmp esi, dword [ebp - 0x58]
jb 0x10043940
mov eax, dword [ebp - 0x58]
jmp 0x100439c6
mov eax, dword [ebp - 0x58]
cmp esi, eax
jb 0x100439d8
cmp esi, eax
mov eax, dword [ebp - 0x74]
ja 0x100439e6
cmp edi, dword [eax + 0x50]
jne 0x100439e6
test edx, edx
jne 0x100439e6
jmp 0x100439db
mov eax, dword [ebp - 0x74]
test edx, edx
jb 0x100439f3
ja 0x100439e6
cmp edi, dword [eax + 0x50]
jbe 0x100439f3
mov ecx, dword [ebp - 0x34]
cmp dword [ecx], 0
jne 0x10043a41
mov esi, dword [ebp - 0x58]
xor ecx, ecx
sub esi, dword [ebp - 0x64]
mov word [eax + 0x3a], cx
mov dword [eax + 0x30], esi
mov esi, dword [ebp - 0x74]
cmp dword [esi + 0x4c], 0
jne 0x10043a11
lea ecx, [ebp - 0x210]
call fcn.100389f0
mov edi, dword [ebp - 0x7c]
movzx eax, word [esi + 0x3a]
cmp eax, edi
jg 0x10043a91
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
cmp byte [eax + 1], 0xf5
jne 0x10042a46
mov edx, dword [eax + 0x10]
push 0x800
call fcn.100390d0
add esp, 4
jmp 0x10042a4b
cmp dword [eax + 0x4c], 0
jne 0x10043a52
lea ecx, [ebp - 0x210]
call fcn.100389f0
mov ebx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x24]
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x10047509
mov edi, dword [ebp - 0x28]
lea eax, [eax + eax*4]
mov ebx, dword [ebp - 0x4c]
lea eax, [eax - 5]
lea ecx, [esi + eax*4]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
xor ebx, ebx
mov dword [ebp - 0xa0], ebx
jmp 0x10043a14
mov ebx, dword [esi + edi*4 + 0x58]
mov dword [ebp - 0xa0], ebx
mov ecx, dword [ebp - 0x2c]
mov eax, 0x2400
test word [ecx + 8], ax
je 0x10043aa7
call fcn.10038f10
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x34]
mov eax, dword [esi + 0x54]
cmp eax, dword [edx + edi*4 + 4]
jb 0x10043b58
mov eax, dword [ebp - 0x7c]
mov edi, dword [esi + 0x4c]
add edi, dword [edx + eax*4]
cmp ebx, 0xc
jae 0x10043ae9
push ecx
mov ecx, edi
mov edx, ebx
call fcn.1003d870
add esp, 4
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov al, byte [ebp - 0x54]
lea esi, [ebx - 0xc]
shr esi, 1
mov dword [ecx + 0xc], esi
mov byte [ecx + 0xa], al
lea edx, [esi + 2]
cmp dword [ecx + 0x18], edx
jge 0x10043b1f
mov eax, 1
push 0
mov word [ecx + 8], ax
call fcn.10038520
add esp, 4
test eax, eax
jne 0x10047999
mov ecx, dword [ebp - 0x2c]
jmp 0x10043b25
mov eax, dword [ecx + 0x14]
mov dword [ecx + 0x10], eax
push esi
push edi
push dword [ecx + 0x10]
call sub.MSVCR120.dll_memcpy
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
and ebx, 1
mov eax, dword [ecx + 0x10]
mov byte [esi + eax], 0
mov eax, dword [ecx + 0x10]
mov byte [esi + eax + 1], 0
mov ax, word [ebx*2 + 0x100ba9e4]
mov word [ecx + 8], ax
jmp 0x10042a4b
mov al, byte [ebp - 0x54]
mov byte [ecx + 0xa], al
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x10043b77
cmp ebx, 0xc
jb 0x10043b73
test bl, 1
je 0x10043b85
test al, al
js 0x10043b85
mov ecx, ebx
call fcn.1003d740
test eax, eax
jne 0x10043b90
mov ecx, dword [ebp - 0x2c]
push ecx
mov ecx, 0x100bf5d0
jmp 0x10043ac8
mov edi, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x28]
push edi
push eax
mov eax, dword [ebp - 0x7c]
mov edx, dword [edx + eax*4]
call fcn.10039520
add esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100479fe
mov ecx, dword [edi + 0x10]
mov edx, ebx
push edi
call fcn.1003d870
mov eax, 0xefff
add esp, 4
and word [edi + 8], ax
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
nop
push dword [ebp - 0x54]
mov dl, byte [edi]
mov ecx, esi
call fcn.10042180
add esp, 4
cmp byte [edi], 0x45
jne 0x10043c40
movzx ebx, word [esi + 8]
test bl, 4
je 0x10043c40
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp edx, 0x7fff
jg 0x10043c2a
jl 0x10043c11
cmp ecx, 0xffffffff
ja 0x10043c2a
cmp edx, 0xffff8000
jl 0x10043c2a
jg 0x10043c1f
test ecx, ecx
jb 0x10043c2a
and ebx, 0xfffb
or ebx, 0x20
jmp 0x10043c3c
call fcn.100b16ef
and ebx, 0xfffb
movsd qword [esi], xmm0
or ebx, 8
mov word [esi + 8], bx
inc edi
cmp byte [edi], 0
je 0x1004281a
add esi, 0x28
jmp 0x10043be0
mov ebx, dword [ebp - 0x14]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x28]
xor edx, edx
movlpd qword [ebp - 0x60], xmm0
mov dword [ebp - 0x34], edx
mov eax, dword [ebx + 4]
mov edi, dword [ebx + 0x10]
movlpd qword [ebp - 0x68], xmm0
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x38], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x18]
movzx eax, byte [eax + 0x93]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [ebp - 0x3c], eax
test edi, edi
je 0x10043cd8
lea esi, [ecx + 8]
push dword [ebp - 0x54]
mov dl, byte [edi]
lea ecx, [esi - 8]
call fcn.10042180
add esp, 4
cmp byte [edi], 0x45
jne 0x10043ccc
movzx eax, word [esi]
test al, 4
je 0x10043ccc
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x10043ca5
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x60]
add esi, 0x1c
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x58], eax
movzx ebx, word [esi - 0x14]
test bl, 1
je 0x10043d11
and ebx, 0x4000
neg ebx
sbb ebx, ebx
and ebx, 0xa
inc edx
mov dword [esi], ebx
jmp 0x10043efb
test bl, 0x24
je 0x10043e6d
cmp dword [esi - 0x18], 0
mov eax, dword [esi - 0x1c]
jg 0x10043d34
jl 0x10043d29
test eax, eax
jae 0x10043d34
mov edx, eax
mov eax, dword [esi - 0x18]
not edx
not eax
jmp 0x10043d39
mov edx, eax
mov eax, dword [esi - 0x18]
inc dword [ebp - 0x34]
test eax, eax
ja 0x10043dfe
jb 0x10043d4b
cmp edx, 0x7f
ja 0x10043d8f
mov eax, dword [esi - 0x1c]
and eax, 1
mov dword [ebp - 0x5c], 0
cmp eax, dword [esi - 0x1c]
jne 0x10043d78
mov eax, dword [ebp - 0x5c]
cmp eax, dword [esi - 0x18]
jne 0x10043d78
cmp dword [ebp - 0x44], 4
jl 0x10043d78
lea eax, [edx + 8]
mov edx, dword [ebp - 0x34]
mov dword [esi], eax
jmp 0x10043efe
mov edx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x2c], ecx
adc edi, 0
mov dword [esi], 1
jmp 0x10043efe
test eax, eax
ja 0x10043dfe
jb 0x10043d9d
cmp edx, 0x7fff
ja 0x10043db4
mov edx, dword [ebp - 0x34]
add ecx, 2
mov dword [ebp - 0x2c], ecx
adc edi, 0
mov dword [esi], 2
jmp 0x10043efe
test eax, eax
ja 0x10043dfe
jb 0x10043dc2
cmp edx, 0x7fffff
ja 0x10043dd9
mov edx, dword [ebp - 0x34]
add ecx, 3
mov dword [ebp - 0x2c], ecx
adc edi, 0
mov dword [esi], 3
jmp 0x10043efe
test eax, eax
ja 0x10043dfe
jb 0x10043de7
cmp edx, 0x7fffffff
ja 0x10043dfe
mov edx, dword [ebp - 0x34]
add ecx, 4
mov dword [ebp - 0x2c], ecx
adc edi, 0
mov dword [esi], 4
jmp 0x10043efe
cmp eax, 0x7fff
ja 0x10043e23
jb 0x10043e0c
cmp edx, 0xffffffff
ja 0x10043e23
mov edx, dword [ebp - 0x34]
add ecx, 6
mov dword [ebp - 0x2c], ecx
adc edi, 0
mov dword [esi], 5
jmp 0x10043efe
add ecx, 8
mov dword [ebp - 0x2c], ecx
adc edi, 0
test bl, 0x20
je 0x10043e5f
mov edx, dword [esi - 0x18]
mov ecx, dword [esi - 0x1c]
call fcn.100b16ef
mov ecx, dword [ebp - 0x2c]
and ebx, 0xffdf
mov edx, dword [ebp - 0x34]
or ebx, 8
movsd qword [esi - 0x1c], xmm0
mov word [esi - 0x14], bx
mov dword [esi], 7
jmp 0x10043efe
mov edx, dword [ebp - 0x34]
mov dword [esi], 6
jmp 0x10043efe
test bl, 8
je 0x10043e84
inc edx
mov dword [esi], 7
add ecx, 8
mov dword [ebp - 0x2c], ecx
adc edi, 0
jmp 0x10043efb
mov edx, dword [esi - 0x10]
mov eax, ebx
shr eax, 1
and eax, 1
mov dword [ebp - 0x5c], edx
lea eax, [eax + edx*2]
add eax, 0xc
mov dword [ebp - 0x64], eax
test ebx, 0x4000
je 0x10043edb
mov edx, dword [esi - 0x1c]
lea eax, [eax + edx*2]
mov dword [ebp - 0x64], eax
mov eax, ecx
or eax, edi
je 0x10043ecc
lea ecx, [esi - 0x1c]
call fcn.10038750
test eax, eax
jne 0x10047999
mov edx, dword [ebp - 0x5c]
add edx, dword [esi - 0x1c]
mov ecx, dword [ebp - 0x2c]
jmp 0x10043ed8
mov eax, edx
cdq
add dword [ebp - 0x58], eax
adc dword [ebp - 0x50], edx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x64]
add ecx, edx
push 0
push eax
mov dword [ebp - 0x2c], ecx
adc edi, 0
call fcn.1001d690
mov edx, dword [ebp - 0x34]
add esp, 8
mov ecx, dword [ebp - 0x2c]
add edx, eax
mov eax, dword [ebp - 0x64]
mov dword [esi], eax
mov dword [ebp - 0x34], edx
lea eax, [esi - 0x1c]
cmp eax, dword [ebp - 0x38]
je 0x10043f0e
sub esi, 0x28
jmp 0x10043cf3
cmp edx, 0x7e
jle 0x10043f39
mov eax, edx
cdq
push edx
push eax
call fcn.1001d690
mov esi, eax
mov eax, dword [ebp - 0x34]
add eax, esi
mov dword [ebp - 0x34], eax
cdq
push edx
push eax
call fcn.1001d690
mov edx, dword [ebp - 0x34]
add esp, 0x10
cmp esi, eax
jge 0x10043f3d
inc edx
mov dword [ebp - 0x34], edx
mov esi, dword [ebp - 0x2c]
mov eax, edx
cdq
add esi, eax
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x3c]
mov ebx, edx
adc edi, ebx
mov dword [ebp - 0x5c], ebx
mov ecx, esi
add ecx, dword [ebp - 0x58]
mov eax, dword [eax + 0x18]
adc edi, dword [ebp - 0x50]
cdq
cmp edi, edx
jg 0x10043f6d
jl 0x10043f68
cmp ecx, eax
ja 0x10043f6d
mov edi, dword [ebp - 0x3c]
jmp 0x10043fb1
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebx + 0x6c]
cdq
cmp edi, edx
jg 0x100472e6
jl 0x10043f86
cmp ecx, eax
ja 0x100472e6
mov edi, dword [ebp - 0x3c]
cmp dword [edi + 0x18], esi
jge 0x10043fa9
push 0
mov edx, esi
mov ecx, edi
call fcn.10038520
add esp, 4
test eax, eax
jne 0x1004799c
mov ebx, dword [ebp - 0x5c]
jmp 0x10043fb7
and word [edi + 8], 0x2d
mov ebx, dword [ebp - 0x5c]
mov eax, dword [edi + 0x14]
mov dword [edi + 0x10], eax
mov ecx, dword [ebp - 0x58]
mov eax, 0x10
mov word [edi + 8], ax
mov eax, ecx
or eax, dword [ebp - 0x50]
mov dword [edi + 0xc], esi
je 0x10043fd8
mov eax, 0x4010
mov dword [edi], ecx
mov word [edi + 8], ax
mov eax, dword [ebp - 0x34]
mov esi, dword [edi + 0x10]
lea edi, [esi + eax]
cmp eax, 0x80
jae 0x10043ff1
mov byte [esi], al
mov eax, 1
jmp 0x10043fff
push ebx
push dword [ebp - 0x44]
mov ecx, esi
call fcn.1001d420
add esp, 8
mov ebx, dword [ebp - 0x38]
movzx eax, al
add esi, eax
jmp 0x10044010
mov ebx, dword [ebx + 0x1c]
cmp ebx, 0x80
jae 0x10044024
mov byte [esi], bl
mov eax, 1
jmp 0x10044031
push 0
push ebx
mov ecx, esi
call fcn.1001d420
add esp, 8
push ebx
mov ebx, dword [ebp - 0x38]
mov ecx, edi
movzx eax, al
mov edx, ebx
add esi, eax
call fcn.1003d760
add ebx, 0x28
add esp, 4
add edi, eax
mov dword [ebp - 0x38], ebx
cmp ebx, dword [ebp - 0x30]
jbe 0x10044010
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
xorps xmm0, xmm0
mov eax, dword [ebp - 0x18]
movlpd qword [ebp - 0xf0], xmm0
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
lea ecx, [ebp - 0xf0]
push ecx
mov ecx, ebx
mov edx, dword [eax + 0x28]
call fcn.100360b0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b4
mov edx, dword [ebp - 0x14]
call fcn.10042360
mov ecx, dword [ebp - 0xf0]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xec]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x14]
cmp dword [ebx + 0x110], 0
jne 0x10047963
mov esi, dword [ebp - 0x78]
mov edi, dword [ebp - 0x1c]
cmp edi, esi
jb 0x1004281d
jmp 0x100440d0
mov eax, dword [ebx + 0x158]
test eax, eax
je 0x1004281a
add esi, dword [ebx + 0x160]
push dword [ebx + 0x15c]
mov dword [ebp - 0x78], esi
call eax
add esp, 4
test eax, eax
jne 0x10047782
cmp edi, esi
jae 0x100440d0
jmp 0x10043ad2
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x3c], eax
test ecx, ecx
jne 0x100441d0
cmp dword [ebx + 0xb8], ecx
jg 0x10047518
mov ecx, eax
call fcn.1001c4f0
mov ecx, dword [ebx + 0x1e0]
xor edx, edx
add ecx, dword [ebx + 0x1dc]
mov edi, eax
push ecx
mov ecx, ebx
call fcn.100885d0
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
lea eax, [edi + 0x21]
mov ecx, ebx
push 0
push eax
call fcn.10019540
mov esi, eax
add esp, 8
test esi, esi
je 0x1004281a
lea ecx, [edi + 1]
push ecx
push dword [ebp - 0x3c]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call sub.MSVCR120.dll_memcpy
add esp, 0xc
cmp byte [ebx + 0x4f], 0
je 0x10044192
mov byte [ebx + 0x4f], 0
mov byte [ebx + 0x57], 1
jmp 0x10044198
inc dword [ebx + 0x1dc]
mov eax, dword [ebx + 0x1d4]
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x1e8]
mov dword [ebx + 0x1d4], esi
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x1ec]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x1f0]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0x1f4]
mov dword [esi + 0x14], eax
jmp 0x10043ad2
mov esi, dword [ebx + 0x1d4]
xor edi, edi
test esi, esi
je 0x100475b4
mov ecx, dword [esi]
mov edx, eax
call fcn.1001c790
test eax, eax
je 0x100441f6
mov esi, dword [esi + 0x18]
inc edi
mov eax, dword [ebp - 0x3c]
jmp 0x100441d8
cmp dword [ebx + 0xb8], 0
mov edx, dword [ebp - 0x2c]
jle 0x1004420b
cmp edx, 1
je 0x10047532
cmp dword [esi + 0x18], 0
jne 0x1004426c
cmp byte [ebx + 0x57], 0
je 0x1004426c
mov dword [ebp - 0x3c], 1
cmp edx, 1
jne 0x10044273
mov ecx, dword [ebp - 0x18]
call fcn.1003cd20
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x10047568
mov ecx, dword [ebp - 0x18]
mov byte [ebx + 0x4f], 1
call fcn.1003cd80
cmp eax, 5
je 0x10047539
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10044263
mov byte [ebx + 0x4f], 0
jmp 0x10044344
mov byte [ebx + 0x57], 0
jmp 0x1004434c
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebx + 0x1dc]
sub ecx, edi
dec ecx
mov dword [ebp - 0x38], ecx
cmp edx, 2
jne 0x100443a7
mov edx, dword [ebx + 0x18]
and edx, 1
mov dword [ebp - 0x30], 0
cmp dword [ebx + 0x14], 0
mov dword [ebp - 0x5c], edx
jle 0x100442e5
xor eax, eax
test edx, edx
sete al
xor edi, edi
mov dword [ebp - 0x44], eax
lea ebx, [ebx]
mov ecx, dword [ebx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [edi + ecx + 4]
call fcn.1002fd90
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x30]
add edi, 0x10
inc eax
cmp eax, dword [ebx + 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x44]
jl 0x100442b0
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x4c]
xor ebx, ebx
cmp dword [eax + 0x14], ebx
jle 0x10044321
xor edi, edi
push ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [edi + ecx + 4]
call fcn.10030060
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100479fe
mov eax, dword [ebp - 0x4c]
inc ebx
mov ecx, dword [ebp - 0x38]
add edi, 0x10
mov edx, dword [ebp - 0x2c]
cmp ebx, dword [eax + 0x14]
jl 0x100442f4
cmp dword [ebp - 0x5c], 0
mov ebx, dword [ebp - 0x4c]
je 0x1004433e
xor edx, edx
mov ecx, ebx
call fcn.1003ed70
mov ecx, ebx
call fcn.1005c9f0
or dword [ebx + 0x18], 1
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x38]
test eax, eax
jne 0x100476b1
cmp dword [ebx + 0x1d4], esi
je 0x10044378
mov edx, dword [ebx + 0x1d4]
mov ecx, ebx
mov eax, dword [edx + 0x18]
mov dword [ebx + 0x1d4], eax
call fcn.100191e0
dec dword [ebx + 0x1dc]
cmp dword [ebx + 0x1d4], esi
jne 0x10044354
mov ecx, dword [ebp - 0x2c]
cmp ecx, 1
jne 0x100443b3
mov eax, dword [esi + 0x18]
mov edx, esi
mov ecx, ebx
mov dword [ebx + 0x1d4], eax
call fcn.100191e0
cmp dword [ebp - 0x3c], 0
jne 0x1004281a
dec dword [ebx + 0x1dc]
mov ecx, dword [ebp - 0x2c]
jmp 0x100443e6
mov dword [ebp - 0x5c], 0
jmp 0x100442e8
cmp dword [ebp - 0x3c], 0
mov eax, dword [esi + 8]
mov dword [ebx + 0x1e8], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x1ec], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x1f0], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x1f4], eax
je 0x100443e6
cmp ecx, 2
jne 0x1004281a
mov edx, ecx
mov ecx, ebx
push edi
call fcn.100885d0
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xac], 0
mov edx, dword [ecx + 8]
test edx, edx
je 0x10044428
mov eax, dword [ebx + 0x20]
and eax, 0x100000
or eax, 0
jne 0x100475ca
mov ecx, dword [ecx + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
test esi, esi
je 0x100444ef
lea eax, [ebp - 0xac]
mov ecx, esi
push eax
call fcn.1002ef30
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100475d4
mov ecx, dword [ebp - 0x18]
test byte [ecx + 0x98], 0x80
mov ecx, dword [ebp - 0x14]
je 0x100444f5
cmp dword [ecx + 8], eax
je 0x100444f5
cmp byte [ebx + 0x4f], al
je 0x10044482
cmp dword [ebx + 0xb4], 1
jle 0x100444f5
mov ecx, dword [ebp - 0x18]
cmp dword [ecx + 0x30], 0
jne 0x100444a0
mov eax, dword [ebx + 0x1dc]
inc dword [ebx + 0x1e0]
add eax, dword [ebx + 0x1e0]
mov dword [ecx + 0x30], eax
mov eax, dword [ecx + 0x30]
xor edx, edx
dec eax
mov ecx, ebx
push eax
call fcn.100885d0
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100444c8
mov eax, dword [ebp - 0x18]
mov ecx, esi
mov edx, dword [eax + 0x30]
call fcn.10030010
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebx + 0x1e8]
mov dword [ecx + 0x48], eax
mov eax, dword [ebx + 0x1ec]
mov dword [ecx + 0x4c], eax
mov eax, dword [ebx + 0x1f0]
mov dword [ecx + 0x50], eax
mov eax, dword [ebx + 0x1f4]
mov dword [ecx + 0x54], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp word [ecx + 2], 0
je 0x1004452c
mov eax, dword [ebp - 0xac]
cmp eax, dword [ecx + 0xc]
jne 0x10047609
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cmp eax, dword [ecx + 0x10]
jne 0x10047609
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0xf4]
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [edx + 4]
mov edx, dword [edx + 0xc]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10035f80
mov edx, dword [ebp - 0x14]
add esp, 4
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov ebx, dword [ebp - 0x4c]
mov ecx, eax
mov eax, dword [ebp - 0xf4]
cdq
mov dword [ecx], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov esi, dword [ecx + 4]
push dword [ecx + 0xc]
mov edx, dword [ecx + 8]
shl esi, 4
add esi, dword [ebx + 0x10]
mov ecx, dword [esi + 4]
call fcn.10035fe0
mov edx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x100445c9
mov ecx, dword [esi + 0xc]
mov eax, dword [edx + 0xc]
mov dword [ecx], eax
or dword [ebx + 0x18], 1
jmp 0x100445d7
cmp eax, 2
jne 0x100445d7
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
mov eax, dword [ebp - 0x14]
cmp dword [eax + 4], 1
jne 0x100445f3
xor edx, edx
mov ecx, ebx
call fcn.1003ed70
mov eax, dword [ebp - 0x18]
and dword [eax + 0x98], 0xfffffffc
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
test esi, esi
je 0x10044631
mov eax, dword [esi + 0x34]
cmp eax, dword [edx + 8]
je 0x1004473f
mov cl, byte [ebp - 0x3d]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x98]
and al, 3
cmp al, 1
je 0x10047668
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x3c], 0
mov edx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov eax, esi
shl eax, 4
add eax, dword [ebx + 0x10]
cmp cl, 0x61
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x44], esi
mov edi, dword [eax + 4]
mov dword [ebp - 0x38], edi
jne 0x100446a6
mov eax, dword [eax + 0xc]
mov ebx, dword [ebp - 0x18]
movzx edi, word [ecx + 2]
and edi, 8
mov al, byte [eax + 0x4c]
or edi, 4
cmp al, byte [ebx + 0x93]
mov ebx, dword [ebp - 0x4c]
jae 0x100446a8
mov ebx, dword [ebp - 0x18]
mov byte [ebx + 0x93], al
mov ebx, dword [ebp - 0x4c]
jmp 0x100446a8
xor edi, edi
test byte [ecx + 2], 0x10
je 0x100446c9
mov ecx, dword [ebp - 0x28]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10038c10
mov eax, dword [esi]
mov esi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x30], eax
mov al, byte [ecx + 1]
cmp al, 0xf7
jne 0x100446dc
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x3c], eax
movzx eax, word [eax + 8]
jmp 0x100446e8
cmp al, 0xfd
jne 0x100446e5
mov eax, dword [ecx + 0x10]
jmp 0x100446e8
mov eax, dword [ebp - 0x5c]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
push 0
push esi
push eax
call fcn.10041f40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1004799c
push dword [esi + 0x28]
mov eax, dword [ebp - 0x30]
mov edx, eax
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x38]
or dword [esi + 8], 4
push edi
mov byte [esi + 2], 1
mov dword [esi + 0x34], eax
call fcn.10030220
mov edi, dword [ebp - 0x28]
add esp, 0xc
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 1], 0xf7
setne al
mov byte [esi + 4], al
mov eax, dword [ebp - 0x14]
mov cl, byte [eax + 2]
mov eax, dword [esi + 0x28]
and cl, 3
mov byte [eax + 3], cl
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
push 0
push 0xffffffffffffffff
mov ecx, dword [edx + 8]
mov eax, dword [esi + 0x60]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, esi
movsx eax, word [edi + 0x38]
push eax
call fcn.10041f40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1004799c
or dword [esi + 8], 1
push dword [esi + 0x28]
mov byte [esi + 2], 1
mov ecx, dword [edi + 0x2c]
mov dword [esi + 0x2c], ecx
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x34]
mov dword [esi + 0x34], eax
mov eax, dword [edi + 8]
xor eax, dword [esi + 8]
mov edx, dword [esi + 0x34]
and eax, 4
xor dword [esi + 8], eax
push ecx
mov ecx, dword [edi + 0xc]
push 4
call fcn.10030220
add esp, 0xc
mov dword [ebp - 0x20], eax
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov edx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x10044825
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x10044825
mov edx, dword [esi + 0x34]
push 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x1c], 0
call fcn.10035bf0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x20], eax
jmp 0x10044914
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
push 0
push 0xffffffffffffffff
push dword [eax + 8]
call fcn.10041f40
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1004799c
mov eax, dword [ebp - 0x14]
lea edi, [esi + 0xc]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx ecx, word [eax + 2]
or ecx, 5
push ecx
mov ecx, dword [ebx]
push edi
push ebx
call fcn.1002def0
add esp, 0x10
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100448f5
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.1002ef30
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100448f5
mov edx, dword [ebp - 0x14]
mov ecx, dword [edi]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x44], eax
mov dword [esi + 0x2c], eax
test eax, eax
je 0x100448d3
movzx eax, word [edx + 2]
lea edx, [esi + 0x34]
or eax, 2
push eax
call fcn.10035a00
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100448cd
push dword [esi + 0x28]
mov edx, dword [esi + 0x34]
push dword [ebp - 0x44]
mov ecx, dword [edi]
push 4
call fcn.10030220
add esp, 0xc
mov dword [ebp - 0x20], eax
mov byte [esi + 4], 0
jmp 0x100448f5
push dword [esi + 0x28]
mov edx, 1
mov dword [esi + 0x34], 1
push 0
push 4
call fcn.10030220
add esp, 0xc
mov dword [ebp - 0x20], eax
mov byte [esi + 4], 1
mov ecx, dword [ebp - 0x14]
xor eax, eax
mov edi, dword [ebp - 0x28]
cmp word [ecx + 2], 8
setne al
shl eax, 2
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
mov byte [esi + 2], 1
mov esi, dword [ebp - 0x24]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
push 1
push 0xffffffffffffffff
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
call fcn.10041f40
add esp, 0xc
test eax, eax
je 0x1004799c
mov edx, dword [ebp - 0x14]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x2c], ecx
mov ecx, ebx
mov edx, dword [edx + 0xc]
call fcn.100492b0
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x10]
mov ecx, edi
mov esi, dword [edx + 0x14]
add ecx, 1
mov eax, esi
mov dword [edx + 0x10], ecx
mov ecx, dword [ebp - 0x14]
adc eax, 0
or edi, esi
mov dword [edx + 0x14], eax
mov esi, dword [ebp - 0x24]
je 0x100424aa
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
push 3
push 0xffffffffffffffff
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
call fcn.10041f40
add esp, 0xc
test eax, eax
je 0x1004799c
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x4c]
mov byte [eax + 2], 1
mov ecx, dword [ecx + 8]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x14]
mov byte [eax + 4], 1
add ecx, 0x14
mov dword [eax + 0x28], 0x100d0007
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 4]
mov ecx, ebx
mov edx, dword [ebx + 0x60]
mov edx, dword [edx + eax*4]
call fcn.1003c020
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x60]
mov ebx, dword [ebp - 0x4c]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
xor edi, edi
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x5c], edi
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov word [esi + 2], di
mov dword [esi + 0x1c], edi
je 0x10044b48
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 8]
mov dword [ebp - 0x44], eax
and al, 0x2e
cmp al, 2
jne 0x10044a92
xor edx, edx
mov ecx, edi
call fcn.100420f0
mov ecx, edi
call fcn.10038aa0
movzx ecx, word [edi + 8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x3c], edx
mov word [edi + 8], ax
test cl, 0x24
jne 0x10044b12
test cl, 8
jne 0x10044ae2
test cl, 1
jne 0x100424a4
cmp dword [ebp - 0x2c], 0x18
jge 0x100424a4
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0x6c]
call fcn.10030d40
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
jmp 0x10044c63
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
call fcn.100b16ef
movsd xmm1, qword [edi]
comisd xmm0, xmm1
jbe 0x10044b01
mov eax, dword [ebp - 0x2c]
test al, 1
je 0x10044b12
dec eax
jmp 0x10044b0f
comisd xmm1, xmm0
jbe 0x10044b12
mov eax, dword [ebp - 0x2c]
test al, 1
jne 0x10044b12
inc eax
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0x30]
lea eax, [ebp - 0x6c]
mov ecx, dword [esi + 0x28]
xor edx, edx
push eax
push 0
push dword [ebp - 0x3c]
push edi
call fcn.10030da0
mov dword [ebp - 0x20], eax
add esp, 0x10
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x40], edi
test eax, eax
jne 0x100476b1
jmp 0x10044bd3
mov eax, dword [esi + 0x28]
mov ecx, dword [ebp - 0x14]
test byte [eax + 3], 2
mov eax, 1
cmovne edi, eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x120], eax
test dl, 1
mov ax, word [ecx + 0x10]
lea edx, [ebp - 0x120]
mov word [ebp - 0x118], ax
sete al
mov byte [ebp - 0x112], 0
mov dword [ebp - 0x5c], edi
lea eax, [eax*2 - 1]
mov byte [ebp - 0x116], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x6c]
mov ecx, dword [esi + 0x28]
push eax
push 0
push 0
push 0
call fcn.10030da0
add esp, 0x10
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
test edi, edi
je 0x10044bd3
cmp byte [ebp - 0x112], al
je 0x10044c63
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x6c]
cmp eax, 0x18
jl 0x10044c4b
test ecx, ecx
js 0x10044c14
jne 0x10044be9
cmp eax, 0x19
je 0x10044c14
mov dword [ebp - 0x6c], 0
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x14]
je 0x1004281d
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
push 0
push dword [esi + 0x28]
mov dword [ebp - 0x6c], 0
call fcn.10031440
add esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10044bf0
cmp eax, 0x65
jne 0x100476b1
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x6c], 1
jmp 0x100424a4
test ecx, ecx
jg 0x10044c6f
jne 0x10044c56
cmp eax, 0x16
je 0x10044c6f
mov eax, dword [esi + 0x28]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0x6c], 0
jne 0x100424a4
jmp 0x10044bf0
push 0
push dword [esi + 0x28]
mov dword [ebp - 0x6c], 0
call fcn.100315a0
jmp 0x10044c25
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
shl eax, 3
xor eax, dword [ecx + 8]
and eax, 8
xor dword [ecx + 8], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
cmp dword [eax + ecx*4], 0
je case.0x1004246e.11
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
test byte [eax + 8], 8
jne 0x10042a51
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x30], edi
cmp dword [ecx + 0x10], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
lea esi, [edx + eax*8]
jle 0x10044d45
mov eax, dword [edi + 0x2c]
lea edi, [ebp - 0x1a0]
mov dword [ebp - 0x1a0], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x198], ax
xor eax, eax
mov dword [ebp - 0x19c], esi
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x5c], eax
jmp 0x10044d8c
mov eax, 0x4000
test word [esi + 8], ax
je 0x10044d5f
mov ecx, esi
call fcn.10038750
test eax, eax
jne 0x1004799c
mov ecx, dword [edi + 0x2c]
call fcn.1003da40
mov edi, eax
mov dword [ebp - 0x5c], edi
test edi, edi
je 0x1004799c
mov edx, dword [esi + 0xc]
push edi
push dword [esi + 0x10]
mov esi, dword [ebp - 0x30]
mov ecx, dword [esi + 0x2c]
call fcn.1003dab0
mov ecx, dword [ebp - 0x14]
add esp, 8
mov byte [edi + 0xa], 0
cmp byte [ecx], 0x1c
mov dword [ebp - 0x30], 0
jne 0x10044dc6
movzx edx, word [edi + 8]
xor ecx, ecx
test edx, edx
jle 0x10044dc6
mov eax, dword [edi + 4]
add eax, 8
lea esp, [esp]
test byte [eax], 1
jne 0x10044dbf
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x10044db0
jmp 0x10044dc6
mov dword [ebp - 0x30], 1
mov ecx, dword [esi + 0x28]
lea eax, [ebp - 0x10c]
push eax
push 0
push 0
push 0
mov edx, edi
call fcn.10030da0
mov dword [ebp - 0x20], eax
add esp, 0x10
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x10044df3
mov edx, eax
mov ecx, ebx
call fcn.100191e0
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x10c]
xor ecx, ecx
test eax, eax
mov dword [esi + 0x20], eax
mov al, 1
mov byte [esi + 3], 0
sete cl
mov dword [esi + 0x1c], 0
sub al, cl
mov byte [esi + 2], al
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
cmp byte [eax], 0x1e
jne 0x10044e46
test ecx, ecx
mov ecx, eax
jne 0x100424aa
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
cmp dword [ebp - 0x30], 0
jne 0x1004377e
test ecx, ecx
mov ecx, dword [ebp - 0x14]
je 0x100424aa
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x24
jne 0x10044eff
movdqu xmm1, xmmword [edi + eax*8]
movdqu xmm0, xmmword [edi + eax*8 + 0x10]
movdqu xmmword [ebp - 0x1c8], xmm1
movdqu xmmword [ebp - 0x1b8], xmm0
movq xmm0, qword [edi + eax*8 + 0x20]
psrldq xmm1, 8
movd eax, xmm1
movq qword [ebp - 0x1a8], xmm0
test al, 4
jne 0x10044eee
test al, 8
jne 0x10044ed2
test al, 2
je 0x10044ee6
mov eax, 1
lea ecx, [ebp - 0x1c8]
mov edx, eax
call fcn.100420f0
jmp 0x10044edd
lea ecx, [ebp - 0x1c8]
call fcn.10038bb0
mov ecx, dword [ebp - 0x14]
mov al, byte [ebp - 0x1c0]
test al, 4
je 0x100424aa
mov edi, dword [ebp - 0x1c8]
mov edx, dword [ebp - 0x1c4]
jmp 0x10044f0f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8]
mov edx, dword [ecx + eax*8 + 4]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0xc8], 0
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0xc8]
push eax
push 0
push edx
mov ecx, dword [esi + 0x28]
xor edx, edx
push edi
call fcn.10030da0
mov dword [ebp - 0x20], eax
add esp, 0x10
mov eax, dword [ebp - 0x30]
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0xc8]
mov dword [esi + 0x40], edi
mov word [esi + 2], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], eax
test eax, eax
je 0x10046788
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jne 0x100424a7
mov ecx, 0x15dab
call fcn.100a36d0
mov dword [ebp - 0x20], eax
jmp 0x1004678b
mov ebx, dword [ebp - 0x14]
mov edx, ebx
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov edx, dword [ebx + 4]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebx + 0x60]
mov edx, dword [ecx + edx*4]
mov ecx, dword [edx + 0x10]
mov dword [eax], ecx
mov ecx, dword [edx + 0x14]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 4]
mov eax, dword [ebx + 0x60]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
add dword [eax + 0x10], 1
adc dword [eax + 0x14], 0
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x18]
movlpd qword [ebp - 0x88], xmm0
mov dword [ebp - 0xa8], 0
call fcn.10042360
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax + 0x60]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x2c], eax
test byte [eax + 8], 2
jne 0x10045095
mov ecx, dword [eax + 0x28]
lea edx, [ebp - 0xa8]
call fcn.10030d40
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
cmp dword [ebp - 0xa8], eax
je 0x1004504a
mov edi, 1
xor esi, esi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], esi
jmp 0x100450a1
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.10030350
mov edi, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], esi
cmp esi, 0x7fffffff
jl 0x10045081
jg 0x10045078
cmp edi, 0xffffffff
jb 0x10045081
mov eax, dword [ebp - 0x2c]
or dword [eax + 8], 2
jmp 0x100450a1
add edi, 1
mov dword [ebp - 0x88], edi
adc esi, 0
mov dword [ebp - 0x84], esi
jmp 0x100450a1
mov esi, dword [ebp - 0x84]
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x10045136
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x100450d7
mov eax, dword [edx + 4]
test eax, eax
je 0x100450cc
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x100450c3
mov eax, dword [edx + 0x10]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x100450e0
lea eax, [ecx + ecx*4]
mov ecx, dword [ebp - 0x28]
lea ecx, [ecx + eax*8]
mov dword [ebp - 0x30], ecx
call fcn.10038c10
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x10045101
cmp edx, 0x7fffffff
je 0x100451aa
mov ebx, dword [ebp - 0x2c]
test byte [ebx + 8], 2
mov ebx, dword [ebp - 0x4c]
jne 0x100451aa
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x10045131
jl 0x10045121
cmp edi, ecx
jae 0x10045131
mov edi, ecx
mov esi, edx
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x2c]
test byte [eax + 8], 2
je 0x100451b7
xor ebx, ebx
lea eax, [ebp - 0x88]
push eax
push 8
call fcn.1001b9c0
mov esi, dword [ebp - 0x84]
lea eax, [ebp - 0xa8]
mov edi, dword [ebp - 0x88]
and esi, 0x3fffffff
push eax
mov eax, dword [ebp - 0x2c]
add edi, 1
push 0
adc esi, 0
mov dword [ebp - 0x88], edi
push esi
mov ecx, dword [eax + 0x28]
xor edx, edx
push edi
mov dword [ebp - 0x84], esi
call fcn.10030da0
add esp, 0x18
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100479fe
cmp dword [ebp - 0xa8], eax
jne 0x100451b4
inc ebx
cmp ebx, 0x64
jl 0x10045141
mov ebx, dword [ebp - 0x4c]
mov eax, 0xd
jmp 0x100476b1
mov eax, dword [ebp - 0x2c]
mov byte [eax + 3], 0
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x44]
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
cmp byte [ecx + 1], 0xfa
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8]
mov eax, dword [ebx + eax*8 + 4]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x188], edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x184], eax
jne 0x10045235
cmp dword [ebx + 0xf0], 0
je 0x10045235
movsx ecx, byte [esi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x44]
jmp 0x10045243
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x5c], 0
test byte [ecx + 2], 1
je 0x10045252
mov ebx, dword [ebp - 0x18]
inc dword [ebx + 0x2c]
mov ebx, dword [ebp - 0x4c]
test byte [ecx + 2], 0x20
je 0x1004525e
mov dword [ebx + 0x28], edi
mov dword [ebx + 0x2c], eax
mov edi, dword [ebp - 0x28]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 0x10]
mov dword [ebp - 0x180], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [ebp - 0x174], eax
test cl, 0x10
je 0x10045283
mov edi, dword [esi + 0x20]
jmp 0x10045285
xor edi, edi
mov eax, dword [ebp - 0x28]
mov ebx, 0x4000
test word [eax + edx*8 + 8], bx
mov ebx, dword [ebp - 0x4c]
je 0x100452a2
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x170], eax
jmp 0x100452ac
mov dword [ebp - 0x170], 0
and ecx, 0xa
mov dword [ebp - 0x190], 0
push edi
push ecx
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0x190]
call fcn.10034fa0
add esp, 8
mov dword [ebp - 0x20], eax
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x1004281a
push dword [ebp - 0x184]
mov ecx, 0x17
push dword [ebp - 0x188]
push dword [eax]
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x5c]
test byte [eax + 2], 4
mov eax, 0x12
cmovne eax, ecx
push eax
push dword [ebx + 0xec]
mov eax, dword [ebx + 0xf0]
call eax
add esp, 0x18
jmp 0x10043ad2
mov edx, dword [ebp - 0x14]
cmp byte [edx + 1], 0xfa
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x1004538c
cmp dword [ebx + 0xf0], 0
je 0x1004538c
movsx ecx, byte [edi + 1]
mov eax, dword [ebx + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov esi, dword [edx + 0x10]
mov dword [ebp - 0x44], esi
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x30], eax
je 0x10045395
cmp byte [edi + 4], 0
je 0x10045395
mov esi, dword [edi + 0x28]
mov ecx, esi
call fcn.10030350
mov eax, dword [esi + 0x20]
mov edx, dword [ebp - 0x14]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x24]
mov esi, dword [ebp - 0x44]
mov dword [edi + 0x44], eax
jmp 0x10045395
mov dword [ebp - 0x30], 0
xor esi, esi
mov dl, byte [edx + 2]
mov ecx, dword [edi + 0x28]
call fcn.10035380
mov dword [ebp - 0x20], eax
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
test eax, eax
jne 0x100476b1
test byte [ebp - 0x5c], 1
je 0x1004281a
mov eax, dword [ebp - 0x18]
inc dword [eax + 0x2c]
mov eax, dword [ebx + 0xf0]
test eax, eax
je 0x1004281a
test byte [esi + 0x24], 0x80
jne 0x1004281a
push dword [edi + 0x44]
push dword [edi + 0x40]
push dword [esi]
push dword [ebp - 0x30]
push 9
push dword [ebx + 0xec]
call eax
add esp, 0x18
jmp 0x10043ad2
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x2c]
add dword [ebx + 0x68], eax
mov dword [ebx + 0x64], eax
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
mov dword [ecx + 0x2c], 0
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xbc], 0
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
lea eax, [ebp - 0xbc]
push eax
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
call fcn.1004b610
add esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0xbc], eax
jne 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.1004b570
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov edi, dword [ebp - 0x18]
mov ecx, edi
mov edx, dword [ebp - 0x14]
call fcn.10042360
mov ecx, dword [edi + 0x60]
mov esi, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov ecx, dword [ecx + edx*4]
mov edi, dword [ecx + 0x28]
mov ecx, edi
call fcn.10030350
mov eax, dword [edi + 0x2c]
cmp eax, dword [ebx + 0x6c]
ja 0x100472e6
push esi
push eax
xor edx, edx
mov ecx, edi
call fcn.10039520
add esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 0xc], eax
jne 0x1004281d
mov eax, 0x1000
test word [esi + 8], ax
je 0x1004281d
mov ecx, esi
call fcn.10038700
test eax, eax
jne 0x1004799c
jmp 0x10043ad2
mov esi, dword [ebp - 0x18]
mov ecx, esi
mov edx, dword [ebp - 0x14]
call fcn.10042360
mov ecx, dword [ebp - 0x14]
mov edi, eax
mov edx, dword [ecx + 4]
mov ecx, dword [esi + 0x60]
mov esi, dword [ecx + edx*4]
cmp byte [esi + 2], 0
je 0x10045578
mov eax, 1
mov word [edi + 8], ax
jmp 0x10043ad2
cmp byte [esi + 3], 0
je 0x100455a0
mov ecx, dword [esi + 0x40]
mov dword [ebp - 0xb8], ecx
mov eax, dword [esi + 0x44]
mov dword [ebp - 0xb4], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0xb4]
mov dword [edi + 4], eax
jmp 0x10043ad2
cmp byte [esi], 2
jne 0x100455ea
mov ecx, dword [esi + 0x28]
lea edx, [ebp - 0xb8]
push edx
push ecx
mov esi, dword [ecx]
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [ebp - 0x18]
add esp, 8
mov edx, esi
mov dword [ebp - 0x20], eax
call fcn.1003eea0
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0xb8]
mov dword [edi], ecx
mov eax, dword [ebp - 0xb4]
mov dword [edi + 4], eax
jmp 0x10043ad2
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x10045606
mov ecx, esi
call fcn.1003d6b0
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
jmp 0x1004560d
mov dword [ebp - 0x20], 0
cmp byte [esi + 2], 0
je 0x10045621
mov eax, 1
mov word [edi + 8], ax
jmp 0x10043ad2
mov esi, dword [esi + 0x28]
mov ecx, esi
call fcn.10030350
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0xb8], ecx
mov eax, dword [esi + 0x24]
mov dword [ebp - 0xb4], eax
mov dword [edi], ecx
mov eax, dword [ebp - 0xb4]
mov dword [edi + 4], eax
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 0
mov byte [ecx + 2], 1
mov dword [ecx + 0x1c], 0
jne 0x1004281a
mov ecx, dword [ecx + 0x28]
call fcn.1002c4c0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
cmp byte [ebp - 0x3d], 0x81
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xdc], 0
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x28]
jne 0x100456bb
mov dword [esi + 0x20], 0xffffffff
cmp byte [ecx], 0
je 0x1004281a
lea edx, [ebp - 0xdc]
call fcn.10030d40
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xdc]
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
test ecx, ecx
jne 0x10047737
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 8], 0
jle 0x1004281d
mov esi, dword [ebp - 0x24]
test eax, eax
jne 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xc0]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x28]
mov ecx, esi
call fcn.10030d10
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
cmp dword [ebp - 0xc0], eax
jne 0x100424a4
mov ecx, esi
call fcn.100312b0
test edx, edx
jl 0x1004281a
jg 0x1004575d
test eax, eax
jb 0x1004281a
push edx
push eax
call fcn.1001da60
mov ecx, dword [ebp - 0x14]
add esp, 8
cwde
cmp eax, dword [ecx + 0xc]
jge 0x1004281d
mov dword [ebp - 0xc0], 1
jmp 0x100424a7
mov eax, dword [ebp - 0x18]
inc dword [eax + 0xac]
jmp 0x10045791
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0xb0]
mov eax, dword [eax + 0x60]
mov dword [ebp - 0xb0], 1
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi], 1
jne 0x100457bb
mov ecx, esi
call fcn.1004b480
jmp 0x100457ce
mov ecx, dword [esi + 0x28]
call fcn.10030d10
mov byte [esi + 3], 0
mov dword [esi + 0x1c], 0
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x14]
mov byte [esi + 2], al
mov esi, dword [ebp - 0x24]
test eax, eax
jne 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, ebx
call fcn.1004b4e0
jmp 0x10045835
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
push dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0x10]
push dword [esi + 0x28]
call eax
add esp, 8
mov dword [ebp - 0x20], eax
mov dword [esi + 0x1c], 0
test eax, eax
jne 0x1004585c
mov ecx, dword [ebp - 0x18]
mov byte [esi + 2], al
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
inc dword [ecx + eax*4 + 0xa4]
jmp 0x10046fb5
cmp eax, 0x65
jne 0x100476b1
xor ecx, ecx
mov byte [esi + 2], 1
mov dword [ebp - 0x20], ecx
jmp 0x100440ad
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x28]
mov ecx, dword [ecx + 4]
mov eax, dword [edx + 0x60]
mov edi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x1004589a
inc dword [edx + 0x2c]
mov eax, 0x4000
test word [esi + 8], ax
je 0x100458b7
mov ecx, esi
call fcn.10038750
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
cmp byte [ecx], 0x82
jne 0x100458c7
mov edx, esi
mov ecx, edi
call fcn.1004a510
jmp 0x10045929
mov eax, dword [esi + 0xc]
cdq
mov dword [ebp - 0x258], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x260], eax
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x254], edx
mov edx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [ebp - 0x24c], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x248], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x1004590a
mov ecx, dword [edi + 0x20]
jmp 0x1004590c
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x28]
lea edx, [ebp - 0x260]
and eax, 0xa
push eax
call fcn.10034fa0
add esp, 8
mov dword [edi + 0x1c], 0
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
jmp 0x10043ad2
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x28]
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x28]
mov dword [ebp - 0x158], eax
mov ax, word [edx + 0xc]
mov word [ebp - 0x150], ax
mov eax, dword [edx + 8]
lea edx, [ebp - 0x158]
mov byte [ebp - 0x14e], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [ebp - 0x154], eax
lea eax, [ebp - 0x110]
push eax
push 0
push 0
push 0
call fcn.10030da0
add esp, 0x10
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
cmp dword [ebp - 0x110], eax
jne 0x100459bc
mov dl, 4
mov ecx, edi
call fcn.10035380
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
jmp 0x10043ad2
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x28]
cmp byte [eax], 0
je 0x100459fd
mov ecx, esi
call fcn.1003d6b0
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov edx, dword [ebp - 0x14]
jmp 0x10045a02
xor ecx, ecx
mov dword [ebp - 0x20], ecx
cmp byte [esi + 2], 0
jne 0x10045ab1
mov edx, dword [esi + 0x28]
lea eax, [ebp - 0xd0]
xorps xmm0, xmm0
mov ecx, ebx
push eax
movlpd qword [ebp - 0xd0], xmm0
call fcn.1003eb70
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x85
jne 0x10045a82
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ebp - 0xd0]
mov dword [ecx + 0x40], eax
mov eax, dword [ebp - 0xcc]
mov dword [ecx + 0x44], eax
mov eax, dword [ebp - 0x14]
mov word [ecx + 2], 0x100
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x18], eax
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0x24], esi
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [ebp - 0x18]
mov edx, eax
call fcn.10042360
mov ecx, dword [ebp - 0xd0]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x4c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xcc]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038f10
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x10042a51
call fcn.1003d640
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp byte [ebp - 0x3d], 0x28
mov dword [ebp - 0x9c], 0
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov edx, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x168], eax
mov ax, word [ecx + 0x10]
mov word [ebp - 0x160], ax
sbb al, al
mov byte [ebp - 0x15e], al
mov eax, dword [ecx + 0xc]
mov ecx, ebx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [ebp - 0x164], eax
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x168]
push eax
call fcn.1003ecb0
mov dword [ebp - 0x20], eax
add esp, 8
mov eax, dword [ebp - 0x14]
test byte [eax], 1
mov eax, dword [ebp - 0x9c]
jne 0x10045b85
neg eax
jmp 0x10045b86
inc eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x9c], eax
test ecx, ecx
jne 0x10047737
mov ecx, dword [ebp - 0x14]
test eax, eax
jg 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov esi, eax
mov eax, 1
mov word [esi + 8], ax
mov ecx, dword [ebx + 0xc0]
inc ecx
cmp dword [ebx + 0xb4], ecx
jg 0x1004766f
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0xc4]
push ecx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0xc4], 0
mov eax, dword [edx + 0xc]
mov edx, dword [edx + 4]
mov dword [ebp - 0x30], eax
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10035f30
mov ecx, dword [ebp - 0xc4]
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, 4
mov word [esi + 8], ax
mov eax, ecx
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 4], edx
test eax, eax
jne 0x100476b1
test ecx, ecx
je 0x1004281a
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x30]
push dword [eax + 4]
push ecx
mov ecx, ebx
call fcn.1005fb90
mov al, byte [ebp - 0x30]
add esp, 8
mov ecx, dword [ebp - 0x14]
inc al
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
mov byte [ebp - 0x6d], al
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0xd4]
xor ecx, ecx
mov dword [ebp - 0xd4], 0
cmp dword [edx + 0xc], ecx
cmove eax, ecx
mov ecx, dword [ebx + 0x10]
push eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 4]
add eax, eax
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10035bf0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x20], eax
cmp dword [ecx + 0xc], 0
je 0x10045cc7
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xd4]
add dword [edx + 0x2c], eax
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jle 0x10045cc1
lea ecx, [ecx + ecx*4]
cdq
add dword [edi + ecx*8], eax
adc dword [edi + ecx*8 + 4], edx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x10045d0c
mov edx, dword [ecx + 0x28]
mov ecx, ebx
call fcn.100498f0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ecx + 0x28]
push 0
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.10035bf0
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov esi, eax
mov dword [ebp - 0xd8], 0
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0xd8]
mov ecx, dword [eax + 4]
push dword [eax + 0xc]
shl ecx, 4
add ecx, dword [ebx + 0x10]
mov ecx, dword [ecx + 4]
call fcn.10035a00
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0xd8]
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x4c]
add ecx, 0x14
cdq
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 4], edx
mov esi, dword [ebp - 0x24]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
inc byte [ebx + 0x5a]
push 0
push 0
push 0
push dword [ecx + 0x10]
push ebx
call fcn.10070880
dec byte [ebx + 0x5a]
add esp, 0x14
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov esi, dword [ecx + 4]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x10045e23
mov eax, dword [ebx + 0x10]
mov ecx, esi
add ecx, ecx
push dword [eax + ecx*8 + 0xc]
call fcn.10063f00
mov eax, dword [ebp - 0x18]
add esp, 4
and dword [ebx + 0x18], 0xffffffef
add eax, 0x7c
mov edx, esi
mov ecx, ebx
push 1
push eax
call fcn.10075490
mov ecx, dword [ebp - 0x18]
add esp, 8
or dword [ebx + 0x18], 1
mov dword [ebp - 0x20], eax
and dword [ecx + 0x98], 0xfffffffc
jmp 0x10045eda
mov eax, dword [ebp - 0x18]
add eax, 0x7c
mov dword [ebp - 0x140], esi
mov dword [ebp - 0x144], eax
add esi, esi
mov eax, dword [ebx + 0x10]
push ecx
push 0x100c8ab8
mov dword [ebp - 0x148], ebx
mov dword [ebp - 0x138], 0
push dword [eax + esi*8]
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push ebx
call fcn.1001b6e0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10047680
push 0
lea eax, [ebp - 0x148]
mov byte [ebx + 0xa5], 1
push eax
push fcn.10075290
push esi
push ebx
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x134], 0
call fcn.10070880
add esp, 0x14
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x10045ec7
mov eax, dword [ebp - 0x13c]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x10045ec7
cmp dword [ebp - 0x134], eax
jne 0x10045ec7
mov ecx, 0x16344
call fcn.100a36d0
mov dword [ebp - 0x20], eax
mov edx, esi
mov ecx, ebx
call fcn.100191e0
mov eax, dword [ebp - 0x20]
mov byte [ebx + 0xa5], 0
test eax, eax
jne 0x10047687
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
mov ecx, ebx
call fcn.1005a8f0
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, ebx
call fcn.1005cf40
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, ebx
call fcn.1005c510
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, ebx
call fcn.10082850
mov ecx, dword [ebp - 0x14]
add esp, 4
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea esi, [eax + eax*4]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + esi*8]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, ebx
push eax
movzx eax, word [edx + 2]
mov edx, dword [ebx + 0x10]
add eax, eax
mov edx, dword [edx + eax*8 + 4]
call fcn.10036b80
add esp, 0x10
mov dword [ebp - 0x44], eax
mov ecx, edi
call fcn.10038f10
mov eax, dword [ebp - 0x104]
test eax, eax
je 0x10046012
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x1004799c
mov ebx, dword [ebp - 0x28]
dec eax
cdq
push fcn.10019120
push 1
sub dword [ebx + esi*8], eax
mov eax, ebx
push 0xffffffffffffffff
sbb dword [eax + esi*8 + 4], edx
mov edx, ecx
mov ecx, edi
call fcn.100391f0
mov ebx, dword [ebp - 0x4c]
add esp, 0xc
movzx edx, byte [ebp - 0x54]
mov ecx, edi
call fcn.10038500
jmp 0x100440ad
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x1004604a
mov ecx, esi
call fcn.10039020
test eax, eax
jne 0x1004799c
mov eax, dword [ebp - 0x28]
mov ecx, dword [esi + 0x10]
push dword [eax + edi*8 + 4]
push dword [eax + edi*8]
call fcn.10023240
add esp, 8
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
je 0x100460ae
mov ecx, dword [esi + 0x10]
lea edx, [ebp - 0x128]
call fcn.100235d0
test eax, eax
je 0x100460ae
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x124]
push dword [ebp - 0x128]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
call fcn.10038f70
add esp, 8
jmp 0x100440ad
mov ecx, esi
call fcn.10038f10
jmp 0x10046fb5
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [edi + eax*8 + 8], 0x10
lea esi, [edi + eax*8]
mov eax, dword [ecx + 0xc]
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
jne 0x100460eb
mov ecx, esi
call fcn.10039020
test eax, eax
jne 0x1004799c
mov eax, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x28]
test eax, eax
je 0x10046113
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 0x10]
mov edx, eax
push dword [ebx + edi*8]
call fcn.10023630
add esp, 8
test eax, eax
jne 0x100424a4
mov eax, dword [ebp - 0x30]
test eax, eax
js 0x1004281a
push dword [ebx + edi*8 + 4]
mov ecx, dword [esi + 0x10]
push dword [ebx + edi*8]
call fcn.10023240
add esp, 8
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov dword [ebp - 0x64], esi
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x38], ecx
cmp word [eax + 2], 0
je 0x10046173
mov eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x14]
mov eax, dword [eax + 0xc8]
test eax, eax
je 0x10046170
nop
cmp dword [eax + 0x1c], ecx
je 0x10042a4e
mov eax, dword [eax + 4]
test eax, eax
jne 0x10046160
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xd0]
cmp eax, dword [ebx + 0x94]
jge 0x1004769c
test byte [ecx + 8], 0x10
jne 0x10046332
mov ecx, dword [esi + 0xc]
mov esi, dword [esi + 8]
add esi, ecx
test ecx, ecx
jne 0x1004619f
inc esi
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*2]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, ebx
mov dword [ebp - 0x44], eax
cdq
push edx
push eax
call fcn.10019440
mov edi, eax
add esp, 8
test edi, edi
je 0x1004799c
mov ecx, dword [ebp - 0x38]
call fcn.100389f0
mov ecx, dword [ebp - 0x38]
mov eax, 0x410
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x24]
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x44]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x24], 0x1003b4e0
mov ecx, dword [ebp - 0x64]
mov dword [edi], eax
mov dword [edi + 0x3c], esi
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x40], eax
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x18]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [edi + 0x10], eax
mov eax, dword [edx + 0x18]
mov dword [edi + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [edi + 0x14], eax
mov eax, dword [edx + 0x1c]
mov dword [edi + 0x2c], eax
mov eax, dword [edx + 0x68]
mov dword [edi + 8], eax
mov eax, dword [edx + 0x6c]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 0x14]
mov dword [edi + 0x1c], eax
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*8]
lea eax, [edi + 0x50]
cmp eax, ecx
je 0x1004627e
mov edx, 0x80
jmp 0x10046270
mov word [eax + 8], dx
mov dword [eax + 0x20], ebx
add eax, 0x28
cmp eax, ecx
jne 0x10046270
mov esi, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x18]
lea edx, [edi + 0x50]
mov dword [ebp - 0x28], edx
inc dword [ecx + 0xd0]
mov eax, dword [ecx + 0xc8]
mov dword [edi + 4], eax
mov eax, dword [ebx + 0x28]
mov dword [edi + 0x20], eax
mov eax, dword [ebx + 0x2c]
mov dword [edi + 0x24], eax
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x44], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x64]
mov dword [edi + 0x48], eax
mov eax, dword [ecx + 0xdc]
mov dword [edi + 0x28], eax
mov dword [ecx + 0x58], edx
mov dword [ecx + 0xdc], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0xc8], edi
mov eax, dword [edi + 0x3c]
mov dword [ecx + 0x18], eax
movzx eax, word [edi + 0x40]
mov dword [ecx + 0x1c], eax
mov eax, dword [ecx + 0x18]
lea eax, [eax + eax*4]
lea ecx, [edx + eax*8]
mov eax, dword [ebp - 0x18]
mov dword [eax + 0x60], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x18], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call sub.MSVCR120.dll_memset
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov edx, dword [esi]
mov dword [ebp - 0x24], edx
mov dword [ecx + 0x68], edx
mov eax, dword [esi + 4]
mov dword [ecx + 0x6c], eax
lea ecx, [edx - 0x14]
mov dword [ebp - 0x14], ecx
jmp 0x100440b0
mov edi, dword [ecx + 0x10]
jmp 0x10046281
mov ebx, dword [ebp - 0x18]
mov ecx, ebx
mov edx, dword [ebp - 0x14]
call fcn.10042360
mov esi, eax
mov eax, dword [ebx + 0xc8]
push 0x1000
mov ecx, dword [eax + 0x30]
lea edx, [ecx + ecx*4]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [ecx + edx*4 + 4]
mov edx, dword [ebp - 0x14]
add ecx, dword [edx + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.100390d0
mov ecx, dword [ebp - 0x14]
add esp, 4
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov eax, dword [ebx + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [ebp - 0x14]
je 0x100463bf
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x14]
cdq
add dword [ebx + 0x1f0], eax
mov eax, dword [ebp - 0x1c]
adc dword [ebx + 0x1f4], edx
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
mov ecx, dword [ebp - 0x14]
cdq
je 0x100463e6
add dword [ebx + 0x1e8], eax
mov eax, dword [ebp - 0x1c]
adc dword [ebx + 0x1ec], edx
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ebx, dword [ebp - 0x18]
add dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x1c]
adc dword [ebx + 0x44], edx
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 4], 0
je 0x10046438
mov eax, dword [ebx + 0x1e8]
or eax, dword [ebx + 0x1ec]
jne 0x10042a54
mov eax, dword [ebx + 0x1f0]
or eax, dword [ebx + 0x1f4]
je 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + 0x40]
or eax, dword [edx + 0x44]
jmp 0x10046412
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0xc8]
test edx, edx
je 0x1004647a
mov eax, dword [edx + 4]
test eax, eax
je 0x10046469
lea ebx, [ebx]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x10046460
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x10]
lea edi, [eax + ecx*8]
jmp 0x10046486
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov ecx, edi
call fcn.10038c10
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.10038c10
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x1004281a
jl 0x100464bb
cmp dword [edi], eax
jae 0x1004281a
mov dword [edi], eax
mov dword [edi + 4], ecx
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov edi, dword [edi + esi*8 + 4]
test edi, edi
jl 0x1004281a
jg 0x100464e7
test ecx, ecx
je 0x1004281a
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [ebp - 0x28]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
jmp 0x100424a4
mov ecx, dword [ebp - 0x14]
mov edx, ecx
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x18]
lea ebx, [eax + eax*4]
call fcn.10042360
mov edx, dword [ebp - 0x28]
mov edi, eax
mov ecx, dword [edx + esi*8 + 4]
mov eax, dword [edx + esi*8]
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], ecx
test ecx, ecx
jl 0x10046585
jg 0x1004653c
test eax, eax
je 0x10046585
mov ecx, dword [edx + ebx*8 + 4]
mov eax, dword [edx + ebx*8]
test ecx, ecx
jl 0x1004654d
jg 0x1004655b
test eax, eax
jne 0x1004655b
xorps xmm0, xmm0
movlpd qword [ebp - 0x48], xmm0
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
push ecx
push eax
lea ecx, [ebp - 0xe8]
call fcn.1001d7d0
add esp, 8
test eax, eax
jne 0x10046585
mov eax, dword [ebp - 0xe8]
mov dword [edi], eax
mov eax, dword [ebp - 0xe4]
mov dword [edi + 4], eax
jmp 0x10043ad2
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov ecx, dword [edi + esi*8]
mov eax, ecx
mov edx, dword [edi + esi*8 + 4]
or eax, edx
je 0x10042a4e
test edx, edx
jl 0x100424a4
jg 0x100465c3
test ecx, ecx
je 0x100424a4
sub ecx, 1
mov dword [edi + esi*8], ecx
sbb edx, 0
jmp 0x100424a0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov edx, dword [edi + ecx*8 + 4]
mov eax, dword [edi + ecx*8]
cmp edx, 0x80000000
jl 0x100465fc
jg 0x100465ef
test eax, eax
je 0x100465fc
sub eax, 1
mov dword [edi + ecx*8], eax
sbb edx, 0
mov dword [edi + ecx*8 + 4], edx
mov eax, dword [edi + ecx*8]
or eax, dword [edi + ecx*8 + 4]
mov ecx, dword [ebp - 0x14]
je 0x100424aa
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
push 0
movzx eax, word [ecx + 2]
mov ecx, ebx
mov dword [ebp - 0x30], eax
lea eax, [eax*4 + 0x44]
push eax
call fcn.10019540
mov esi, eax
add esp, 8
test esi, esi
je 0x1004799c
mov eax, dword [ebp - 0x30]
add eax, 7
mov dword [esi + 8], 0
lea ecx, [esi + eax*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 8], ax
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x18], 0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0x10]
sub ecx, dword [ebp - 0x24]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov byte [esi + 0x18], 0
sar edx, 3
mov eax, edx
mov dword [esi + 0x14], 0
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x30]
mov byte [esi + 0x19], al
mov word [edx], 0xf09b
mov dword [edx + 0x10], esi
jmp 0x100466ae
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0xc]
mov esi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [ebp - 0x44], edi
cmp dword [esi + 8], edi
je 0x100466f5
movzx ecx, byte [esi + 0x19]
dec ecx
mov dword [esi + 8], edi
js 0x100466f5
mov ebx, dword [ebp - 0x14]
lea edx, [ecx + 7]
mov edi, dword [ebp - 0x28]
lea edx, [esi + edx*4]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x100466d8
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x44]
mov edx, dword [ebp - 0x14]
inc dword [edi + 0xc]
lea eax, [esi + 0x1c]
cmp dword [edx + 4], 0
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
push esi
je 0x10046710
mov eax, dword [ecx + 0x1c]
jmp 0x10046713
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x1004281a
jle 0x10046746
push dword [esi]
call fcn.1003f480
add esp, 4
push eax
push 0x100c8b1c
push dword [ebp - 0x18]
call fcn.10039bf0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp byte [esi + 0x18], 0
je 0x1004676f
mov eax, dword [ebp - 0x14]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x1004676b
mov ecx, dword [ebp - 0x28]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.10038f70
add esp, 8
mov byte [esi + 0x18], 0
mov ecx, dword [esi]
call fcn.100389f0
mov eax, dword [esi]
mov ecx, 1
mov word [eax + 8], cx
mov dword [esi + 0x14], 0
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x100467ce
push dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov ecx, esi
lea edx, [edi + eax*8]
call fcn.10038910
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
jmp 0x100467da
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.10038870
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x1004771d
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.10038500
mov ecx, esi
call fcn.10039070
test eax, eax
jne 0x100472e6
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x10], 0
push eax
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, ebx
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
call fcn.100a2210
add esp, 0xc
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10046861
cmp eax, 5
jne 0x100476b1
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 1
mov eax, dword [ebp - 0x14]
xor esi, esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
nop
mov eax, dword [ebp + esi*4 - 0x10]
mov ecx, edi
cdq
push edx
push eax
call fcn.10038f70
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x10046870
jmp 0x10043ad2
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x14]
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 - 0x44], eax
mov ecx, dword [eax + 4]
mov edi, dword [ecx]
movzx ecx, byte [edi + 5]
cmove esi, ecx
mov dword [ebp - 0x2c], ecx
cmp byte [edi + 0x10], 3
jae 0x100468e0
mov eax, dword [edi + 0x40]
cmp dword [eax], 0
je 0x100468e2
cmp dword [edi + 0x4c], 0
jl 0x100468e2
jg 0x100468e0
cmp dword [edi + 0x48], 0
jbe 0x100468e2
mov esi, ecx
cmp byte [edi + 0xf], 0
mov eax, 0x100be974
jne 0x100468f3
mov eax, dword [edi + 0xa8]
cmp esi, 5
jne 0x10046918
mov ecx, eax
call fcn.1001c4f0
test eax, eax
je 0x1004690e
mov ecx, edi
call fcn.10028820
test eax, eax
jne 0x10046915
mov eax, dword [ebp - 0x2c]
mov esi, eax
jmp 0x10046989
mov ecx, dword [ebp - 0x2c]
cmp esi, ecx
je 0x10046986
cmp ecx, 5
je 0x10046926
cmp esi, 5
jne 0x10046986
cmp byte [ebx + 0x4f], 0
je 0x1004773f
cmp dword [ebx + 0xb4], 1
jg 0x1004773f
cmp ecx, 5
jne 0x1004695d
mov edx, ebx
mov ecx, edi
call fcn.10028990
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x10046991
mov edx, esi
mov ecx, edi
call fcn.100286c0
jmp 0x10046972
cmp ecx, 4
jne 0x1004696c
lea edx, [ecx - 2]
mov ecx, edi
call fcn.100286c0
cmp dword [ebp - 0x20], 0
jne 0x10046991
mov ecx, dword [ebp - 0x44]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.10037410
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x20], 0
je 0x10046996
jmp 0x10046994
mov eax, dword [ebp - 0x2c]
mov esi, eax
mov edx, esi
mov ecx, edi
call fcn.100286c0
mov esi, dword [ebp - 0x30]
mov ecx, 0xa02
mov word [esi + 8], cx
cmp eax, 6
jne 0x100469b4
xor ecx, ecx
jmp 0x100469bb
mov ecx, dword [eax*4 + 0x100be474]
mov dword [esi + 0x10], ecx
call fcn.1001c4f0
movzx edx, byte [ebp - 0x54]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0xa], 1
call fcn.10038500
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 8]
test eax, eax
je 0x100469f7
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
jmp 0x100469f9
xor eax, eax
push eax
push dword [ecx + 4]
mov ecx, dword [ebp - 0x18]
mov edx, ebx
lea ecx, [ecx + 0x7c]
call fcn.10086a40
add esp, 8
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x10]
mov ecx, dword [ecx + 4]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.1002f8b0
mov dword [ebp - 0x20], eax
test eax, eax
je 0x1004281a
cmp eax, 0x65
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], 0
jmp 0x100424aa
mov ecx, dword [ebp - 0x14]
cmp dword [ecx + 4], 0
jne 0x10046a84
mov edx, dword [ecx + 8]
mov ecx, ebx
call fcn.1003ed70
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ebx, dword [ebp - 0x18]
mov eax, dword [ecx + 8]
inc eax
xor eax, dword [ebx + 0x98]
and eax, 3
xor dword [ebx + 0x98], eax
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0x28]
or byte [eax + 1], 0x40
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + 0x28]
and byte [eax + 1], 0xbf
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx + 0xc]
mov byte [ebp - 0x108], al
test al, al
jne 0x10046b24
mov eax, dword [ebx + 0x20]
and eax, 0x400
mov dword [ebp - 0x48], eax
mov eax, 0
jne 0x10042a54
test eax, eax
jne 0x10042a54
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebp - 0x14]
push dword [ebp - 0x108]
mov eax, dword [eax + 4]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.10037320
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10042a51
cmp al, 6
jne 0x100476b1
mov eax, dword [ebp - 0x14]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push dword [ebp - 0x18]
call fcn.10039bf0
mov eax, dword [ebp - 0x20]
add esp, 0xc
jmp 0x100476b1
mov ecx, dword [ebp - 0x14]
mov esi, dword [ecx + 0x10]
mov edx, esi
mov ecx, ebx
call fcn.10088500
mov dword [ebp - 0x20], eax
test esi, esi
je 0x10046b9c
mov edx, dword [esi + 8]
mov ecx, dword [ebp - 0x18]
call fcn.1003eea0
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x24]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
xorps xmm0, xmm0
movq qword [ebp - 0x218], xmm0
movdqu xmmword [ebp - 0x238], xmm0
mov dword [ebp - 0x218], ebx
mov eax, dword [ecx + 8]
lea ecx, [ebp - 0x238]
movdqu xmmword [ebp - 0x228], xmm0
lea eax, [eax + eax*4]
lea edx, [edi + eax*8]
call fcn.10039130
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x238]
push eax
call fcn.1003f480
add esp, 4
test eax, eax
je 0x10046c21
mov ecx, dword [ebp - 0x18]
add ecx, 0x7c
push ecx
push eax
mov eax, dword [ebp - 0x14]
mov ecx, ebx
mov edx, dword [eax + 4]
call fcn.10087f10
add esp, 8
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x238]
call fcn.100389f0
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
inc dword [ebx + 0xc0]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, ebx
call fcn.10088250
dec dword [ebx + 0xc0]
add esp, 4
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xa4], 0
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + 8]
test esi, esi
je 0x10047778
mov edi, dword [esi]
test edi, edi
je 0x10047778
lea eax, [ebp - 0xa4]
push eax
mov eax, dword [edi + 0x18]
push esi
call eax
mov ecx, dword [ebp - 0x18]
add esp, 8
mov edx, esi
mov dword [ebp - 0x20], eax
call fcn.1003eea0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
test eax, eax
jne 0x100476b4
mov eax, dword [ebp - 0xa4]
push 2
push 0xffffffffffffffff
push 0
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
call fcn.10041f40
add esp, 0xc
test eax, eax
je 0x10047765
mov ecx, dword [ebp - 0xa4]
mov dword [eax + 0x28], ecx
inc dword [esi + 4]
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
lea esi, [edx + 5]
lea esi, [edi + esi*8]
mov edi, dword [ebp - 0x18]
movd xmm0, esi
mov dword [ebp - 0x30], esi
mov esi, dword [esi]
mov eax, dword [edi + 0x60]
mov edi, dword [edi + 0x5c]
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [ebp - 0x58], eax
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x3c], eax
mov eax, dword [eax]
mov dword [ebp - 0x64], eax
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + edx*8]
mov dword [ebp - 0x5c], eax
test esi, esi
jle 0x10046e0b
cmp esi, 8
jb 0x10046dee
cmp dword [0x100d0770], 2
jl 0x10046dee
movdqa xmm2, xmmword [0x100bfa50]
mov eax, esi
and eax, 0x80000007
jns 0x10046d86
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [str.____]
mov edx, esi
sub edx, eax
mov dword [ebp - 0x44], edx
mov edx, edi
mov ebx, dword [ebp - 0x44]
lea ebx, [ebx]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
lea edx, [edx + 0x20]
paddd xmm0, xmm2
add ecx, 8
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movdqu xmmword [edx - 0x20], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movdqu xmmword [edx - 0x10], xmm0
cmp ecx, ebx
jl 0x10046da0
mov ebx, dword [ebp - 0x4c]
cmp ecx, esi
jge 0x10046e0b
mov edx, dword [ebp - 0x30]
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov edi, edi
mov dword [edi + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x10046e00
mov eax, dword [ebp - 0x14]
push edi
mov edi, dword [ebp - 0x38]
push esi
push dword [eax + 0x10]
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x5c]
mov eax, dword [edi + 0x20]
push esi
call eax
mov edx, dword [ebp - 0x64]
add esp, 0x14
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
call fcn.1003eea0
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov eax, dword [edi + 0x28]
push esi
call eax
mov ecx, dword [ebp - 0x58]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x10042a4b
jmp 0x100424a4
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x28]
cmp byte [edi + 2], 0
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
je 0x10046e88
mov ecx, esi
call fcn.10038f10
jmp 0x10043ad2
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [edi + 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [eax]
movdqu xmmword [ebp - 0x1e8], xmm0
mov dword [ebp - 0x44], eax
movdqu xmmword [ebp - 0x1d8], xmm0
mov dword [ebp - 0x1e8], esi
je 0x10046ecb
mov ecx, esi
call fcn.10038f10
mov edx, dword [ebp - 0x14]
mov eax, 0x4001
mov dword [esi], 0
jmp 0x10046edb
mov ax, word [esi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
mov word [esi + 8], ax
lea eax, [ebp - 0x1e8]
push dword [edx + 8]
push eax
mov eax, dword [ebp - 0x44]
push dword [edi + 0x28]
mov eax, dword [eax + 0x2c]
call eax
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
call fcn.1003eea0
cmp dword [ebp - 0x1d4], 0
jle 0x10046f31
push esi
call fcn.1003f480
add esp, 4
push eax
push 0x100c8b88
push dword [ebp - 0x18]
call fcn.10039bf0
mov eax, dword [ebp - 0x1d4]
add esp, 0xc
mov dword [ebp - 0x20], eax
movzx edx, byte [ebp - 0x54]
mov ecx, esi
call fcn.10038500
mov ecx, esi
call fcn.10039070
test eax, eax
jne 0x100472e6
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x60]
mov edi, dword [eax + ecx*4]
cmp byte [edi + 2], 0
jne 0x10047433
mov eax, dword [edi + 0x28]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [ebp - 0x44], ecx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [ebp - 0x18]
add esp, 4
mov edx, esi
mov dword [ebp - 0x20], eax
call fcn.1003eea0
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
mov eax, dword [ebp - 0x44]
push dword [edi + 0x28]
mov eax, dword [eax + 0x28]
call eax
add esp, 4
test eax, eax
jne 0x100440ad
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 8]
dec ecx
lea ecx, [ecx + ecx*4]
lea ecx, [esi + ecx*4]
mov dword [ebp - 0x14], ecx
jmp 0x100440b0
mov edx, dword [ebp - 0x14]
mov edi, dword [ebx + 0x20]
or dword [ebx + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x24], eax
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x30], ecx
lea eax, [eax + eax*4]
test byte [edx + eax*8 + 8], 2
lea esi, [edx + eax*8]
je 0x1004701c
cmp byte [esi + 0xa], 1
je 0x1004701c
mov dl, 1
mov ecx, esi
call fcn.1001bd80
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
push dword [esi + 0x10]
push ecx
mov eax, dword [eax + 0x4c]
call eax
add esp, 8
mov dword [ebp - 0x20], eax
test edi, edi
jne 0x1004703e
mov eax, dword [ebx + 0x24]
and dword [ebx + 0x20], 0xfbffffff
mov dword [ebx + 0x24], eax
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x18]
call fcn.1003eea0
mov eax, dword [ebp - 0x18]
and dword [eax + 0x98], 0xfffffffc
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
jmp 0x10043ad2
cmp byte [ebx + 0x51], 0
jne 0x100479df
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x10]
mov edx, dword [eax + 8]
mov dword [ebp - 0x30], edx
test edx, edx
je 0x10047778
mov eax, dword [edx]
mov dword [ebp - 0x44], eax
test eax, eax
je 0x10047778
cmp dword [eax + 0x34], 0
mov esi, dword [ebp - 0x14]
mov esi, dword [esi + 8]
je 0x10042a4e
mov al, byte [ebx + 0x56]
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x3d], al
mov eax, dword [ebp - 0x18]
mov edi, dword [eax + 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test esi, esi
jle 0x100470cb
nop
mov dword [edi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x100470c0
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 2]
mov byte [ebx + 0x56], al
lea eax, [ebp - 0x130]
push eax
mov eax, dword [ebp - 0x44]
push edi
push esi
push edx
mov eax, dword [eax + 0x34]
call eax
mov edx, dword [ebp - 0x30]
add esp, 0x10
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov al, byte [ebp - 0x3d]
mov byte [ebx + 0x56], al
call fcn.1003eea0
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
test eax, eax
jne 0x10047121
cmp dword [ecx + 4], eax
je 0x10047121
mov eax, dword [ebp - 0x130]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp - 0x12c]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp - 0x20]
cmp al, 0x13
jne 0x1004715b
mov eax, dword [ecx + 0x10]
cmp byte [eax + 0x10], 0
je 0x1004715b
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 2]
cmp eax, 4
jne 0x10047146
mov dword [ebp - 0x20], 0
jmp 0x10043ad2
cmp eax, 5
jne 0x10047150
mov eax, 2
mov ecx, dword [ebp - 0x18]
mov byte [ecx + 0x92], al
jmp 0x10047161
mov eax, dword [ebp - 0x18]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x100476b1
jmp 0x10043ad2
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 0x10]
add edx, edx
mov ebx, dword [ebp - 0x4c]
mov ecx, dword [ecx + edx*8 + 4]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x2c]
and ecx, 0x7fffffff
mov dword [eax + 4], 0
mov dword [eax], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
add ecx, 0x14
jmp 0x10042450
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
call fcn.10042360
mov ecx, dword [ebx + 0x10]
mov edi, eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
add edx, edx
mov ecx, dword [ecx + edx*8 + 4]
xor edx, edx
test esi, esi
je 0x100471e7
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
and edx, 0x7fffffff
cmp edx, esi
cmovb edx, esi
call fcn.1002ea60
cdq
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x10043ad2
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
mov dword [ebp - 0x44], edi
cmp dword [esi], edi
je 0x10047242
movzx ecx, byte [esi + 0x19]
dec ecx
mov eax, dword [ebp - 0x18]
mov dword [esi + 0xc], eax
mov dword [esi], edi
js 0x10047242
mov ebx, dword [ebp - 0x14]
lea edx, [esi + 0x1c]
mov edi, dword [ebp - 0x28]
lea edx, [edx + ecx*4]
mov eax, dword [ebx + 8]
lea edx, [edx - 4]
add eax, ecx
dec ecx
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x10047228
mov ebx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x44]
mov ax, word [edi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 1
mov word [edi + 8], ax
lea eax, [esi + 0x1c]
mov ecx, dword [esi + 4]
push eax
movzx eax, byte [esi + 0x19]
push eax
mov eax, dword [ecx + 0x10]
push esi
call eax
mov eax, dword [esi + 0x14]
add esp, 0xc
test eax, eax
je 0x100472c2
jle 0x10047294
push edi
call fcn.1003f480
add esp, 4
push eax
push 0x100c8b8c
push dword [ebp - 0x18]
call fcn.10039bf0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x14]
mov ecx, ebx
mov edx, dword [ebp - 0x18]
push dword [eax + 4]
lea edx, [edx + 0xdc]
push dword [esi + 0x10]
call fcn.1003d220
mov eax, dword [ebp - 0x20]
add esp, 8
mov dword [esi + 0x14], 0
test eax, eax
jne 0x100476b1
test byte [edi + 8], 0x12
je 0x1004281a
movzx edx, byte [ebp - 0x54]
mov ecx, edi
call fcn.10038500
mov ecx, edi
call fcn.10039070
test eax, eax
je 0x10043ad2
push 0x100c8bbc
push dword [ebp - 0x18]
call fcn.10039bf0
add esp, 8
mov eax, 0x12
jmp 0x100476b1
mov cl, byte [ebx + 0x58]
test cl, 0x41
je 0x100473c1
mov eax, dword [ebp - 0x18]
test byte [eax + 0x98], 0x10
jne 0x100473c1
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x10047337
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc0]
test eax, eax
je 0x100473c1
test cl, 0x40
je 0x10047368
mov ecx, dword [ebp - 0x18]
mov edx, eax
mov edi, dword [ebx + 0xcc]
call fcn.10041a60
mov esi, eax
push esi
push dword [ebx + 0xd0]
call edi
push esi
call fcn.10019120
mov edi, dword [ebp - 0x28]
add esp, 0xc
mov esi, dword [ebp - 0x24]
jmp 0x100473c1
cmp dword [ebx + 0xbc], 1
push eax
jle 0x100473ab
push 0x100c8b90
push ebx
call fcn.1001b6e0
mov ecx, dword [ebx + 0xcc]
add esp, 0xc
mov esi, eax
push esi
push dword [ebp - 0x18]
push dword [ebx + 0xd0]
push 1
call ecx
add esp, 0x10
test esi, esi
je 0x100473a6
mov edx, esi
mov ecx, ebx
call fcn.100191e0
mov esi, dword [ebp - 0x24]
jmp 0x100473c1
push dword [ebp - 0x18]
mov eax, dword [ebx + 0xcc]
push dword [ebx + 0xd0]
push 1
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
cmp eax, dword [0x100cedc4]
jl 0x10047422
cmp byte [ecx], 0xaa
je 0x10042a54
mov ebx, dword [ebp - 0x18]
mov edx, 1
cmp dword [ebx + 0x6c], edx
jle 0x1004740d
mov eax, 0x14
lea ebx, [ebx]
mov ecx, dword [ebx + 0x68]
cmp byte [eax + ecx], 0x11
jne 0x10047401
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [ebx + 0x6c]
jl 0x100473f0
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], 0
inc dword [ecx + 4]
inc dword [ebx + 0xbc]
jmp 0x100424aa
mov ebx, dword [ebp - 0x18]
inc dword [ecx + 4]
inc dword [ebx + 0xbc]
jmp 0x100424aa
mov ecx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
add ecx, 0x14
mov eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x4c]
jmp 0x10042450
mov ecx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x4c]
add ecx, 0x14
jmp 0x10042450
mov ecx, dword [edx + 4]
mov dword [edi + 0x28], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x92], al
mov dword [edi + 0x24], esi
test ecx, ecx
je 0x100474d8
movzx eax, word [edx + 2]
test ax, ax
je 0x100474aa
push dword [eax*4 + 0x100be9e8]
push str._s_constraint_failed
push edi
call fcn.10039bf0
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [eax + 0x10]
test eax, eax
je 0x100474bb
push eax
push dword [edi + 0x7c]
push str._z:__s
push ebx
call fcn.1001b6e0
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x100474bb
push dword [edx + 0x10]
push 0x100c893c
push edi
call fcn.10039bf0
add esp, 0xc
push dword [edi + 0x7c]
mov eax, dword [ebp - 0x14]
push dword [edi + 0xc0]
push esi
push str.abort_at__d_in___s_:__s
push dword [eax + 4]
call fcn.1001b980
add esp, 0x14
mov ecx, edi
call fcn.1003cd80
mov ecx, eax
mov esi, 7
mov dword [ebp - 0x20], ecx
cmp ecx, 5
jne 0x100474f3
mov dword [edi + 0x28], eax
jmp 0x1004756d
cmp dword [edi + 0x28], 0
mov ecx, 0x65
mov eax, 1
cmovne ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x1004756d
mov ecx, 0x1569f
call fcn.100a36d0
jmp 0x100476b1
push str.cannot_open_savepoint___SQL_statements_in_progress
push dword [ebp - 0x18]
call fcn.10039bf0
add esp, 8
mov eax, 5
jmp 0x100476b1
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x1004751d
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x24]
imul ecx
mov dword [ebp - 0x20], 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x24], eax
mov byte [ebx + 0x4f], 0
mov dword [edx + 0x28], 5
mov esi, 7
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x78]
cmp edi, ecx
jb 0x10047b18
mov eax, dword [ebx + 0x158]
test eax, eax
je 0x10047b18
add ecx, dword [ebx + 0x160]
push dword [ebx + 0x15c]
mov dword [ebp - 0x78], ecx
call eax
add esp, 4
test eax, eax
je 0x10047570
or ecx, 0xffffffff
mov eax, 9
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x18]
jmp 0x100476b9
push eax
push str.no_such_savepoint:__s
push dword [ebp - 0x18]
call fcn.10039bf0
add esp, 0xc
jmp 0x100476ac
mov eax, 8
jmp 0x100476b1
mov esi, 7
cmp al, 5
jne 0x10047a0b
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x24]
imul ecx
mov ecx, dword [ebp - 0x20]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x18]
mov dword [edx + 0x24], eax
mov dword [edx + 0x28], ecx
jmp 0x1004756d
mov esi, dword [ebp - 0x18]
mov edx, dword [esi + 0x7c]
test edx, edx
je 0x1004761a
mov ecx, ebx
call fcn.100191e0
mov edx, 0x100c8a9c
mov ecx, ebx
call fcn.10019780
mov dword [esi + 0x7c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [ebx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xac]
je 0x1004764b
mov ecx, ebx
call fcn.1005c6f0
mov eax, esi
mov ecx, esi
mov eax, dword [eax + 0x98]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 0x98], eax
mov eax, 0x11
jmp 0x100476b4
mov eax, 0x204
jmp 0x100476b1
mov ecx, dword [ebp - 0x18]
mov eax, 6
mov byte [ecx + 0x92], 2
jmp 0x100476b4
mov dword [ebp - 0x20], 7
mov ecx, ebx
call fcn.1005c9f0
mov eax, dword [ebp - 0x20]
cmp eax, 7
je 0x1004799c
jmp 0x100476b1
push str.too_many_levels_of_trigger_recursion
push dword [ebp - 0x18]
call fcn.10039bf0
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0x18]
mov esi, 7
cmp byte [ebx + 0x51], 0
cmovne eax, esi
cmp dword [ecx + 0x7c], 0
mov dword [ebp - 0x20], eax
jne 0x10047a3d
cmp eax, 0xc0a
je 0x10047a3d
mov ecx, str.unknown_error
sub eax, 0x64
je 0x10047a21
dec eax
je 0x10047a1a
sub eax, 0x19f
je 0x10047a13
mov eax, dword [ebp - 0x20]
movzx eax, al
cmp eax, 0x1c
ja 0x10047a26
mov eax, dword [eax*4 + 0x100ba948]
test eax, eax
je 0x10047a26
mov ecx, eax
jmp 0x10047a26
push esi
call fcn.1003f480
add esp, 4
push eax
push 0x100c8b20
push dword [ebp - 0x18]
call fcn.10039bf0
add esp, 0xc
mov eax, dword [ebp - 0x20]
jmp 0x100476b1
mov ecx, str.out_of
cmp esi, 5
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push dword [ebp - 0x18]
call fcn.10039bf0
add esp, 0xc
jmp 0x100476ac
push dword [ebp - 0xa4]
mov eax, dword [edi + 0x1c]
call eax
add esp, 4
jmp 0x1004799c
mov eax, 6
jmp 0x100476b1
or ecx, 0xffffffff
mov eax, 9
mov dword [ebp - 0x78], ecx
jmp 0x100476b1
mov ecx, dword [ebp - 0x18]
xor edx, edx
call fcn.1003cd20
test eax, eax
jne 0x100476b1
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
cmp dword [eax + 0x1e0], 0
je 0x100477c5
cmp dword [ecx + 0x30], 0
je 0x100477c5
mov edx, 1
call fcn.1003cc10
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x20]
add eax, 2
or eax, 1
mov dword [ecx + 0x20], eax
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [edi + eax*8]
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [eax + 0x78], esi
cmp dword [ecx + 8], edi
jle 0x10047820
lea ebx, [ebx]
mov eax, 0x1000
test word [esi + 8], ax
je 0x1004780a
mov ecx, esi
call fcn.10038700
test eax, eax
jne 0x1004799c
mov ecx, esi
call fcn.100387b0
mov eax, dword [ebp - 0x14]
inc edi
add esi, 0x28
cmp edi, dword [eax + 8]
jl 0x100477f0
mov eax, dword [ebp - 0x18]
cmp byte [ebx + 0x51], 0
jne 0x100479df
test byte [ebx + 0x58], 4
je 0x10047846
push 0
push eax
push dword [ebx + 0xd0]
mov eax, dword [ebx + 0xcc]
push 4
call eax
add esp, 0x10
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x24]
imul ecx
mov ecx, dword [ebp - 0x18]
sar edx, 3
mov eax, edx
mov dword [ebp - 0x20], 0x64
shr eax, 0x1f
inc eax
add eax, edx
mov dword [ecx + 0x24], eax
jmp 0x10047568
mov edx, dword [ebp - 0x14]
movzx eax, byte [ebx + 0x4f]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 8]
mov dword [ebp - 0x30], ecx
cmp ecx, eax
je 0x1004793f
test esi, esi
je 0x100478a6
mov edx, 0x204
mov ecx, ebx
call fcn.100a1550
mov edi, dword [ebp - 0x18]
mov esi, 1
mov byte [ebx + 0x4f], 1
jmp 0x100478e1
test ecx, ecx
je 0x100478bd
cmp dword [ebx + 0xb8], 0
jle 0x100478bd
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x1004751d
mov edi, dword [ebp - 0x18]
mov esi, 1
mov edx, esi
mov ecx, edi
call fcn.1003cd20
mov ecx, eax
mov dword [ebp - 0x20], ecx
test ecx, ecx
jne 0x10047568
mov eax, dword [ebp - 0x30]
mov byte [ebx + 0x4f], al
mov ecx, edi
call fcn.1003cd80
cmp eax, 5
jne 0x10047922
mov ecx, dword [ebp - 0x14]
mov eax, 0x66666667
sub ecx, dword [ebp - 0x24]
imul ecx
mov dword [ebp - 0x20], 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x24], eax
mov al, 1
sub al, byte [ebp - 0x30]
mov byte [ebx + 0x4f], al
mov dword [edi + 0x28], 5
jmp 0x10047568
mov ecx, ebx
call fcn.100a0b00
cmp dword [edi + 0x28], 0
mov ecx, esi
mov eax, 0x65
cmove ecx, eax
mov dword [ebp - 0x20], ecx
jmp 0x10047568
test ecx, ecx
jne 0x1004794e
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
jmp 0x100476a1
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
mov ecx, str.cannot_commit___no_transaction_is_active
cmove eax, ecx
push eax
jmp 0x100476a1
mov edx, dword [ebp - 0x18]
xor eax, eax
cmp byte [ebx + 0x51], al
sete al
lea eax, [eax*2 + 7]
mov ecx, eax
mov dword [ebp - 0x20], eax
mov dword [edx + 0x28], eax
call fcn.100a1690
push eax
push 0x100c8be4
push edx
call fcn.10039bf0
mov eax, dword [ebp - 0x20]
add esp, 0xc
jmp 0x100476b1
mov ebx, dword [ebp - 0x4c]
cmp byte [ebx + 0x51], 0
jne 0x100479df
cmp byte [ebx + 0x52], 0
jne 0x100479df
cmp dword [ebx + 0xbc], 0
mov byte [ebx + 0x51], 1
jle 0x100479bf
mov dword [ebx + 0x110], 1
inc dword [ebx + 0x118]
xor eax, eax
mov word [ebx + 0x11c], ax
mov eax, dword [ebx + 0xf4]
test eax, eax
je 0x100479df
mov dword [eax + 0xc], 7
push 0x100c8bd4
push dword [ebp - 0x18]
call fcn.10039bf0
mov ecx, dword [ebp - 0x18]
mov eax, 7
add esp, 8
mov esi, eax
jmp 0x100476b9
mov ebx, dword [ebp - 0x4c]
jmp 0x100476b1
mov esi, 7
mov ecx, dword [ebp - 0x18]
jmp 0x100476b9
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x10047a26
mov ecx, str.no_more_rows_available
jmp 0x10047a26
mov ecx, str.another_row_available
push ecx
push 0x100c8b98
push dword [ebp - 0x18]
call fcn.10039bf0
mov eax, dword [ebp - 0x20]
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x28], eax
cmp eax, 0xc0a
je 0x10047a6e
movzx eax, al
cmp eax, 0xe
je 0x10047a54
cmp eax, 0xa
jne 0x10047a6e
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
test ecx, ecx
je 0x10047a69
push 0
push 0
push eax
call ecx
add esp, 0xc
jmp 0x10047a6b
xor eax, eax
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [ebp - 0x24]
push dword [eax + 0x7c]
push dword [eax + 0xc0]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push dword [ebp - 0x20]
call fcn.1001b980
mov ecx, dword [ebp - 0x18]
add esp, 0x14
call fcn.1003cd80
cmp dword [ebp - 0x20], 0xc0a
jne 0x10047af6
cmp byte [ebx + 0x51], 0
jne 0x10047af6
cmp byte [ebx + 0x52], 0
jne 0x10047af6
cmp dword [ebx + 0xbc], 0
mov byte [ebx + 0x51], 1
jle 0x10047ad6
mov dword [ebx + 0x110], 1
inc dword [ebx + 0x118]
xor eax, eax
mov word [ebx + 0x11c], ax
mov eax, dword [ebx + 0xf4]
test eax, eax
je 0x10047af6
mov dword [eax + 0xc], 7
mov al, byte [ebp - 0x6d]
mov dword [ebp - 0x20], 1
test al, al
je 0x1004756d
movzx edx, al
mov ecx, ebx
dec edx
call fcn.1005c6f0
jmp 0x1004756d
mov edx, dword [ebp - 0x18]
add dword [edx + 0xb4], edi
cmp dword [edx + 0xa0], 0
je 0x10047b31
mov ecx, edx
call fcn.1003b3e0
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x20]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.100b010b
mov esp, ebp
pop ebp
ret