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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x318
mov eax, dword [0x6121d4]
xor eax, esp
mov dword [esp + 0x314], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], 0
xorps xmm0, xmm0
mov dword [esp + 0x10], edi
mov dword [esp + 0x60], 0
movlpd qword [esp + 0xa8], xmm0
mov eax, dword [edi + 0x68]
mov edx, dword [edi]
mov esi, dword [edi + 0x58]
mov dword [esp + 0x54], eax
mov dword [esp + 0xc], eax
xor al, al
cmp dword [edi + 0xa0], 0
mov byte [esp + 0x6b], al
mov al, byte [edx + 0x54]
mov dword [esp + 0x14], edx
mov byte [esp + 0x50], al
mov dword [esp + 0x20], esi
mov dword [esp + 0x94], 0
je 0x437220
call fcn.0042fbc0
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x174], 0
je 0x437243
mov ecx, dword [edx + 0x17c]
xor edx, edx
mov eax, dword [edi + 0xb4]
div ecx
sub ecx, edx
mov edx, dword [esp + 0x14]
xor eax, eax
jmp 0x437249
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0x7c], eax
mov dword [esp + 0x6c], ecx
je 0x43ebb9
mov dword [edi + 0x24], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
cmp dword [edx + 0x128], 0
mov dword [edx + 0x1c8], 0
jne 0x43eb96
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0xf0], 0x101
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa8]
add eax, 1
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], eax
adc ecx, 0
mov dword [esp + 0x8c], ecx
mov cl, byte [edx]
movzx edx, cl
mov byte [esp + 0x33], cl
mov dword [esp + 0x34], edx
cmp edx, 0xb6
ja case.0x4372db.89
jmp dword [edx*4 + 0x43edb4]
mov ecx, dword [esp + 0xc]
mov edx, 4
mov eax, dword [ecx + 4]
sub ecx, dword [esp + 0x54]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov word [eax + esi*8 + 0x10], dx
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x20]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], edx
jmp case.0x4372db.9
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 4
je 0x437421
mov eax, dword [esi + eax*8]
mov ecx, dword [esp + 0x54]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
dec eax
cdq
mov dword [esi + ecx*8 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [esi + ecx*8], eax
mov eax, 4
mov word [esi + ecx*8 + 0x10], ax
cmp dword [edx + 8], 0
jne 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x54]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8]
lea eax, [eax + eax*4]
mov eax, dword [edx + eax*4 + 8]
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
xor eax, eax
add edx, 0xffffffec
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov ecx, 4
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x54]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov word [eax + esi*8 + 0x10], cx
mov ecx, dword [eax + esi*8]
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov dword [edi + esi*8], eax
mov eax, edi
mov dword [eax + esi*8 + 4], edx
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x54]
lea edx, [ecx + eax*4]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x437421
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x43e569
mov edi, dword [esp + 0xc]
cmp dword [edi + 4], 0
mov edi, dword [esp + 0x10]
jne 0x43e569
mov eax, dword [edx + 4]
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + 0x2c]
dec dword [edi + 0xd8]
mov dword [edi + 0xd0], eax
mov eax, dword [edi + 0x28]
add dword [esi + 0x70], eax
mov dword [esi + 0x68], eax
mov eax, esi
mov dword [esi + 0x6c], ecx
adc dword [eax + 0x74], ecx
mov ecx, edx
call fcn.00430750
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 8], 4
jne 0x4374a8
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + ecx*4 + 8]
dec eax
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
mov esi, dword [edi + 0x58]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x20], esi
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x437515
call fcn.00436e80
mov ecx, eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x437568
mov ecx, edx
call fcn.00436e80
mov edx, eax
jmp 0x437571
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x8c]
mov dword [edx + 4], eax
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4375bd
call fcn.00436e80
mov ecx, eax
jmp 0x4375c6
mov eax, 4
mov word [ecx + 0x10], ax
mov edx, dword [esp + 0xc]
mov eax, 8
mov word [ecx + 0x10], ax
add edx, 0x14
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x1c]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x43761b
mov ecx, esi
call fcn.00436e80
mov esi, eax
jmp 0x437624
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x10]
mov ecx, edi
call fcn.0040b8a0
cmp byte [esp + 0x50], 1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 4], eax
je 0x4376b0
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.0042d8b0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x18], edi
test edi, edi
jne 0x43e813
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.0042cad0
test eax, eax
jne 0x43926a
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x4376a0
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x4376a0
mov ecx, dword [esp + 0x14]
call fcn.00408080
mov ecx, dword [esp + 0xc]
mov byte [ecx + 1], 0xfa
mov eax, dword [esi + 8]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp eax, dword [ecx + 0x78]
jg 0x43e817
mov edx, dword [esp + 0xc]
mov byte [edx], 0x49
jmp 0x4376d1
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x4376f5
call fcn.00436e80
mov edx, dword [esp + 0xc]
mov ecx, eax
jmp 0x4376fe
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, 0x2202
mov word [ecx + 0x10], ax
mov eax, dword [edx + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [edx + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x50]
mov byte [ecx + 0x12], al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x43dd49
mov edi, dword [esp + 0x20]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
mov edi, dword [esp + 0x10]
jne 0x43dd49
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*8 + 4], edx
mov edx, dword [esp + 0xc]
jne 0x43741d
mov esi, dword [esp + 0x20]
mov eax, 0x2210
mov word [ecx + 0x10], ax
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x43779e
mov ecx, esi
call fcn.00436e80
mov esi, eax
jmp 0x4377a7
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov eax, 1
cmp dword [edx + 4], 0
mov dword [esi + 0xc], 0
cmovne eax, dword [esp + 0xf0]
sub edi, ecx
movzx eax, ax
mov word [esi + 0x10], ax
add esi, 0xc
mov dword [esp + 0x24], eax
test edi, edi
jle 0x437419
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.0042d540
mov eax, dword [esp + 0x24]
dec edi
mov word [esi + 4], ax
mov dword [esi], 0
test edi, edi
jg 0x4377e5
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov edx, 0xffc1
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov ax, word [esi + ecx*8 + 0x10]
and ax, dx
mov edx, dword [esp + 0xc]
or ax, 1
add edx, 0x14
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x43787f
mov ecx, esi
call fcn.00436e80
mov esi, eax
jmp 0x437888
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x4378ce
mov edx, dword [eax + 4]
mov ecx, esi
call fcn.0042d560
mov ecx, esi
call fcn.0042cdd0
test eax, eax
jne 0x43926e
mov al, byte [esp + 0x50]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov eax, dword [eax + 4]
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.0042d8b0
mov al, byte [esp + 0x60]
add esp, 0x10
mov byte [esi + 0x12], al
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x64]
lea edi, [eax + ecx*8]
lea ecx, [edi - 0x28]
call fcn.0042d790
test eax, eax
jne 0x43e813
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x437945
mov ecx, esi
call fcn.0042d540
movups xmm0, xmmword [edi - 0x28]
mov edx, dword [esp + 0xc]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x8c]
mov word [esi + 0x10], ax
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4379b3
cmp dword [esi + 0x18], 0
je 0x4379be
mov ecx, esi
call fcn.0042cfe0
mov ecx, dword [esp + 0x28]
movups xmm0, xmmword [edi]
mov eax, 1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esi + 0x10], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [esi + 0x20], xmm0
mov word [edi + 0x10], ax
mov eax, 0x4000
mov dword [edi + 0x18], 0
test word [esi + 0x10], ax
je 0x437a04
mov ecx, esi
call fcn.0042cd80
test eax, eax
jne 0x43926a
mov ecx, dword [esp + 0x28]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x28], ecx
jne 0x4379a2
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
nop
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.0042d7f0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x437a7b
mov ecx, esi
call fcn.0042cd80
test eax, eax
jne 0x43926a
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x437a99
mov ecx, dword [esp + 0xc]
test byte [ecx + 2], 2
je 0x437a99
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov ecx, dword [esp + 0x28]
mov eax, ecx
dec ecx
mov dword [esp + 0x28], ecx
test eax, eax
je 0x437803
add esi, 0x28
add edi, 0x28
jmp 0x437a50
mov ecx, dword [esp + 0xc]
push 0x4000
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042d7f0
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [esi + ecx*8 + 4]
push eax
mov eax, dword [esi + ecx*8]
push eax
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042d5f0
add esp, 8
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
xor edx, edx
mov ecx, edi
call fcn.00431370
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x34], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
movzx edx, word [ecx + 0x10]
mov al, byte [esi + 0x10]
or al, dl
mov dword [esp + 0x38], edx
test al, 1
je 0x437bb5
mov ecx, edi
call fcn.0042d540
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
test dl, 0x12
jne 0x437be9
mov dl, byte [esp + 0x50]
push 0
call fcn.0042ce30
add esp, 4
test eax, eax
jne 0x43926a
mov eax, dword [esp + 0x34]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx ecx, ax
mov dword [esp + 0x38], ecx
jmp 0x437c15
test edx, 0x400
je 0x437c15
call fcn.0042cdd0
test eax, eax
jne 0x43926a
mov eax, dword [esp + 0x34]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [esp + 0x38], eax
movzx eax, word [esi + 0x10]
mov dword [esp + 0x28], eax
test al, 0x12
jne 0x437c33
mov dl, byte [esp + 0x50]
mov ecx, esi
push 0
call fcn.0042ce30
add esp, 4
jmp 0x437c41
test eax, 0x400
je 0x437c5c
mov ecx, esi
call fcn.0042cdd0
test eax, eax
jne 0x43926a
mov ax, word [esi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0xc]
add eax, dword [ecx + 0xc]
cdq
mov ecx, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
mov eax, dword [eax + 0x78]
cdq
cmp dword [esp + 0x4c], edx
jg 0x43e813
jl 0x437c8d
cmp ecx, eax
ja 0x43e813
xor eax, eax
lea edx, [ecx + 2]
cmp edi, esi
mov ecx, edi
sete al
push eax
call fcn.0042caf0
add esp, 4
test eax, eax
jne 0x43926a
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [edi + 0x10], ax
cmp edi, esi
je 0x437cdb
push dword [esi + 0xc]
push dword [esi + 8]
push dword [edi + 8]
call fcn.0056f940
mov eax, dword [esp + 0x34]
add esp, 0xc
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x34]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 8]
push eax
call fcn.0056f940
mov eax, dword [esp + 0x40]
add esp, 0xc
mov ecx, dword [esp + 0x38]
mov dl, byte [esp + 0x50]
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x5c]
cmp dl, 1
jbe 0x437d1b
mov eax, dword [esp + 0x4c]
and ecx, 0xfffffffe
mov dword [esp + 0x84], eax
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x20]
mov byte [ecx + eax], 0
mov eax, dword [edi + 8]
mov byte [ecx + eax + 1], 0
mov eax, 0x200
or word [edi + 0x10], ax
mov eax, dword [esp + 0x1c]
mov byte [edi + 0x12], dl
mov edx, dword [esp + 0xc]
mov dword [edi + 0xc], ecx
add edx, 0x14
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
movzx edx, word [esi + eax*8 + 0x10]
lea eax, [esi + eax*8]
mov dword [esp + 0x2c], eax
mov eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
movzx ecx, word [esi + eax*8 + 0x10]
lea eax, [esi + eax*8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x28], eax
mov al, cl
and al, dl
test al, 4
jne 0x437deb
or cl, dl
test cl, 1
jne 0x43801d
mov esi, dword [esp + 0x2c]
and edx, 0x2d
je 0x437dbb
mov ecx, edx
mov dword [esp + 0x38], ecx
jmp 0x437dc9
mov ecx, esi
call fcn.00436dd0
movzx eax, ax
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x4c]
mov ax, word [ecx + 0x10]
and ax, 0x2d
jne 0x437ddc
call fcn.00436dd0
movzx eax, ax
and al, byte [esp + 0x38]
test al, 4
je 0x437eb9
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x4c]
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], edi
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x437e1e
jmp dword [eax*4 + 0x43f090]
push ecx
push edx
lea ecx, [esp + 0xa0]
call fcn.0040e220
add esp, 8
test eax, eax
jne 0x437eb5
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0x98]
jmp 0x437fdd
test edx, edx
jne 0x437e71
cmp ecx, 0x80000000
jne 0x437e71
test edi, edi
jg 0x437eb5
jl 0x437e63
test esi, esi
jae 0x437eb5
add esi, 0
adc edi, 0x80000000
jmp 0x437fdd
neg edx
adc ecx, 0
neg ecx
jmp case.0x437e1e.106
push ecx
push edx
lea ecx, [esp + 0xa0]
call fcn.0040e2c0
jmp 0x437e33
mov eax, edx
or eax, ecx
je 0x438019
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x437faf
test esi, esi
jne 0x437faf
cmp edi, 0x80000000
jne 0x437faf
mov esi, dword [esp + 0x2c]
mov ecx, esi
call fcn.0042d130
mov ecx, dword [esp + 0x4c]
movsd qword [esp + 0xa0], xmm0
call fcn.0042d130
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x437ee1
jmp dword [eax*4 + 0x43f0a0]
addsd xmm0, qword [esp + 0xa0]
jmp 0x437f67
subsd xmm0, qword [esp + 0xa0]
jmp 0x437f67
mulsd xmm0, qword [esp + 0xa0]
jmp 0x437f67
movsd xmm1, qword [esp + 0xa0]
xorps xmm2, xmm2
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x438019
divsd xmm0, xmm1
jmp 0x437f67
mov ecx, esi
call fcn.0042d070
mov ecx, dword [esp + 0x4c]
mov esi, eax
mov edi, edx
call fcn.0042d070
mov ecx, esi
or ecx, edi
je 0x438019
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x437f57
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00596e60
mov ecx, eax
call fcn.005974c0
call fcn.0040b860
mov esi, dword [esp + 0x20]
test eax, eax
jne 0x43801d
mov ecx, dword [esp + 0x28]
mov edx, 0xf248
mov ax, word [ecx + 0x10]
and ax, dx
movsd qword [ecx], xmm0
or ax, 8
mov word [ecx + 0x10], ax
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
push ecx
push edx
push edi
push esi
call fcn.00596db0
jmp 0x437fd9
mov eax, edx
or eax, ecx
je 0x438019
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x437fd0
mov edx, 1
xor ecx, ecx
push ecx
push edx
push edi
push esi
call fcn.00596e60
mov edi, edx
mov esi, eax
mov ecx, dword [esp + 0x28]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], esi
mov edx, dword [esp + 0xc]
or ax, 4
mov esi, dword [esp + 0x20]
add edx, 0x14
mov dword [ecx + 4], edi
mov edi, dword [esp + 0x10]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
call fcn.0042d540
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
test eax, eax
je 0x437421
push 0
push 0
jmp 0x437b04
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov al, byte [edx + 0x10]
or al, byte [ecx + 0x10]
mov dword [esp + 0x48], esi
test al, 1
je 0x4380b0
mov ecx, esi
call fcn.0042d540
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, edx
call fcn.0042d070
mov ecx, dword [esp + 0x24]
mov edi, eax
mov esi, edx
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], esi
call fcn.0042d070
mov ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
mov al, byte [eax]
mov byte [esp + 0x33], al
cmp al, 0x66
jne 0x4380ef
and edi, ecx
and esi, edx
jmp 0x438192
cmp al, 0x67
jne 0x4380fc
or edi, ecx
or esi, edx
jmp 0x438192
mov eax, ecx
or eax, edx
je 0x438192
test edx, edx
jg 0x43812f
jl 0x438110
test ecx, ecx
jae 0x43812f
mov al, 0xd1
sub al, byte [esp + 0x33]
cmp edx, 0xffffffff
jl 0x43813e
jg 0x438122
cmp ecx, 0xffffffc0
jbe 0x43813e
neg ecx
mov dword [esp + 0x28], ecx
adc edx, 0
neg edx
jmp 0x438133
mov al, byte [esp + 0x33]
test edx, edx
jl 0x43816f
jg 0x43813e
cmp ecx, 0x40
jb 0x43816f
test esi, esi
jg 0x438153
jl 0x438148
test edi, edi
jae 0x438153
cmp al, 0x68
je 0x438153
or edi, 0xffffffff
or esi, edi
jmp 0x438192
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
jmp 0x438192
movq xmm1, qword [esp + 0xe8]
movd xmm0, ecx
cmp al, 0x68
jne 0x4381ce
psllq xmm1, xmm0
movq qword [esp + 0x70], xmm1
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x48]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], edi
mov edx, dword [esp + 0xc]
or ax, 4
mov edi, dword [esp + 0x10]
add edx, 0x14
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x20]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
psrlq xmm1, xmm0
movq qword [esp + 0x70], xmm1
test esi, esi
jg 0x43818a
jl 0x4381e2
test edi, edi
jae 0x43818a
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x28]
or edx, 0xffffffff
call fcn.00597000
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
or edi, eax
or esi, edx
jmp 0x438192
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.0042d210
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x1c]
adc dword [esi + 4], edx
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x10]
test al, 4
jne 0x438292
test al, 0x28
jne 0x43826b
test al, 2
je 0x438276
mov edx, 1
mov ecx, esi
call fcn.00436c50
jmp 0x438272
mov ecx, esi
call fcn.0042d160
mov edx, dword [esp + 0xc]
movzx eax, word [esi + 0x10]
test al, 4
jne 0x438292
cmp dword [edx + 8], 0
jne 0x43ac82
mov edx, 0x14
jmp 0x43e661
mov ecx, dword [esp + 0x8c]
and eax, 0xf244
or eax, 4
add edx, 0x14
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
lea ecx, [esi + eax*8]
je 0x43752b
call fcn.0042d240
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x438316
mov ecx, esi
call fcn.0042cdd0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0xc]
mov ecx, esi
push dword [esp + 0x50]
mov dl, byte [eax + 8]
call fcn.0042d400
add esp, 4
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [ecx + 0x10]
movzx ecx, word [esi + 0x10]
mov edi, ecx
mov dword [esp + 0x3c], eax
and edi, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], edi
test byte [esp + 0x28], 4
je 0x43845b
mov edi, dword [esp + 0x2c]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x24], eax
mov esi, dword [edi + 4]
mov eax, dword [edi]
mov edi, dword [esp + 0x24]
cmp edi, esi
jl 0x4383f3
jg 0x4383b5
cmp ecx, eax
jbe 0x4383e9
cmp byte [edx + 0x5e4e58], 0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jne 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], 1
jmp 0x4372ad
cmp edi, esi
jg 0x438427
jl 0x4383f3
cmp ecx, eax
jae 0x438427
cmp byte [edx + 0x5e4e4c], 0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jne 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], 0xffffffff
jmp 0x4372ad
cmp byte [edx + 0x5e4e52], 0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jne 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], 0
jmp 0x4372ad
mov edx, dword [esp + 0x3c]
mov eax, ecx
or eax, edx
test al, 1
je 0x4384c2
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
test al, al
jns 0x4384bb
test byte [esp + 0x28], 1
je 0x4384a0
test ecx, 0x100
jne 0x4384a0
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x60], 0
movzx eax, byte [eax]
mov al, byte [eax + 0x5e4e52]
jmp 0x4385ff
mov edi, dword [esp + 0x2c]
test cl, 1
mov eax, 0
sete al
lea eax, [eax*2 - 1]
jmp 0x4385ca
test al, 0x10
jmp 0x4383bc
mov edx, dword [esp + 0xc]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x438512
test al, 2
je 0x4385ab
mov al, byte [esp + 0x3c]
mov edi, dword [esp + 0x2c]
and al, 0x2e
cmp al, 2
jne 0x4384f8
xor edx, edx
mov ecx, edi
call fcn.00436c50
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x40], ecx
mov al, cl
and al, 0x2e
cmp al, 2
jne 0x4385af
xor edx, edx
mov ecx, esi
call fcn.00436c50
jmp 0x4385af
cmp dl, 0x42
jne 0x4385ab
test al, 2
je 0x4385ab
mov eax, dword [esp + 0x3c]
test al, 2
jne 0x438573
test al, 0x2c
je 0x438573
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov dl, byte [esp + 0x50]
push 1
call fcn.0042ce30
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
xor ax, word [esp + 0x40]
add esp, 4
and ax, cx
xor ax, word [edi + 0x10]
movzx eax, ax
mov dword [esp + 0x3c], eax
cmp edi, esi
jne 0x43856f
or eax, 2
movzx ecx, ax
mov dword [esp + 0x40], ecx
jmp 0x438573
mov ecx, dword [esp + 0x40]
test cl, 2
jne 0x4385ab
test cl, 0x2c
je 0x4385ab
mov dl, byte [esp + 0x50]
mov ecx, esi
push 1
call fcn.0042ce30
mov ecx, dword [esp + 0x44]
add esp, 4
mov ax, word [esi + 0x10]
xor ax, cx
mov ecx, 0xdbf
and ax, cx
xor ax, word [esi + 0x10]
movzx ecx, ax
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0xc]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.00432510
mov ecx, dword [esp + 0x44]
add esp, 4
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], eax
test eax, eax
jns 0x4385e1
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x5e4e4c]
jmp 0x4385ff
jne 0x4385f2
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x5e4e52]
jmp 0x4385ff
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x5e4e58]
mov word [esi + 0x10], cx
mov word [edi + 0x10], dx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
test al, al
jne 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
cmp dword [esp + 0x60], 0
mov edx, dword [esp + 0xc]
je 0x43ac82
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov edx, dword [esp + 0xc]
test byte [edx + 2], 1
jne 0x43865a
xor eax, eax
jmp 0x438660
mov eax, dword [edx - 4]
add eax, 4
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0xc]
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov esi, dword [esi + 4]
mov dword [esp + 0x34], esi
mov esi, dword [edi + 8]
mov dword [esp + 0x5c], esi
xor esi, esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], edx
test ecx, ecx
jle 0x437803
lea ecx, [edx + 0x14]
mov dword [esp + 0x28], ecx
nop dword [eax]
test eax, eax
je 0x4386a9
mov edi, dword [eax + esi*4]
jmp 0x4386ab
mov edi, esi
mov eax, dword [edx + 0x10]
push dword [ecx]
mov ecx, dword [esp + 0x24]
movzx eax, byte [esi + eax]
and eax, 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x60]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x38]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.00432510
mov ecx, eax
add esp, 4
mov dword [esp + 0x60], ecx
test ecx, ecx
jne 0x438722
mov ecx, dword [esp + 0x28]
inc esi
mov eax, dword [esp + 0x38]
add ecx, 4
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
cmp esi, dword [esp + 0x24]
jl 0x4386a0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
mov esi, dword [esp + 0x20]
je 0x438759
mov eax, dword [esp + 0x34]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x438753
mov eax, dword [esp + 0x5c]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x438759
neg ecx
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x48], 0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
je 0x43741d
mov eax, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x60], ecx
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc]
test eax, eax
jns 0x4387b4
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x54]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
jne 0x4387d9
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x54]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x54]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x438849
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x438878
xor esi, esi
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x43887f
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x4388ae
xor eax, eax
cmp byte [edx], 0x2c
lea eax, [eax + esi*2]
jne 0x4388b5
mov al, byte [esi + eax + 0x5e7ac8]
jmp 0x4388bc
test al, 1
je 0x438854
mov esi, 2
jmp 0x43881a
test al, 8
je 0x43885e
movsd xmm0, qword [ecx]
jmp 0x43886b
test al, 0x12
je 0x438818
call fcn.0042d0f0
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x438818
mov esi, 1
jmp 0x43881a
test al, 1
je 0x43888a
mov eax, 2
jmp 0x438838
test al, 8
je 0x438894
movsd xmm0, qword [ecx]
jmp 0x4388a1
test al, 0x12
je 0x438836
call fcn.0042d0f0
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x438836
mov eax, 1
jmp 0x438838
mov al, byte [esi + eax + 0x5e895c]
mov esi, dword [esp + 0x20]
movzx edx, al
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
mov ax, word [esi + ecx*8 + 0x10]
cmp edx, 2
jne 0x4388ff
mov edx, 0xf241
and ax, dx
mov edx, dword [esp + 0xc]
or ax, 1
add edx, 0x14
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov dword [esi + ecx*8], edx
mov edx, 0xf244
and ax, dx
mov dword [esi + ecx*8 + 4], 0
mov edx, dword [esp + 0xc]
or ax, 4
mov word [esi + ecx*8 + 0x10], ax
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
movzx eax, word [edx + 0x10]
test al, 0x24
je 0x43896b
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x438991
xor ecx, ecx
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
xor eax, ecx
cdq
push edx
push eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
jmp 0x437b04
test al, 1
jne 0x438953
test al, 8
je 0x438979
movsd xmm0, qword [edx]
jmp 0x438984
test al, 0x12
je 0x438951
mov ecx, edx
call fcn.0042d0f0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x438951
mov ecx, 1
jmp 0x438953
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [ecx + 0x10]
test al, 1
jne 0x43808e
test al, 0x24
je 0x4389f2
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x438a12
xor eax, eax
xor eax, 1
mov ecx, esi
cdq
push edx
push eax
call fcn.0042d5f0
mov edx, dword [esp + 0x14]
add esp, 8
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
test al, 8
je 0x4389fc
movsd xmm0, qword [ecx]
jmp 0x438a05
test al, 0x12
je 0x4389c5
call fcn.0042d0f0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4389c5
mov eax, 1
jmp 0x4389c7
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.0042d540
test byte [edi + 0x10], 1
jne 0x437803
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.0042d070
mov edi, dword [esp + 0x10]
not edx
mov ecx, dword [esp + 0x8c]
not eax
mov dword [esi + 4], edx
mov edx, dword [esp + 0xc]
mov dword [esi], eax
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x438aea
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edi, dword [edi + 0x14]
sub ecx, dword [eax + 0x68]
mov eax, 0x66666667
imul ecx
mov eax, 1
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov esi, ecx
and ecx, 7
shr esi, 3
shl eax, cl
movzx edx, byte [esi + edi]
test edx, eax
jne 0x43ac7a
bts edx, ecx
mov ecx, dword [esp + 0x8c]
mov byte [esi + edi], dl
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [edx + 4]
je 0x43ac82
mov eax, dword [edi + 0x68]
mov ecx, dword [esp + 0x8c]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x438b54
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edx, dword [esp + 0xc]
jne 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
test al, 1
jne 0x438b97
test al, 8
je 0x438b62
movsd xmm0, qword [ecx]
jmp 0x438b6f
test al, 0x12
je 0x43752b
call fcn.0042d0f0
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
cmp dword [edx + 0xc], 0
jne 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
xor edx, edx
mov eax, dword [ecx + 4]
cmp dword [ecx + 0xc], edx
sete dl
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x438c0b
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edx, dword [esp + 0xc]
jne 0x437421
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
test al, 1
jne 0x438c62
test al, 8
je 0x438c19
movsd xmm0, qword [ecx]
jmp 0x438c26
test al, 0x12
je 0x43ac7e
call fcn.0042d0f0
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x437421
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
test edx, edx
mov edx, dword [esp + 0xc]
je 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
test ecx, ecx
js 0x438cf7
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x438cee
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x438ce5
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x438d19
movzx eax, byte [eax + 0x5e4778]
jmp 0x438d1c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
jmp 0x438d10
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
movzx eax, word [esi + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x5e7b88]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov edx, dword [esp + 0xc]
test word [edx + 2], ax
jne 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x438d67
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x438d67
mov eax, dword [ecx + 8]
push 0
push 0
jmp 0x437b04
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042d540
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x43752b
cmp byte [eax + 2], 0
je 0x43752b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042d540
jmp 0x43ac7e
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x2c], ecx
nop
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x34], edx
cmp eax, dword [edi + 0x1c]
je 0x438e61
cmp byte [esi + 2], 0
jne 0x438ec0
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x438e3d
mov eax, dword [esi + 0x10]
test eax, eax
je 0x438e8b
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x438e8b
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov edi, dword [esp + 0x10]
jmp 0x438dfa
cmp byte [edi], 0
je 0x438ea0
mov ecx, esi
call fcn.00431cd0
mov edi, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e693
mov ecx, dword [esp + 0x2c]
jmp 0x438e00
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x438f5d
mov ecx, esi
call fcn.00431cd0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov ecx, dword [esp + 0x2c]
jmp 0x438e00
mov ecx, esi
call fcn.00431c60
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov ecx, edi
call fcn.00423f50
mov eax, dword [edi + 0x2c]
lea edx, [esi + 0x54]
mov ecx, edi
mov dword [esi + 0x50], eax
call fcn.004245a0
mov edx, dword [esp + 0x34]
lea edi, [esi + 0x54]
jmp 0x438eef
cmp byte [esi], 3
jne 0x439036
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x439036
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x20]
lea edi, [esi + 0x54]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [edi], eax
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + ecx*8 + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x4c]
movzx eax, byte [eax]
mov dword [edx], eax
cmp eax, 0x80
jae 0x438f14
mov dword [esi + 0x34], 1
jmp 0x438f26
mov ecx, dword [esi + 0x4c]
call fcn.0040e0a0
mov edx, dword [esp + 0x34]
movzx eax, al
mov dword [esi + 0x34], eax
xor eax, eax
mov word [esi + 0x3e], ax
mov eax, dword [edi]
cmp eax, dword [edx]
jae 0x439031
mov dword [esi + 0x4c], 0
mov dword [edi], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x439188
cmp eax, dword [esi + 0x50]
ja 0x439188
mov ecx, dword [esp + 0x2c]
movzx eax, word [esi + 0x3e]
cmp eax, ecx
ja 0x4391ad
mov eax, dword [esi + 0x34]
cmp eax, dword [edx]
jae 0x4391a2
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x438fcd
xorps xmm0, xmm0
lea eax, [esp + 0x220]
movaps xmmword [esp + 0x220], xmm0
movaps xmmword [esp + 0x230], xmm0
movq qword [esp + 0x240], xmm0
mov edx, dword [edx]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.0042dc60
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0x228]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
movzx ecx, word [esi + 0x3e]
mov edi, dword [esi + 0x34]
add edi, dword [esp + 0x4c]
mov dword [esp + 0x58], ecx
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [edx]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
lea eax, [ecx + 0x17]
lea eax, [esi + eax*4]
mov dword [esp + 0x28], eax
nop dword [eax]
movzx ecx, byte [edi]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x78], ecx
mov dword [eax], ecx
cmp ecx, 0x80
jae 0x439063
movzx eax, cl
mov ecx, dword [esp + 0x38]
movzx eax, byte [eax + 0x5e4850]
cdq
add ecx, eax
adc dword [esp + 0x3c], edx
mov edx, 1
jmp 0x439091
mov eax, dword [esi + 0x4c]
jmp 0x438fc9
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042d540
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
lea edx, [esp + 0x78]
mov ecx, edi
call fcn.0040e0a0
mov ecx, dword [esp + 0x28]
movzx edx, al
mov eax, dword [esp + 0x78]
mov dword [esp + 0x40], eax
mov dword [ecx], eax
mov ecx, eax
call fcn.00431d10
mov ecx, dword [esp + 0x38]
add ecx, eax
adc dword [esp + 0x3c], 0
mov eax, dword [esp + 0x34]
add edi, edx
mov edx, dword [esp + 0x58]
add dword [esp + 0x28], 4
inc edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x58], edx
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x28]
cmp edx, dword [esp + 0x2c]
ja 0x4390c6
cmp edi, dword [esp + 0x5c]
jb 0x439000
mov eax, dword [esp + 0x5c]
jmp 0x4390ce
mov eax, dword [esp + 0x5c]
cmp edi, eax
jb 0x4390e1
cmp edi, eax
ja 0x4390f4
cmp ecx, dword [esi + 0x50]
jne 0x4390f4
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x4390f0
jmp 0x4390e5
mov eax, dword [esp + 0x3c]
test eax, eax
jb 0x439101
ja 0x4390f0
cmp ecx, dword [esi + 0x50]
jbe 0x439101
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x34]
cmp dword [ecx], 0
jne 0x439176
xor edx, edx
mov edi, eax
sub edi, dword [esp + 0x4c]
cmp dword [esi + 0x4c], 0
mov word [esi + 0x3e], dx
mov dword [esi + 0x34], edi
jne 0x43911e
lea ecx, [esp + 0x220]
call fcn.0042d020
mov ecx, dword [esp + 0x40]
movzx eax, word [esi + 0x3e]
cmp eax, dword [esp + 0x2c]
ja 0x4391b5
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
cmp byte [edx + 1], 0xf6
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
jne 0x438021
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.0042d7f0
mov edx, dword [esp + 0x10]
add esp, 4
mov edi, dword [esp + 0x10]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
cmp dword [esi + 0x4c], 0
jne 0x439188
lea ecx, [esp + 0x220]
call fcn.0042d020
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x43e655
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x437416
xor ecx, ecx
mov dword [esp + 0x40], ecx
jmp 0x439122
mov ecx, dword [esi + ecx*4 + 0x5c]
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x4391dc
mov ecx, edi
call fcn.0042d540
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
lea edx, [eax + edx*4]
mov eax, dword [esi + 0x54]
cmp eax, dword [edx + 4]
jb 0x4392e8
mov eax, dword [esi + 0x4c]
add eax, dword [edx]
mov dword [esp + 0x24], eax
cmp ecx, 0xc
jae 0x43922d
mov edx, ecx
mov ecx, eax
push edi
call fcn.00431e10
mov edx, dword [esp + 0x10]
add esp, 4
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov al, byte [esp + 0x50]
lea esi, [ecx - 0xc]
shr esi, 1
mov dword [edi + 0xc], esi
mov byte [edi + 0x12], al
lea edx, [esi + 2]
cmp dword [edi + 0x18], edx
jge 0x439291
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 0x78]
jg 0x43e813
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.0042caf0
add esp, 4
test eax, eax
je 0x439297
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, eax
call fcn.004087f0
push 0x5dc688
push edi
call fcn.0042e3c0
add esp, 8
mov edx, 7
jmp 0x43e661
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [esp + 0x28]
push dword [edi + 8]
call fcn.0056f940
mov eax, dword [edi + 8]
add esp, 0xc
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x20]
and eax, 1
add edx, 0x14
mov ax, word [eax*2 + 0x5e2f50]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov al, byte [esp + 0x50]
mov byte [edi + 0x12], al
mov eax, dword [esp + 0xc]
mov al, byte [eax + 2]
and al, 0xc0
je 0x43930c
cmp al, 0x80
je 0x439315
cmp ecx, 0xc
jb 0x43930c
test cl, 1
je 0x439315
cmp al, 0xc0
je 0x439315
call fcn.00431d10
test eax, eax
jne 0x439344
mov edx, ecx
mov ecx, 0x5e4238
push edi
call fcn.00431e10
mov edx, dword [esp + 0x10]
add esp, 4
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
push edi
push dword [esp + 0x98]
mov edi, dword [esp + 0x18]
push dword [edi + 0x1c]
push 0
push dword [edx]
mov edx, dword [esp + 0x40]
push ecx
mov ecx, esi
call fcn.00436f50
mov edx, eax
add esp, 0x18
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e681
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
xor ecx, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
mov edi, dword [edx + 4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x44], edi
cmp ax, word [edx + 0x22]
jge 0x437803
add edi, 0xe
nop
movzx eax, word [edi]
test al, 0x60
je 0x4393dd
test al, 0x20
jne 0x43948d
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xc], 0
jne 0x43948a
push dword [esp + 0x50]
mov dl, byte [edi - 6]
mov ecx, esi
call fcn.00436ce0
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x48], ecx
test cl, 1
jne case.default.0x439410
mov eax, dword [edi - 0xa]
shr eax, 4
and eax, 0xf
add eax, 0xfffffffe
cmp eax, 4
ja case.default.0x439410
jmp dword [eax*4 + 0x43f0b0]
test cl, 0x10
jmp 0x43947c
test cl, 4
jmp 0x43947c
test cl, 2
jmp 0x43947c
test cl, 4
je 0x439479
mov edx, dword [esi + 4]
mov eax, dword [esi]
cmp edx, 0x7fff
jg 0x43945c
jl 0x43943f
cmp eax, 0xffffffff
ja 0x43945c
cmp edx, 0xffff8000
jl 0x43945c
jg 0x43944d
test eax, eax
jb 0x43945c
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp case.default.0x439410
mov ecx, eax
call fcn.005974c0
mov eax, dword [esp + 0x48]
and eax, 0xfffb
movsd qword [esi], xmm0
or eax, 8
mov word [esi + 0x10], ax
jmp case.default.0x439410
test cl, 0x28
je 0x43e699
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [esp + 0x28], ecx
cmp ecx, eax
jl 0x4393c0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
push dword [esp + 0x50]
mov dl, byte [edi]
mov ecx, esi
call fcn.00436ce0
add esp, 4
cmp byte [edi], 0x45
jne 0x439536
movzx eax, word [esi + 0x10]
mov dword [esp + 0x24], eax
test al, 4
je 0x439536
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp edx, 0x7fff
jg 0x43951d
jl 0x439505
cmp ecx, 0xffffffff
ja 0x43951d
cmp edx, 0xffff8000
jl 0x43951d
jg 0x439513
test ecx, ecx
jb 0x43951d
and eax, 0xfffb
or eax, 0x20
jmp 0x439532
call fcn.005974c0
mov eax, dword [esp + 0x24]
and eax, 0xfff9
movsd qword [esi], xmm0
or eax, 8
mov word [esi + 0x10], ax
inc edi
cmp byte [edi], 0
je 0x437803
add esi, 0x28
jmp 0x4394d0
mov edx, dword [esp + 0xc]
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov dword [esp + 0x3c], 0
movlpd qword [esp + 0xb8], xmm0
mov eax, dword [edx + 4]
mov edi, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x78], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x44], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x38], eax
test edi, edi
je 0x4395d1
lea esi, [ecx + 0x10]
nop word [eax + eax]
push dword [esp + 0x50]
mov dl, byte [edi]
lea ecx, [esi - 0x10]
call fcn.00436ce0
add esp, 4
cmp byte [edi], 0x45
jne 0x4395c8
movzx eax, word [esi]
test al, 4
je 0x4395c8
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x4395a0
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x84]
add esi, 0x1c
mov edx, dword [esp + 0x80]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], eax
movzx ecx, word [esi - 0xc]
mov dword [esp + 0x24], ecx
test cl, 1
je 0x43962a
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xa
mov dword [esi], ecx
mov ecx, dword [esp + 0x3c]
inc ecx
jmp 0x4398a2
test cl, 0x24
je 0x4397da
cmp dword [esi - 0x18], 0
mov eax, dword [esi - 0x1c]
jg 0x43964d
jl 0x439642
test eax, eax
jae 0x43964d
mov edx, eax
mov eax, dword [esi - 0x18]
not edx
not eax
jmp 0x439652
mov edx, eax
mov eax, dword [esi - 0x18]
inc dword [esp + 0x3c]
test eax, eax
ja 0x439752
jb 0x439665
cmp edx, 0x7f
ja 0x4396c1
mov eax, dword [esi - 0x1c]
and eax, 1
mov dword [esp + 0x24], 0
cmp eax, dword [esi - 0x1c]
jne 0x4396a0
mov eax, dword [esp + 0x24]
cmp eax, dword [esi - 0x18]
jne 0x4396a0
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x95], 4
jb 0x4396a0
mov ecx, dword [esp + 0x3c]
lea eax, [edx + 8]
mov edx, dword [esp + 0x40]
mov dword [esi], eax
jmp 0x4398a6
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add edx, 1
mov dword [esp + 0x40], edx
adc edi, 0
mov dword [esi], 1
mov dword [esp + 0x2c], edi
jmp 0x4398a6
test eax, eax
ja 0x439752
jb 0x4396d3
cmp edx, 0x7fff
ja 0x4396f4
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add edx, 2
mov dword [esp + 0x40], edx
adc edi, 0
mov dword [esi], 2
mov dword [esp + 0x2c], edi
jmp 0x4398a6
test eax, eax
ja 0x439752
jb 0x439702
cmp edx, 0x7fffff
ja 0x439723
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add edx, 3
mov dword [esp + 0x40], edx
adc edi, 0
mov dword [esi], 3
mov dword [esp + 0x2c], edi
jmp 0x4398a6
test eax, eax
ja 0x439752
jb 0x439731
cmp edx, 0x7fffffff
ja 0x439752
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add edx, 4
mov dword [esp + 0x40], edx
adc edi, 0
mov dword [esi], 4
mov dword [esp + 0x2c], edi
jmp 0x4398a6
cmp eax, 0x7fff
ja 0x439781
jb 0x439760
cmp edx, 0xffffffff
ja 0x439781
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add edx, 6
mov dword [esp + 0x40], edx
adc edi, 0
mov dword [esi], 5
mov dword [esp + 0x2c], edi
jmp 0x4398a6
mov edx, dword [esp + 0x40]
add edx, 8
mov dword [esp + 0x40], edx
adc edi, 0
mov dword [esp + 0x2c], edi
test cl, 0x20
je 0x4397cb
mov edx, dword [esi - 0x18]
mov ecx, dword [esi - 0x1c]
call fcn.005974c0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
and eax, 0xffdf
mov ecx, dword [esp + 0x3c]
or eax, 8
movsd qword [esi - 0x1c], xmm0
mov word [esi - 0xc], ax
mov dword [esi], 7
jmp 0x4398a6
mov ecx, dword [esp + 0x3c]
mov dword [esi], 6
jmp 0x4398a6
test cl, 8
je 0x4397fd
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [esi], 7
add edx, 8
mov dword [esp + 0x40], edx
adc edi, 0
mov dword [esp + 0x2c], edi
jmp 0x4398a2
mov edx, dword [esi - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
mov dword [esp + 0x58], edx
lea eax, [eax + edx*2]
add eax, 0xc
mov dword [esp + 0x28], eax
test ecx, 0x400
je 0x439861
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x2c]
je 0x43984a
lea ecx, [esi - 0x1c]
call fcn.0042cdd0
test eax, eax
jne 0x43926a
mov edx, dword [esp + 0x58]
add edx, dword [esi - 0x1c]
jmp 0x439859
mov eax, ecx
cdq
add dword [esp + 0x4c], eax
adc dword [esp + 0x34], edx
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
add dword [esp + 0x40], edx
mov edx, eax
adc edi, 0
shr edx, 7
xor ecx, ecx
mov dword [esp + 0x2c], edi
mov eax, edx
mov edi, 1
or eax, ecx
je 0x43988e
nop
shrd edx, ecx, 7
inc edi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x439880
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
add ecx, edi
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
mov dword [esi], eax
mov dword [esp + 0x3c], ecx
lea eax, [esi - 0x1c]
cmp eax, dword [esp + 0x78]
je 0x4398b7
sub esi, 0x28
jmp 0x439604
cmp ecx, 0x7e
jle 0x439944
mov eax, ecx
mov dword [esp + 0x28], 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x4398f6
mov edi, dword [esp + 0x28]
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4398e0
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
cdq
mov esi, eax
mov dword [esp + 0x5c], 1
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x439936
mov edi, dword [esp + 0x5c]
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x439920
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
cmp eax, dword [esp + 0x5c]
jge 0x439949
inc ecx
mov dword [esp + 0x3c], ecx
mov esi, dword [esp + 0x40]
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
add esi, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], ecx
mov ecx, esi
adc edi, eax
mov eax, dword [esp + 0x38]
add ecx, dword [esp + 0x4c]
adc edi, dword [esp + 0x34]
mov eax, dword [eax + 0x18]
cdq
cmp edi, edx
jg 0x439988
jl 0x43997c
cmp ecx, eax
ja 0x439988
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x4399b9
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x78]
cdq
cmp edi, edx
jg 0x43e813
jl 0x4399a2
cmp ecx, eax
ja 0x43e813
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.0042cc70
test eax, eax
jne 0x43926a
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
mov eax, 0x10
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [esp + 0x34]
mov dword [edx + 0xc], esi
je 0x4399dc
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov ecx, dword [edx + 8]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x2c], ecx
lea esi, [ecx + eax]
cmp eax, 0x80
jge 0x4399f6
mov byte [ecx], al
inc ecx
jmp 0x439a0c
push dword [esp + 0x24]
push dword [esp + 0x4c]
call fcn.0040de90
mov ecx, dword [esp + 0x34]
add esp, 8
add ecx, eax
mov edi, dword [esp + 0x78]
mov dword [esp + 0x2c], ecx
add edi, 0xc
nop word [eax + eax]
mov edx, dword [edi + 0x10]
cmp edx, 7
ja 0x439aae
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x2c], ecx
test edx, edx
je 0x439af8
movzx edx, byte [edx + 0x5e4850]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov dword [esp + 0x24], edx
dec edx
cmp edx, 5
ja case.0x439a52.5
jmp dword [edx*4 + 0x43f0c4]
mov byte [esi + 7], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 6], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 5], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 4], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 3], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 2], cl
shrd ecx, eax, 8
shr eax, 8
mov byte [esi + 1], cl
shrd ecx, eax, 8
shr eax, 8
mov dword [esp + 0x84], eax
mov byte [esi], cl
add esi, dword [esp + 0x24]
jmp 0x439af4
cmp edx, 0x80
jae 0x439aca
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x2c], ecx
cmp edx, 0xe
jb 0x439af8
mov eax, dword [edi]
test eax, eax
jle 0x439af8
jmp 0x439ae5
push 0
push edx
call fcn.0040de90
mov ecx, dword [esp + 0x34]
add esp, 8
add ecx, eax
mov eax, dword [edi]
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x439af8
push eax
push dword [edi - 4]
push esi
call fcn.0056f940
add esp, 0xc
add esi, dword [edi]
mov ecx, dword [esp + 0x2c]
lea eax, [edi - 0xc]
cmp eax, dword [esp + 0x44]
je 0x437803
add edi, 0x28
jmp 0x439a20
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xc], 0
je 0x439b34
mov ecx, edx
call fcn.00425050
mov esi, eax
mov edi, edx
jmp 0x439b70
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xb8]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xbc], xmm0
call fcn.0042a640
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edi, dword [esp + 0xbc]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x439ba4
mov ecx, eax
call fcn.00436e80
mov dword [eax + 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax], esi
jmp 0x43dded
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax + 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax], esi
jmp 0x43dded
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 4]
test ecx, ecx
mov eax, dword [edx + 0x10]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], eax
jne 0x439c9d
cmp dword [ecx + 0xc4], 0
jg 0x43e6f7
mov ecx, eax
call fcn.0040b8a0
mov edi, eax
xor edx, edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x1fc]
add ecx, dword [eax + 0x1f8]
push ecx
mov ecx, eax
call fcn.00485630
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e669
lea eax, [edi + 0x21]
push edx
push eax
call fcn.00408410
mov esi, eax
add esp, 8
test esi, esi
je 0x439f1b
lea ecx, [edi + 1]
push ecx
push dword [esp + 0x2c]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call fcn.0056f940
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x439c5f
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x439c65
inc dword [edx + 0x1f8]
mov eax, dword [edx + 0x1ec]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x200]
mov dword [edx + 0x1ec], esi
mov dword [esi + 8], eax
mov eax, dword [edx + 0x204]
mov dword [esi + 0xc], eax
mov eax, dword [edx + 0x208]
mov dword [esi + 0x10], eax
mov eax, dword [edx + 0x20c]
mov dword [esi + 0x14], eax
jmp 0x439f1b
mov esi, dword [ecx + 0x1ec]
xor edi, edi
test esi, esi
je 0x43e776
mov ecx, dword [esi]
mov edx, eax
call fcn.0040bda0
test eax, eax
je 0x439cc4
mov esi, dword [esi + 0x18]
inc edi
mov eax, dword [esp + 0x28]
jmp 0x439ca5
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
cmp dword [ecx + 0xc4], 0
jle 0x439cde
cmp edx, 1
je 0x43e70f
cmp dword [esi + 0x18], 0
jne 0x439d4b
cmp byte [ecx + 0x5d], 0
je 0x439d4b
mov dword [esp + 0x38], 1
cmp edx, 1
jne 0x439d53
mov ecx, dword [esp + 0x10]
call fcn.00431370
mov dword [esp + 0x18], eax
test eax, eax
jne 0x43ead5
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov byte [eax + 0x55], 1
call fcn.004313e0
cmp eax, 5
je 0x43e733
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x18], edx
test edx, edx
je 0x439d42
mov byte [ecx + 0x55], 0
jmp 0x439e58
mov byte [ecx + 0x5d], 0
jmp 0x439e60
mov dword [esp + 0x38], 0
mov eax, dword [ecx + 0x1f8]
sub eax, edi
dec eax
mov dword [esp + 0x28], eax
cmp edx, 2
jne 0x439dda
mov edi, dword [esp + 0x14]
mov ecx, dword [ecx + 0x18]
and ecx, 1
mov dword [esp + 0x44], 0
mov dword [esp + 0x58], ecx
cmp dword [edi + 0x14], 0
jle 0x439de4
mov eax, ecx
mov ecx, dword [esp + 0x14]
xor eax, 1
xor edi, edi
mov dword [esp + 0x24], eax
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [ecx + edi + 4]
call fcn.00423a90
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e669
mov eax, dword [esp + 0x44]
add edi, 0x10
inc eax
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
jl 0x439d94
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
jmp 0x439de6
mov dword [esp + 0x58], 0
jmp 0x439de6
mov ecx, edi
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x44], 0
jle 0x439e31
xor edi, edi
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [ecx + edi + 4]
call fcn.00423ce0
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e669
mov eax, dword [esp + 0x44]
add edi, 0x10
mov edx, dword [esp + 0x34]
inc eax
cmp eax, dword [ecx + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
jl 0x439df6
cmp dword [esp + 0x58], 0
je 0x439e50
xor edx, edx
call fcn.004333f0
mov ecx, dword [esp + 0x14]
call fcn.00455f50
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x18], 1
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
test edx, edx
jne 0x43e665
cmp dword [ecx + 0x1ec], esi
je 0x439e96
nop dword [eax + eax]
mov edx, dword [ecx + 0x1ec]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.00408080
mov ecx, dword [esp + 0x14]
dec dword [ecx + 0x1f8]
cmp dword [ecx + 0x1ec], esi
jne 0x439e70
mov ecx, dword [esp + 0x34]
cmp ecx, 1
jne 0x439eca
mov ecx, dword [esp + 0x14]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.00408080
cmp dword [esp + 0x38], 0
jne 0x439f1b
mov ecx, dword [esp + 0x14]
dec dword [ecx + 0x1f8]
mov ecx, dword [esp + 0x34]
jmp 0x439efe
cmp dword [esp + 0x38], 0
mov edx, dword [esp + 0x14]
mov eax, dword [esi + 8]
mov dword [edx + 0x200], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 0x204], eax
mov eax, dword [esi + 0x10]
mov dword [edx + 0x208], eax
mov eax, dword [esi + 0x14]
mov dword [edx + 0x20c], eax
je 0x439efe
cmp ecx, 2
jne 0x439f1b
mov edx, ecx
mov ecx, dword [esp + 0x14]
push edi
call fcn.00485630
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x97], 3
je 0x43e768
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x38], 0
mov edx, dword [ecx + 8]
test edx, edx
je 0x439f79
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
and ecx, 0x100000
and eax, 2
or ecx, eax
jne 0x43e79b
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov edi, dword [ecx + 4]
shl edi, 4
add edi, dword [eax + 0x10]
mov dword [esp + 0x48], edi
mov esi, dword [edi + 4]
test esi, esi
je 0x43a0a7
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call fcn.00422cf0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e7d0
mov edx, dword [esp + 0x10]
test byte [edx + 0x98], 0x20
je 0x43a0b3
mov eax, dword [esp + 0xc]
cmp dword [eax + 8], 0
je 0x43a0b3
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x55], 0
je 0x439fe8
cmp dword [ecx + 0xc0], 1
jle 0x43a0b3
cmp dword [edx + 0x30], 0
jne 0x43a003
mov eax, dword [ecx + 0x1f8]
inc dword [ecx + 0x1fc]
add eax, dword [ecx + 0x1fc]
mov dword [edx + 0x30], eax
mov eax, dword [edx + 0x30]
xor edx, edx
dec eax
push eax
call fcn.00485630
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x43a07b
cmp byte [esi + 9], 0
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x30]
mov eax, dword [esi + 4]
mov dword [esp + 0x24], eax
je 0x43a042
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43a042
mov ecx, esi
call fcn.0041f820
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
cmp edi, dword [ecx + 0x68]
jle 0x43a05c
cmp byte [ecx + 6], 0
je 0x43a05c
mov edx, edi
call fcn.0041af30
mov dword [esp + 0x18], eax
jmp 0x43a064
mov dword [esp + 0x18], 0
cmp byte [esi + 9], 0
je 0x43a077
add dword [esi + 0xc], 0xffffffff
jne 0x43a077
mov ecx, esi
call fcn.0041f7b0
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov eax, dword [ecx + 0x200]
mov dword [edx + 0x48], eax
mov eax, dword [ecx + 0x204]
mov dword [edx + 0x4c], eax
mov eax, dword [ecx + 0x208]
mov dword [edx + 0x50], eax
mov eax, dword [ecx + 0x20c]
mov dword [edx + 0x54], eax
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
cmp word [edx + 2], 0
je 0x437419
mov eax, dword [esp + 0x38]
cmp eax, dword [edx + 0xc]
jne 0x43a0da
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edx + 0x10]
je 0x437419
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x43a0ee
mov ecx, dword [esp + 0x14]
call fcn.00408080
mov ecx, dword [esp + 0x14]
mov edx, str.database_schema_has_changed
call fcn.00408630
mov dword [edi + 0x7c], eax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov ecx, edx
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
mov eax, dword [eax]
cmp eax, dword [esp + 0x38]
je 0x43a126
mov ecx, dword [esp + 0x14]
call fcn.00455ef0
mov eax, dword [edi + 0x98]
mov edx, 0x11
mov ecx, dword [esp + 0x14]
and eax, 0xffffffed
or eax, 1
mov dword [esp + 0x18], edx
mov dword [edi + 0x98], eax
jmp 0x43e66d
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov edi, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
mov eax, dword [esi + 4]
mov dword [esp + 0x24], eax
je 0x43a182
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43a182
mov ecx, esi
call fcn.0041f820
mov eax, dword [esp + 0x24]
cmp edi, 0xf
jne 0x43a191
mov eax, dword [eax]
mov edi, dword [esi + 0x14]
add edi, dword [eax + 0x6c]
jmp 0x43a19d
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x38]
mov edi, dword [eax + edi*4 + 0x24]
bswap edi
cmp byte [esi + 9], 0
je 0x43a1b0
add dword [esi + 0xc], 0xffffffff
jne 0x43a1b0
mov ecx, esi
call fcn.0041f7b0
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x43a1fd
call fcn.00436e80
mov esi, dword [esp + 0x20]
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x10]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov esi, dword [esp + 0x20]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, edi
mov edi, dword [esp + 0x10]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0xc]
mov dword [ecx], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov esi, dword [ecx + 4]
push dword [ecx + 0xc]
mov edx, dword [ecx + 8]
shl esi, 4
add esi, dword [eax + 0x10]
mov ecx, dword [esi + 4]
call fcn.0042a570
mov edx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x43a285
movzx eax, word [edx + 2]
mov ecx, dword [edx + 0xc]
sub ecx, eax
mov eax, dword [esi + 0xc]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov ecx, eax
or dword [eax + 0x18], 1
mov edx, dword [edx + 4]
call fcn.00463f00
mov edx, dword [esp + 0xc]
jmp 0x43a293
cmp eax, 2
jne 0x43a293
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x43a2ab
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.004333f0
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x43a2fe
mov eax, dword [ecx + 0x38]
cmp eax, dword [edx + 8]
jne 0x43a2fe
lea esi, [ecx + 0x2c]
mov ecx, dword [esi]
call fcn.0041fd20
mov edx, dword [esp + 0x18]
jmp 0x43a48f
mov cl, byte [esp + 0x33]
jmp 0x43a308
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x43e809
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edx, dword [edx + 8]
mov dword [esp + 0x24], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x48], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x28], 0
mov dword [esp + 0x38], edx
mov edi, dword [eax + 4]
cmp cl, 0x71
jne 0x43a378
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
movzx ecx, word [ecx + 2]
mov al, byte [eax + 0x4c]
and ecx, 8
or ecx, 4
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x10]
cmp al, byte [ecx + 0x95]
jae 0x43a380
mov byte [ecx + 0x95], al
jmp 0x43a380
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xc]
test byte [ecx + 2], 0x10
je 0x43a3a5
mov ecx, dword [esp + 0x20]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0042d210
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x43a3b9
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
movzx eax, word [eax + 8]
jmp 0x43a3c6
cmp al, 0xfd
jne 0x43a3c2
mov eax, dword [ecx + 0x10]
jmp 0x43a3c6
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
push 0
push eax
call fcn.00436a70
mov esi, eax
add esp, 8
test esi, esi
je 0x43926a
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x38]
or dword [esi + 8], 4
mov byte [esi + 1], al
lea eax, [esi + 0x2c]
mov byte [esi + 2], 1
mov dword [esi + 0x38], ecx
cmp byte [edi + 9], 0
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
je 0x43a457
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x43a423
mov ecx, edi
call fcn.0041f820
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
push eax
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x54]
call fcn.00423db0
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x43a472
add dword [edi + 0xc], 0xffffffff
jne 0x43a472
mov ecx, edi
call fcn.0041f7b0
mov edx, dword [esp + 0x18]
jmp 0x43a472
push eax
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x54]
call fcn.00423db0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0xc]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0xc]
mov cl, byte [eax + 2]
mov eax, dword [esi]
and cl, 3
mov byte [eax + 3], cl
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
push 0
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x14]
movsx eax, word [edi + 0x3c]
push eax
call fcn.00436a70
mov esi, eax
add esp, 8
test esi, esi
je 0x43926a
or dword [esi + 8], 1
mov byte [esi + 2], 1
mov ecx, dword [edi + 0x30]
mov dword [esi + 0x30], ecx
mov al, byte [edi + 4]
mov byte [esi + 4], al
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 8]
xor eax, dword [esi + 8]
and eax, 4
xor dword [esi + 8], eax
mov eax, dword [edi + 0x10]
or dword [esi + 8], 8
mov dword [esi + 0x10], eax
or dword [edi + 8], 8
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x38]
mov edi, dword [esi + 0x2c]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], ecx
cmp byte [esi + 9], 0
je 0x43a5a2
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43a554
mov ecx, esi
call fcn.0041f820
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
push edi
push eax
mov edx, ecx
mov ecx, esi
push 4
call fcn.00423db0
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 9], 0
je 0x437803
add dword [esi + 0xc], 0xffffffff
jne 0x437803
mov ecx, esi
call fcn.0041f7b0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
push edi
push eax
mov edx, ecx
mov ecx, esi
push 4
call fcn.00423db0
mov edx, dword [esp + 0x18]
add esp, 0xc
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x43a5f9
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 0xc], 0
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov dword [esi + eax*8 + 8], 0x5dc6ad
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x43a645
test byte [esi + 8], 8
jne 0x43a645
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x43a645
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x10]
push 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
call fcn.0042a260
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x43a887
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.00436a70
mov esi, eax
add esp, 8
test esi, esi
je 0x43926e
mov eax, dword [esp + 0xc]
lea edi, [esi + 0x10]
or dword [esi + 8], 1
xor edx, edx
push 0x41e
movzx ecx, word [eax + 2]
mov eax, dword [esp + 0x18]
or ecx, 5
push ecx
push edi
push eax
mov ecx, dword [eax]
call fcn.004219b0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov ecx, dword [edi]
cmp byte [ecx + 9], al
jne 0x43a6cb
mov al, byte [ecx + 8]
test al, al
je 0x43a6cb
cmp al, 1
je 0x43a6cb
mov eax, dword [ecx]
mov edx, dword [eax + 0x1f8]
mov eax, dword [ecx + 4]
mov ecx, dword [eax]
cmp edx, dword [ecx + 0x68]
jle 0x43a6c7
cmp byte [ecx + 6], 0
je 0x43a6c7
call fcn.0041af30
jmp 0x43a6da
xor edx, edx
jmp 0x43a6dc
push 0
mov edx, 1
call fcn.004229d0
add esp, 4
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43a85a
mov ecx, dword [esp + 0xc]
mov edi, dword [edi]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x44], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x43a7de
movzx eax, word [ecx + 2]
or eax, 2
mov dword [esp + 0x24], eax
cmp byte [edi + 9], dl
je 0x43a723
inc dword [edi + 0xc]
cmp byte [edi + 0xa], dl
jne 0x43a723
mov ecx, edi
call fcn.0041f820
mov eax, dword [esp + 0x24]
lea edx, [esi + 0x38]
mov ecx, edi
push eax
call fcn.00429da0
add esp, 4
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x43a74e
add dword [edi + 0xc], 0xffffffff
jne 0x43a74e
mov ecx, edi
call fcn.0041f7b0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43a7d5
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x24], eax
mov dword [esp + 0x48], ecx
cmp byte [edi + 9], dl
je 0x43a7bc
inc dword [edi + 0xc]
cmp byte [edi + 0xa], dl
jne 0x43a783
mov ecx, edi
call fcn.0041f820
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
push eax
push dword [esp + 0x48]
mov edx, ecx
mov ecx, edi
push 4
call fcn.00423db0
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x43a7d5
add dword [edi + 0xc], 0xffffffff
jne 0x43a7d5
mov ecx, edi
call fcn.0041f7b0
mov edx, dword [esp + 0x18]
mov byte [esi + 4], 0
jmp 0x43a857
push eax
push dword [esp + 0x48]
mov edx, ecx
mov ecx, edi
push 4
call fcn.00423db0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
mov byte [esi + 4], 0
jmp 0x43a857
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x38], 1
cmp byte [edi + 9], 0
mov dword [esp + 0x24], eax
je 0x43a839
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x43a806
mov ecx, edi
call fcn.0041f820
mov eax, dword [esp + 0x24]
push eax
push 0
push 4
mov edx, 1
mov ecx, edi
call fcn.00423db0
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x43a853
add dword [edi + 0xc], 0xffffffff
jne 0x43a853
mov ecx, edi
call fcn.0041f7b0
mov edx, dword [esp + 0x18]
jmp 0x43a853
push eax
push 0
push 4
mov edx, 1
mov ecx, edi
call fcn.00423db0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
mov byte [esi + 4], 1
lea edi, [esi + 0x10]
mov eax, dword [esp + 0xc]
xor ecx, ecx
cmp word [eax + 2], 8
mov eax, 4
cmovne ecx, eax
mov eax, dword [esi + 8]
and eax, 0xfffffffb
or ecx, eax
mov dword [esi + 8], ecx
test edx, edx
je 0x43a88f
mov ecx, dword [edi]
call fcn.004221f0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x20]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00436a70
add esp, 8
test eax, eax
je 0x43926e
mov edx, dword [esp + 0xc]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [esp + 0x18]
call fcn.00440480
add esp, 4
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [edi + 0x60]
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [edx + 0x18]
mov ecx, edi
mov esi, dword [edx + 0x1c]
add ecx, 1
mov eax, esi
mov dword [edx + 0x18], ecx
adc eax, 0
or edi, esi
mov edi, dword [esp + 0x10]
mov dword [edx + 0x1c], eax
mov edx, dword [esp + 0xc]
je 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00436a70
add esp, 8
test eax, eax
je 0x43926e
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov byte [eax + 2], 1
add edx, 0x14
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x8c]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x61ade8
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x43a9bf
mov ecx, edi
call fcn.00430680
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
add edx, 0x14
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x28], 0
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 4], 0
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
je 0x43ab58
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 0x10]
mov dword [esp + 0x24], eax
and al, 0x2e
cmp al, 2
jne 0x43aa3b
xor edx, edx
mov ecx, edi
call fcn.00436c50
mov ecx, edi
call fcn.0042d070
movzx ecx, word [edi + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], edx
mov word [edi + 0x10], ax
test cl, 0x24
jne 0x43ab1c
test cl, 8
jne 0x43aae0
test cl, 1
jne 0x43ac7a
cmp dword [esp + 0x34], 0x17
jae 0x43ac7a
mov ecx, dword [esi + 0x2c]
cmp byte [ecx], 0
jne 0x43aac4
test byte [ecx + 1], 8
je 0x43aac4
mov dword [esp + 0x64], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
lea edx, [ecx + 0x14]
cmove edx, ecx
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
lea edx, [esp + 0x64]
call fcn.004248e0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
jmp 0x43ac6f
push dword [esp + 0x38]
movsd xmm1, qword [edi]
push dword [esp + 0x48]
call fcn.00432460
add esp, 8
test eax, eax
jle 0x43ab0d
mov ecx, dword [esp + 0x34]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x43ab1c
jns 0x43ab1c
mov eax, dword [esp + 0x34]
test al, 1
je 0x43ab1c
inc eax
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x44]
lea eax, [esp + 0x64]
mov ecx, dword [esi + 0x2c]
xor edx, edx
push eax
push dword [esp + 0x3c]
push edi
call fcn.00424920
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x44]
add esp, 0xc
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov dword [esi + 0x44], eax
test edx, edx
jne 0x43e693
jmp 0x43abf8
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0xc]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x33], al
mov eax, 0
setne al
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x1b0], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x1c4], ax
lea eax, [edx - 1]
test al, 1
mov byte [esp + 0x1ca], 0
lea edx, [esp + 0x1b0]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x1c6], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1b4], eax
lea eax, [esp + 0x64]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.00424c50
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
cmp byte [esp + 0x33], al
je 0x43abf8
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
cmp byte [esp + 0x1ca], dl
je 0x43ac6f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
cmp eax, 0x17
jl 0x43ac56
test ecx, ecx
js 0x43ac1d
jne 0x43ac10
cmp eax, 0x18
je 0x43ac1d
mov dword [esp + 0x64], 0
jmp 0x43aa9a
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x64], 0
call fcn.00425270
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x43aa9a
cmp edx, 0x65
jne 0x43e665
mov dword [esp + 0x18], 0
mov dword [esp + 0x64], 1
jmp 0x43ac7e
test ecx, ecx
jg 0x43aca9
jne 0x43ac61
cmp eax, 0x15
je 0x43aca9
mov eax, dword [esi + 0x2c]
xor ecx, ecx
cmp byte [eax], cl
setne cl
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x64], 0
je 0x43aa9a
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x64], 0
call fcn.004253d0
jmp 0x43ac2d
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 0x18]
mov edi, dword [eax + ecx*4]
mov eax, dword [edi + 0x2c]
cmp byte [eax], 0
jne 0x437f94
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x2a8], eax
mov byte [esp + 0x2be], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [esp + 0x2bc], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x44], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x2ac], eax
nop dword [eax + eax]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x2ac]
mov edx, edi
push eax
call fcn.00433330
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
test eax, eax
jle 0x43ad5e
cmp word [edx + 2], 0
je 0x43ad97
test eax, eax
jns 0x43ad9a
test esi, esi
jle 0x437419
mov ecx, dword [edi + 0x2c]
dec esi
mov dword [edi + 0x20], 0
call fcn.00425270
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x43ad20
cmp edx, 0x65
jne 0x43e665
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], 0
add edx, 0x14
mov edi, dword [esp + 0x10]
jmp 0x43ac82
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0xc]
cmp eax, dword [edx + 8]
jge 0x43adda
mov eax, edx
add edx, 0x14
mov ax, word [eax + 8]
mov word [ecx + 0xc], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
cmp eax, dword [edx + 0xc]
jle 0x437421
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
add edx, 0x14
mov ax, word [eax + 0xc]
mov word [ecx + 0xc], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x4372db.9
cmp byte [eax + 2], 0
je 0x43752b
jmp case.0x4372db.9
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [edx + 0x10]
jge 0x437421
jmp 0x43ae4e
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x114], ecx
mov ax, word [eax + 0x10]
mov word [esp + 0x124], ax
test ax, ax
je 0x43aeb8
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [esp + 0x110], eax
lea edx, [esp + 0x110]
mov byte [esp + 0x126], 0
mov ecx, dword [esi + 0x2c]
push edi
call fcn.00424c50
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x43af2c
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x43aed0
call fcn.0042cdd0
test eax, eax
jne 0x43926e
mov ecx, dword [esi + 0x30]
call fcn.00431fb0
mov esi, eax
test esi, esi
je 0x43926e
mov edx, dword [esp + 0x114]
mov ecx, dword [esp + 0x28]
push esi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x30]
call fcn.00432000
mov eax, dword [esp + 0x30]
mov edx, esi
mov byte [esi + 0x16], 0
mov ecx, dword [eax + 0x2c]
lea edi, [eax + 0x24]
push edi
call fcn.00424c50
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, esi
mov dword [esp + 0x18], eax
call fcn.00408080
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
xor ecx, ecx
mov byte [esi + 3], dl
cmp dword [edi], ecx
mov al, 1
mov dword [esi + 0x20], edx
sete cl
sub al, cl
mov byte [esi + 2], al
mov eax, dword [esp + 0xc]
mov al, byte [eax]
mov byte [esp + 0x33], al
cmp al, 0x1d
jne 0x43af7d
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
test ecx, ecx
jne 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
test ecx, ecx
je 0x43ac7a
cmp al, 0x1b
jne 0x43afb6
movzx edx, word [esp + 0x124]
xor ecx, ecx
test edx, edx
je 0x43afb6
mov eax, dword [esp + 0x114]
add eax, 0x10
test byte [eax], 1
jne 0x43ac7a
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x43afa1
mov al, byte [esp + 0x33]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
cmp al, 0x1a
jne 0x43741d
mov ecx, dword [esp + 0x8c]
mov eax, edx
add edx, 0x14
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
jne 0x43b07c
movups xmm0, xmmword [esi + eax*8]
movups xmm1, xmmword [esi + eax*8 + 0x10]
movups xmmword [esp + 0x180], xmm0
movq xmm0, qword [esi + eax*8 + 0x20]
movd eax, xmm1
movaps xmmword [esp + 0x190], xmm1
movq qword [esp + 0x1a0], xmm0
test al, 4
jne 0x43b068
test al, 0x28
jne 0x43b049
test al, 2
je 0x43b060
mov eax, 1
lea ecx, [esp + 0x180]
mov edx, eax
call fcn.00436c50
jmp 0x43b055
lea ecx, [esp + 0x180]
call fcn.0042d160
mov edx, dword [esp + 0xc]
mov al, byte [esp + 0x190]
test al, 4
je 0x43ac82
mov edi, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
jmp 0x43b089
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [esi + eax*8]
mov edx, dword [esi + eax*8 + 4]
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0xc]
mov dword [esp + 0x58], 0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x58]
push eax
push edx
push edi
mov ecx, dword [esi + 0x2c]
xor edx, edx
call fcn.00424920
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x50]
add esp, 0xc
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], edx
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], eax
test eax, eax
je 0x43b100
mov edx, dword [esp + 0xc]
cmp dword [edx + 8], 0
jne 0x43ad9a
mov ecx, 0x17d6e
call fcn.004a4130
mov edx, eax
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x43e693
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x43b14d
mov ecx, edx
call fcn.00436e80
mov edx, eax
jmp 0x43b156
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x18]
mov dword [edx], eax
mov eax, dword [ecx + 0x1c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x8c]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
add edx, 0x14
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x4c], 0
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x58], edx
test word [edx + 0x10], ax
je 0x43b1d7
mov ecx, edx
call fcn.00436e80
mov dword [esp + 0x58], eax
jmp 0x43b1e0
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x34], eax
test byte [eax + 8], 2
jne 0x43b28e
mov ecx, dword [eax + 0x2c]
cmp byte [ecx], 0
jne 0x43b21b
test byte [ecx + 1], 8
je 0x43b21b
mov dword [esp + 0x4c], 0
mov dword [esp + 0x18], 0
jmp 0x43b24d
lea edx, [esp + 0x4c]
call fcn.004248e0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
cmp dword [esp + 0x4c], eax
je 0x43b249
mov edi, 1
xor esi, esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
jmp 0x43b296
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00423f50
mov edi, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
cmp esi, 0x7fffffff
jl 0x43b27e
jg 0x43b274
cmp edi, 0xffffffff
jb 0x43b27e
mov eax, dword [esp + 0x34]
or dword [eax + 8], 2
jmp 0x43b296
add edi, 1
mov dword [esp + 0x70], edi
adc esi, 0
mov dword [esp + 0x74], esi
jmp 0x43b296
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x43b334
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x43b2d4
mov eax, dword [edx + 4]
test eax, eax
je 0x43b2c9
nop word [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x43b2c0
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x43b2de
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x28], ecx
call fcn.0042d210
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x43b301
cmp edx, 0x7fffffff
je 0x43b3ae
mov eax, dword [esp + 0x34]
test byte [eax + 8], 2
mov eax, dword [esp + 0x28]
jne 0x43b3ae
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x43b32f
jl 0x43b323
cmp edi, ecx
jae 0x43b32f
mov edi, ecx
mov esi, edx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
mov dword [eax], edi
mov dword [eax + 4], esi
mov eax, dword [esp + 0x34]
test byte [eax + 8], 2
je 0x43b3bc
mov dword [esp + 0x44], 0
lea eax, [esp + 0x70]
push eax
push 8
call fcn.0040ade0
mov esi, dword [esp + 0x7c]
lea eax, [esp + 0x54]
mov edi, dword [esp + 0x78]
and esi, 0x3fffffff
add edi, 1
push eax
mov eax, dword [esp + 0x40]
adc esi, 0
push esi
push edi
xor edx, edx
mov dword [esp + 0x84], edi
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x88], esi
call fcn.00424920
mov edx, eax
add esp, 0x14
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
cmp dword [esp + 0x4c], eax
jne 0x43b3b8
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, 0x64
jl 0x43b346
mov edx, 0xd
jmp 0x43e661
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
mov byte [eax + 3], 0
mov dword [eax + 0x20], 0
mov eax, dword [esp + 0x58]
mov dword [eax], edi
mov edi, dword [esp + 0x10]
mov dword [eax + 4], esi
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], esi
cmp byte [ecx + 1], 0xfb
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
mov edi, dword [edi + eax*8]
mov eax, dword [edx + eax*8 + 4]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x160], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x164], eax
jne 0x43b471
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xfc], 0
je 0x43b46d
mov eax, dword [esp + 0x14]
movsx ecx, byte [esi + 1]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + ecx*8]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x58], eax
jmp 0x43b481
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x58], 0
mov dword [esp + 0x78], 0
test byte [ecx + 2], 1
je 0x43b4ab
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test byte [ecx + 2], 0x20
mov eax, dword [esp + 0x44]
je 0x43b4ab
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 8]
mov dword [esp + 0x168], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [esp + 0x174], eax
test cl, 0x10
je 0x43b4d3
mov edi, dword [esi + 0x24]
jmp 0x43b4d5
xor edi, edi
mov eax, dword [esp + 0x20]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [esp + 0x48]
je 0x43b4f5
mov eax, dword [eax + edx*8]
mov dword [esp + 0x178], eax
jmp 0x43b500
mov dword [esp + 0x178], 0
and ecx, 0x8a
mov dword [esp + 0x158], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x160]
call fcn.00428ec0
inc dword [esp + 0x9c]
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0x58]
test eax, eax
je 0x437803
push dword [esp + 0x164]
mov ecx, 0x17
push dword [esp + 0x164]
push dword [eax]
mov eax, dword [esp + 0x18]
push dword [esp + 0x84]
test byte [eax + 2], 4
mov eax, 0x12
cmovne eax, ecx
push eax
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 0xfc]
mov ecx, esi
push dword [eax + 0xf8]
call dword [0x5aa43c]
call esi
mov edx, dword [esp + 0x24]
add esp, 0x18
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov ecx, dword [edi + 0x60]
mov eax, dword [edx + 4]
mov esi, dword [ecx + eax*4]
mov eax, dword [edx + 8]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x43b5f0
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov edi, dword [esp + 0x20]
mov ecx, dword [ecx + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x10]
jmp 0x43b60a
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov edx, dword [edx + 0x2c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.004294f0
add esp, 8
jmp 0x43832b
mov edx, dword [esp + 0xc]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x48], eax
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x43b689
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xfc], 0
je 0x43b689
movsx ecx, byte [edi + 1]
mov eax, dword [eax + 0x10]
add ecx, ecx
test byte [edx + 2], 2
mov esi, dword [edx + 0x10]
mov dword [esp + 0x24], esi
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x44], eax
je 0x43b693
cmp byte [edi + 4], 0
je 0x43b693
mov esi, dword [edi + 0x2c]
mov ecx, esi
call fcn.00423f50
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0xc]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x24]
mov esi, dword [esp + 0x24]
mov dword [edi + 0x44], eax
jmp 0x43b693
mov dword [esp + 0x44], 0
xor esi, esi
mov dl, byte [edx + 2]
mov ecx, dword [edi + 0x2c]
call fcn.004298e0
inc dword [esp + 0x94]
mov edx, eax
mov dword [esp + 0x18], edx
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
test edx, edx
jne 0x43e665
test byte [esp + 0x48], 1
je 0x437803
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xfc]
mov dword [esp + 0x24], eax
test eax, eax
je 0x437803
test esi, esi
je 0x437803
test byte [esi + 0x1c], 0x80
jne 0x437803
push dword [edi + 0x44]
mov ecx, eax
push dword [edi + 0x40]
push dword [esi]
push dword [esp + 0x50]
push 9
push dword [edx + 0xf8]
call dword [0x5aa43c]
call dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
add esp, 0x18
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0xc]
add dword [esi + 0x70], eax
mov dword [esi + 0x68], eax
adc dword [esi + 0x74], ecx
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x6c], ecx
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x2c], 0
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
lea eax, [esp + 0x2c]
push eax
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
call fcn.004426a0
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x2c], eax
jne 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
call fcn.00442600
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x8c]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x43b857
mov ecx, esi
call fcn.00436e80
mov esi, eax
jmp 0x43b860
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov edi, dword [eax + 0x2c]
mov ecx, edi
call fcn.00423f50
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x43e813
push esi
mov ecx, edi
call fcn.0042dc60
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
cmp dword [edx + 0xc], eax
jne 0x437419
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x437419
mov ecx, esi
call fcn.0042cd80
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x43926e
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x44], edi
test word [edi + 0x10], ax
je 0x43b918
mov ecx, edi
call fcn.00436e80
mov edi, eax
mov dword [esp + 0x44], edi
jmp 0x43b921
mov eax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x43b960
mov edx, dword [esp + 0xc]
mov eax, 1
mov esi, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
cmp byte [esi + 3], 0
je 0x43b978
mov edx, dword [esi + 0x40]
mov dword [esp + 0xb0], edx
mov eax, dword [esi + 0x44]
jmp 0x43ba58
cmp byte [esi], 2
jne 0x43b9ec
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xb0]
push edx
push ecx
mov edi, dword [ecx]
mov eax, dword [edi]
mov esi, dword [eax + 0x30]
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 8
mov dword [esp + 0x18], eax
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.00433560
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e693
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0x20]
mov dword [ecx], edx
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xc]
mov dword [ecx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x43ba0b
mov ecx, esi
call fcn.00431cd0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
jmp 0x43ba13
mov dword [esp + 0x18], 0
cmp byte [esi + 2], 0
je 0x43ba41
mov edx, dword [esp + 0xc]
mov eax, 1
mov esi, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov esi, dword [esi + 0x2c]
mov ecx, esi
call fcn.00423f50
mov edx, dword [esi + 0x20]
mov dword [esp + 0xb0], edx
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov dword [esp + 0xb4], eax
mov dword [ecx], edx
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xc]
mov dword [ecx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x43bacb
push 3
push 1
mov ecx, edi
call fcn.00436a70
add esp, 8
test eax, eax
je 0x43926e
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x61ade8
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x43dd49
mov ecx, dword [eax + 0x2c]
call fcn.0041fd20
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
cmp byte [esp + 0x33], 0x89
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x40], 0
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
jne 0x43bb2d
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], 0
je 0x43dd49
cmp byte [ecx], 0
jne 0x43bb3e
test byte [ecx + 1], 8
je 0x43bb3e
xor eax, eax
xor edx, edx
jmp 0x43bb4d
lea edx, [esp + 0x40]
call fcn.004248e0
mov edx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
cmp dword [edx + 8], 0
jle 0x43741d
test eax, eax
jne 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0xc4]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.004248b0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
cmp dword [esp + 0xc4], eax
jne 0x43ac7e
mov ecx, esi
call fcn.00425050
test edx, edx
jl 0x43dd49
jg 0x43bbe6
test eax, eax
jb 0x43dd49
push edx
push eax
call fcn.0040e460
mov edx, dword [esp + 0x14]
add esp, 8
cwde
cmp eax, dword [edx + 0xc]
jge 0x43741d
mov dword [esp + 0xc4], 1
jmp 0x43ac82
inc dword [edi + 0xac]
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], eax
cmp byte [edi], al
jne 0x43bca7
mov esi, dword [edi + 0x2c]
mov dword [esp + 0x18], 0
cmp byte [esi + 0x40], 0
jne 0x43bc6e
cmp dword [esi + 0x28], 0
lea edx, [esi + 0x28]
je 0x43bc64
xor eax, eax
lea ecx, [esi + 0x48]
call fcn.00440db0
mov esi, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x18], edx
xor eax, eax
jmp 0x43bcc8
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
jmp 0x43bcc8
mov ecx, esi
call fcn.00441500
mov edx, eax
mov ecx, esi
call fcn.00440740
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43bc9d
mov ecx, esi
call fcn.00442370
mov esi, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x18], edx
xor eax, eax
jmp 0x43bcc8
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
jmp 0x43bcc8
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x3c]
call fcn.004248b0
mov edx, eax
mov byte [edi + 3], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [edi + 0x20], 0
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov byte [edi + 2], al
mov edi, dword [esp + 0x10]
cmp dword [edx + 8], 0
jle 0x43741d
test eax, eax
jne 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.00442560
jmp 0x43bd46
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.004253d0
jmp 0x43bd46
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00425270
mov edx, eax
mov dword [esp + 0x18], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x43bd6e
mov byte [esi + 2], al
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp case.0x4372db.9
cmp edx, 0x65
jne 0x43e665
mov dword [esp + 0x18], 0
mov byte [esi + 2], 1
jmp 0x43dded
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0xc]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x43bdb4
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x43bdd8
mov ecx, esi
call fcn.0042cdd0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov ecx, dword [esp + 0xc]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x2f0], eax
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x2e8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x2f4], edx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x2fc], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x300], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x43be21
mov ecx, dword [edi + 0x24]
jmp 0x43be23
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x2ec]
and eax, 0x8a
push eax
call fcn.00428ec0
mov edx, eax
mov dword [edi + 0x20], 0
mov edi, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e693
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov edi, dword [eax + ecx*4]
mov eax, dword [edx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x43bea2
mov ecx, esi
call fcn.0042cdd0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, esi
mov ecx, edi
call fcn.00441660
jmp 0x43b0fa
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x288], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x29c], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x288]
mov byte [esp + 0x29e], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x28c], eax
lea eax, [esp + 0xdc]
push eax
call fcn.00424c50
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
cmp dword [esp + 0xdc], eax
jne 0x43bf5e
mov dl, 4
mov ecx, edi
call fcn.004298e0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
cmp word [edx + 2], 0
je 0x43bf7a
mov ecx, dword [esp + 0x14]
call fcn.00456650
test eax, eax
je 0x43e82f
mov edi, dword [esp + 0x10]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x20]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x43bfd3
mov ecx, esi
call fcn.00431cd0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
jmp 0x43bfdb
mov dword [esp + 0x18], 0
cmp byte [esi + 2], 0
jne 0x43c0f0
mov edx, dword [esi + 0x2c]
lea eax, [esp + 0xa0]
mov ecx, dword [esp + 0x14]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xa4], xmm0
call fcn.004331f0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0xc]
cmp byte [eax], 0x8d
jne 0x43c06d
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0xa0]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0xc]
mov word [ecx + 2], 0x100
add edx, 0x14
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x28], esi
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x43c0b9
call fcn.00436e80
mov edx, dword [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xa0]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, 4
mov esi, dword [esp + 0x20]
add edx, 0x14
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0xa0]
mov dword [ecx], eax
mov eax, dword [esp + 0xa4]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042d540
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x43752b
call fcn.00431c60
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
cmp byte [esp + 0x33], 0x2a
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x2c8], eax
mov ax, word [edx + 0x10]
mov word [esp + 0x2dc], ax
sbb al, al
mov byte [esp + 0x2de], al
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov esi, dword [ecx + 0x2c]
mov ecx, esi
mov dword [esp + 0x2cc], eax
call fcn.00423f50
xor eax, eax
mov edx, dword [esi + 0x2c]
jl 0x43e85a
jg 0x43c1ba
test edx, edx
je 0x43e85a
test eax, eax
jg 0x43e85a
jl 0x43c1d0
cmp edx, 0x7fffffff
ja 0x43e85a
xor eax, eax
mov dword [esp + 0x210], 0
mov word [esp + 0x208], ax
mov ecx, esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20c], eax
lea eax, [esp + 0x1f8]
push eax
call fcn.0042dc60
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0x200]
mov ecx, dword [esp + 0x204]
push eax
lea eax, [esp + 0x2cc]
push eax
call fcn.004327e0
add esp, 8
mov esi, eax
cmp dword [esp + 0x210], 0
je 0x43c247
lea ecx, [esp + 0x1f8]
call fcn.0042cfe0
mov edx, dword [esp + 0xc]
test byte [edx], 1
jne 0x43c254
neg esi
jmp 0x43c255
inc esi
test esi, esi
jg 0x43ac82
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x43c29e
mov ecx, edi
call fcn.00436e80
mov edx, dword [esp + 0xc]
mov edi, eax
jmp 0x43c2a7
mov eax, 4
mov word [edi + 0x10], ax
mov ecx, dword [esp + 0x14]
mov eax, 1
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xcc]
inc eax
cmp dword [ecx + 0xc0], eax
jg 0x43e864
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
shl ecx, 4
mov dword [esp + 0x48], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x44], ecx
mov esi, dword [eax + ecx + 4]
cmp byte [esi + 9], 0
je 0x43c309
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43c309
mov ecx, esi
call fcn.0041f820
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.0042a320
add esp, 4
mov dword [esp + 0x18], eax
cmp byte [esi + 9], 0
je 0x43c333
add dword [esi + 0xc], 0xffffffff
jne 0x43c333
mov ecx, esi
call fcn.0041f7b0
mov esi, dword [esp + 0x48]
mov eax, 4
mov word [edi + 0x10], ax
mov eax, esi
cdq
mov dword [edi + 4], edx
mov edx, dword [esp + 0x18]
mov dword [edi], eax
test edx, edx
jne 0x43e665
test esi, esi
je 0x437803
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x44]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x43c389
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x43c383
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x43c378
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x43c3a4
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x43c39e
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x43c393
mov al, byte [esp + 0x58]
mov edx, dword [esp + 0xc]
inc al
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov byte [esp + 0x6b], al
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0x14]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xcc], xmm0
mov eax, dword [edx + 8]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov edx, dword [edx + 4]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0042a260
mov edi, dword [esp + 0x10]
add esp, 4
mov edx, eax
mov dword [esp + 0x18], edx
cmp dword [edi + 0xc], 0
mov edi, dword [esp + 0x10]
je 0x43c44a
mov edx, dword [esp + 0xc8]
add dword [edi + 0x28], edx
mov eax, dword [esp + 0xcc]
adc dword [edi + 0x2c], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x43c446
lea eax, [eax + eax*4]
add dword [esi + eax*8], edx
lea ecx, [esi + eax*8]
mov eax, dword [esp + 0xcc]
adc dword [ecx + 4], eax
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x43c49e
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x14]
call fcn.004409f0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [ecx + 0x2c]
push 0
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.0042a260
jmp 0x43a8e7
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x43c4d9
mov ecx, edi
call fcn.00436e80
mov edi, eax
jmp 0x43c4e2
mov eax, 4
mov word [edi + 0x10], ax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], 0
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x48], eax
add ecx, ecx
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8 + 4]
cmp byte [esi + 9], 0
je 0x43c51b
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43c51b
mov ecx, esi
call fcn.0041f820
push dword [esp + 0x48]
lea edx, [esp + 0x28]
mov ecx, esi
call fcn.00429da0
add esp, 4
mov edx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x18], edx
je 0x43c54a
add dword [esi + 0xc], 0xffffffff
jne 0x43c54a
mov ecx, esi
call fcn.0041f7b0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x8c]
mov dword [edi + 4], edx
mov edx, dword [esp + 0xc]
mov dword [edi], eax
add edx, 0x14
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], 0
mov al, byte [ecx + 0x5e]
inc byte [ecx + 0x60]
mov esi, dword [ecx + 0x16c]
mov byte [esp + 0x33], al
mov eax, dword [esp + 0xc]
cmp dword [eax + 4], 0
je 0x43c5ae
mov dword [ecx + 0x16c], 0
mov byte [ecx + 0x5e], 0
lea edx, [esp + 0x34]
push edx
push 0
push 0
push dword [eax + 0x10]
push ecx
call fcn.0046a140
mov ecx, dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x28]
add esp, 0x14
mov dword [esp + 0x18], edx
dec byte [eax + 0x60]
mov dword [eax + 0x16c], esi
mov al, byte [esp + 0x33]
mov byte [ecx + 0x5e], al
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x43c5f1
test edx, edx
je 0x43dd49
push eax
push 0x5dd3ec
push edi
call fcn.0042e3c0
add esp, 0xc
push dword [esp + 0x34]
call fcn.00407fc0
mov edx, dword [esp + 0x1c]
add esp, 4
cmp edx, 7
je 0x43926e
jmp 0x43e665
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 4]
test edx, edx
jne 0x43c67d
mov eax, dword [esp + 0x14]
mov ecx, esi
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 0xc]
push eax
call fcn.0045d470
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0xc]
mov edx, esi
and dword [ecx + 0x18], 0xffffffef
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.0046f9c0
mov ecx, dword [esp + 0x1c]
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
or dword [ecx + 0x18], 1
and dword [edi + 0x98], 0xfffffffc
jmp 0x43c761
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x7c]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xfc], esi
add esi, esi
mov dword [esp + 0xf8], eax
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x104], 0
push edx
push str.sqlite_master
mov eax, dword [ecx + esi*8 + 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x114], eax
mov eax, dword [ecx + esi*8]
push eax
push str.SELECTFROM__w_._s_WHERE__s_ORDER_BY_rowid
push dword [esp + 0x24]
call fcn.0040a750
mov esi, eax
add esp, 0x14
test esi, esi
je 0x43e87d
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xf4]
push 0
push ecx
push fcn.0046f7d0
push esi
push eax
mov byte [eax + 0xb1], 1
mov dword [esp + 0x114], 0
mov dword [esp + 0x11c], 0
call fcn.0046a140
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x43c747
mov eax, dword [esp + 0x100]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x43c747
cmp dword [esp + 0x108], eax
jne 0x43c747
mov ecx, 0x1838d
call fcn.004a4130
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.00408080
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov byte [ecx + 0xb1], 0
test edx, edx
jne 0x43e885
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
call fcn.00454030
jmp 0x43a8ea
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov edx, dword [edx + 0x10]
mov edi, dword [eax + ecx*8 + 0xc]
lea eax, [esp + 0xe0]
push eax
lea ecx, [edi + 8]
call fcn.0040e9c0
add esp, 4
mov esi, dword [eax + 8]
test esi, esi
je 0x43c7fc
push dword [esp + 0xe0]
mov edx, eax
lea ecx, [edi + 8]
call fcn.0040ea50
mov ecx, dword [esp + 0x18]
add esp, 4
test esi, esi
je 0x43c800
cmp dword [ecx + 0x210], 0
jne 0x43c7f5
add dword [esi + 0x18], 0xffffffff
jne 0x43c800
mov edx, esi
call fcn.004562b0
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x18], 1
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.00455d70
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.0047e700
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x10]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea edi, [edi + eax*8]
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esi]
inc eax
push eax
push dword [edx + 8]
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x24]
push eax
movzx eax, word [edx + 2]
add eax, eax
mov edx, dword [ecx + 0x10]
mov edx, dword [edx + eax*8 + 4]
call fcn.0042b260
add esp, 0x14
mov dword [esp + 0x18], eax
mov ecx, edi
call fcn.0042d540
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x43c912
cmp dword [esp + 0x18], 0
jne 0x43e8a0
dec eax
mov ecx, edi
cdq
sub dword [esi], eax
push fcn.00407fc0
sbb dword [esi + 4], edx
mov edx, dword [esp + 0x94]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0042d8b0
add esp, 0x10
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.0042cad0
mov edi, dword [esp + 0x10]
jmp 0x43dded
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
mov eax, dword [ecx + 8]
lea edi, [eax + eax*4]
jne 0x43c950
mov ecx, esi
call fcn.0042d6f0
test eax, eax
jne 0x43926a
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + edi*8 + 4]
push eax
mov eax, dword [ecx + edi*8]
mov ecx, dword [esi + 8]
push eax
call fcn.00415b80
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea edi, [esi + eax*8]
je 0x43ca03
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x43c9ba
test al, 1
jne 0x43c9b5
mov ecx, dword [esi + 8]
call fcn.00415c70
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x43ca03
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov dword [esi + 8], eax
test eax, eax
jne 0x43c9df
mov ecx, esi
call fcn.00415b00
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x24]
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0042d5f0
mov edi, dword [esp + 0x18]
add esp, 8
jmp 0x43dded
mov ecx, edi
call fcn.0042d540
mov edi, dword [esp + 0x10]
jmp case.0x4372db.9
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea esi, [esi + eax*8]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], ecx
lea edi, [eax + eax*4]
jne 0x43ca47
mov ecx, esi
call fcn.0042d6f0
test eax, eax
jne 0x43926a
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x43ca73
mov edx, dword [esp + 0x20]
mov eax, dword [edx + edi*8 + 4]
push eax
mov eax, dword [edx + edi*8]
mov edx, ecx
mov ecx, dword [esi + 8]
push eax
call fcn.00415e90
add esp, 8
test eax, eax
jne 0x43ac7a
mov ecx, dword [esp + 0x24]
test ecx, ecx
js 0x437803
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + edi*8 + 4]
push eax
mov eax, dword [ecx + edi*8]
mov ecx, dword [esi + 8]
push eax
call fcn.00415b80
mov edx, dword [esp + 0x14]
add esp, 8
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x38], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x28], ecx
cmp word [eax + 2], 0
je 0x43caf8
mov eax, dword [edi + 0xd0]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x43caf4
cmp dword [eax + 0x18], ecx
je 0x4378eb
mov eax, dword [eax + 4]
test eax, eax
jne 0x43cae4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xd8]
cmp eax, dword [edx + 0xa0]
jge 0x43e8b8
test byte [ecx + 0x10], 0x10
jne 0x43ccdc
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
add eax, ecx
test ecx, ecx
lea esi, [eax + 1]
cmovne esi, eax
lea eax, [esi + esi*4]
lea ecx, [ecx + eax*2]
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x43cb41
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
add eax, 0x58
mov dword [esp + 0x24], eax
cdq
push edx
push eax
call fcn.00408370
mov edi, eax
add esp, 8
test edi, edi
je 0x43926a
mov ecx, dword [esp + 0x28]
call fcn.0042d020
mov ecx, dword [esp + 0x28]
mov eax, 0x1010
mov edx, dword [esp + 0xc]
sub edx, dword [esp + 0x54]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x24]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 8], edi
mov dword [ecx + 0x24], 0x42fd30
mov ecx, dword [esp + 0x38]
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 [esp + 0x10]
mov dword [edi + 0x30], eax
mov eax, dword [edx + 0x58]
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x14]
mov dword [edi + 0x38], eax
mov eax, dword [edx + 0x60]
mov dword [edi + 0x10], eax
mov eax, dword [edx + 0x18]
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 + 0x18], eax
lea eax, [esi*4 + 0xb]
add eax, esi
lea ecx, [edi + eax*8]
lea eax, [edi + 0x58]
cmp eax, ecx
je 0x43cc16
mov edx, dword [esp + 0x14]
xor esi, esi
mov dword [eax + 0x14], edx
mov word [eax + 0x10], si
add eax, 0x28
cmp eax, ecx
jne 0x43cc02
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
inc dword [edx + 0xd8]
mov eax, dword [edx + 0xd0]
mov ecx, dword [esp + 0x14]
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x28]
mov dword [edi + 0x20], eax
mov eax, dword [ecx + 0x2c]
mov dword [edi + 0x24], eax
mov eax, dword [edx + 0x28]
mov dword [edi + 0x48], eax
mov eax, dword [edx + 0x2c]
mov dword [edi + 0x4c], eax
mov ecx, dword [edx]
mov eax, dword [ecx + 0x68]
mov dword [edi + 0x50], eax
mov eax, dword [ecx + 0x6c]
lea ecx, [edi + 0x58]
mov dword [edi + 0x54], eax
mov eax, dword [edx + 0xe4]
mov dword [edi + 0x28], eax
mov dword [edx + 0x58], ecx
mov dword [edx + 0xe4], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0xd0], edi
mov eax, dword [edi + 0x3c]
mov dword [edx + 0x14], eax
movzx eax, word [edi + 0x40]
mov dword [edx + 0x18], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x20], ecx
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov dword [edx + 0x60], ecx
mov eax, dword [esi + 0xc]
lea ecx, [ecx + eax*4]
mov dword [edi + 0x14], ecx
mov eax, dword [esi + 4]
add eax, 7
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
push 0
push ecx
call fcn.0056fec0
mov ecx, dword [esi]
add esp, 0xc
mov edi, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
lea edx, [ecx - 0x14]
mov dword [edi + 0x68], ecx
mov eax, dword [esi + 4]
mov dword [edi + 0x6c], eax
jmp 0x43dde9
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x10]
jmp 0x43cc1a
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x43cd0e
mov ecx, esi
call fcn.00436e80
mov esi, eax
jmp 0x43cd17
mov eax, 4
mov word [esi + 0x10], ax
mov edx, dword [edi + 0xd0]
push 0x4000
mov eax, dword [edx + 0x30]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0x10]
add eax, dword [ecx + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edx, [eax + ecx*8]
mov ecx, esi
call fcn.0042d7f0
mov edx, dword [esp + 0x10]
add esp, 4
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0xc]
je 0x43cda4
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x14]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [esp + 0x1c]
adc dword [ecx + 0x20c], edx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x43cdd5
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x200], eax
mov eax, dword [esp + 0x1c]
adc dword [ecx + 0x204], edx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x1c]
adc dword [edi + 0x44], edx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov edx, dword [esp + 0xc]
cmp dword [edx + 4], 0
je 0x43ce3d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x200]
or eax, dword [ecx + 0x204]
jne 0x437421
mov eax, ecx
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
je 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x437421
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
je 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x43cea2
mov eax, dword [edx + 4]
test eax, eax
je 0x43ce90
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x43ce87
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x43ceaf
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov ecx, edi
call fcn.0042d210
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.0042d210
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x437803
jl 0x43cee2
cmp dword [edi], eax
jae 0x437803
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov dword [edi], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 4], ecx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov edi, dword [eax + esi*8 + 4]
mov ecx, dword [eax + esi*8]
test edi, edi
jl 0x437803
jg 0x43cf2d
test ecx, ecx
je 0x437803
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x20]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
jmp 0x43ac7a
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea edi, [eax + eax*4]
mov eax, dword [ecx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
mov dword [esp + 0x24], edx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x43cf87
mov ecx, esi
call fcn.00436e80
mov edx, dword [esp + 0x24]
mov esi, eax
jmp 0x43cf90
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edi*8]
mov eax, dword [eax + edi*8 + 4]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
test eax, eax
jl 0x43d02d
jg 0x43cfb7
test ecx, ecx
je 0x43d02d
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
test ecx, ecx
jl 0x43cfcc
jg 0x43cfe6
test eax, eax
jne 0x43cfe6
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
push ecx
push eax
lea ecx, [esp + 0xd8]
call fcn.0040e220
add esp, 8
test eax, eax
jne 0x43d02d
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
mov dword [esi], eax
mov eax, dword [esp + 0xd4]
mov dword [esi + 4], eax
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov esi, dword [esp + 0x20]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + esi*8]
mov edx, dword [eax + esi*8 + 4]
mov eax, ecx
or eax, edx
je 0x4378eb
test edx, edx
jl 0x43ac7e
jg 0x43d08a
test ecx, ecx
je 0x43ac7e
mov eax, dword [esp + 0x20]
sub ecx, 1
sbb edx, 0
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
jmp 0x43ac7e
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
mov edx, dword [esi + eax*8 + 4]
lea ecx, [esi + eax*8]
mov eax, dword [ecx]
cmp edx, 0x80000000
jl 0x43d0cc
jg 0x43d0c1
test eax, eax
je 0x43d0cc
sub eax, 1
mov dword [ecx], eax
sbb edx, 0
mov dword [ecx + 4], edx
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edx, dword [esp + 0xc]
je 0x43ac82
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
push 0
movzx eax, word [ecx + 2]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x28], eax
lea eax, [eax*4 + 0x44]
push eax
call fcn.00408410
mov esi, eax
add esp, 8
test esi, esi
je 0x43926e
mov eax, dword [esp + 0x24]
add eax, 7
mov dword [esi + 8], 0
lea ecx, [esi + eax*4]
mov eax, 1
mov dword [esi], ecx
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], 0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x10]
sub ecx, dword [esp + 0x54]
mov dword [esi + 4], eax
mov eax, 0x66666667
imul ecx
mov dword [esi + 0xc], edi
sar edx, 3
mov eax, edx
mov byte [esi + 0x19], 0
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x14], 0
mov edx, dword [esp + 0xc]
mov dword [esi + 0x10], eax
mov al, byte [esp + 0x50]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x24]
mov byte [esi + 0x1a], al
mov dword [edx + 0x10], esi
mov esi, dword [esp + 0x20]
mov word [edx], 0xf1a3
jmp 0x43d198
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x24], edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x48], esi
cmp dword [edi + 8], esi
je 0x43d1f2
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], esi
js 0x43d1f2
mov esi, dword [esp + 0xc]
lea edx, [edi + 0x1c]
mov edi, dword [esp + 0x20]
lea edx, [edx + ecx*4]
nop dword [eax + eax]
mov eax, dword [esi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x43d1d0
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0xc]
inc dword [esi + 0xc]
lea eax, [edi + 0x1c]
cmp dword [edx + 4], 0
mov esi, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x1a]
push eax
push edi
je 0x43d20d
mov esi, dword [esi + 0x1c]
jmp 0x43d210
mov esi, dword [esi + 0x10]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x437803
jle 0x43d24d
push dword [edi]
call fcn.00433bf0
add esp, 4
push eax
push 0x5dd3ec
push dword [esp + 0x18]
call fcn.0042e3c0
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [edi + 0x19], 0
je 0x43d278
mov eax, dword [esp + 0xc]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x43d274
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.0042d5f0
add esp, 8
mov byte [edi + 0x19], 0
mov ecx, dword [edi]
call fcn.0042d020
mov eax, dword [edi]
mov ecx, 1
mov edx, dword [esp + 0x18]
mov word [eax + 0x10], cx
mov dword [edi + 0x14], 0
jmp 0x43b100
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x43d34b
mov edx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x10]
lea edi, [edx + eax*8]
xorps xmm0, xmm0
mov dword [esp + 0x24], ecx
mov eax, 0x9000
movaps xmmword [esp + 0x130], xmm0
movaps xmmword [esp + 0x140], xmm0
test word [edi + 0x10], ax
je 0x43d2ee
mov ecx, edi
call fcn.0042cf80
mov ecx, dword [esp + 0x24]
jmp 0x43d2f7
mov eax, 1
mov word [edi + 0x10], ax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], esi
mov esi, dword [ecx + 0x18]
mov ecx, esi
mov dword [esp + 0x130], edi
mov al, byte [eax + 0x54]
mov byte [esp + 0x148], al
lea eax, [esp + 0x130]
push eax
call dword [0x5aa43c]
call esi
mov eax, dword [esp + 0x10]
add esp, 4
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x144]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x43d357
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.0042cec0
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x43e8d8
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.0042cad0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x318]
push eax
lea eax, [esp + 0x318]
mov dword [esp + 0x314], 0
push eax
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x324], 0xffffffff
mov dword [esp + 0x320], 0xffffffff
call fcn.004a2760
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
je 0x43d3fb
cmp edx, 5
jne 0x43e665
mov dword [esp + 0x18], 0
mov dword [esp + 0x310], 1
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
xor esi, esi
nop word [eax + eax]
mov eax, dword [esp + esi*4 + 0x310]
mov ecx, edi
cdq
push edx
push eax
call fcn.0042d5f0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x43d410
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edi, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x24], edi
test word [edi + 0x10], ax
je 0x43d478
mov ecx, edi
call fcn.00436e80
mov dword [esp + 0x24], eax
jmp 0x43d481
mov eax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0xc]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
cmp edx, 0xffffffff
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x48], eax
mov eax, dword [eax + 4]
mov esi, dword [eax]
movzx ecx, byte [esi + 5]
cmove edx, ecx
mov dword [esp + 0x2c], ecx
cmp byte [esi + 0x11], 3
jb 0x43d4b9
xor eax, eax
jmp 0x43d4d8
mov eax, dword [esi + 0x44]
cmp dword [eax], 0
je 0x43d4d3
cmp dword [esi + 0x54], 0
jl 0x43d4d3
jg 0x43d4cf
cmp dword [esi + 0x50], 0
jbe 0x43d4d3
xor eax, eax
jmp 0x43d4d8
mov eax, 1
test eax, eax
mov edi, ecx
cmovne edi, edx
cmp byte [esi + 0xf], 0
jne 0x43d4f5
cmp dword [esi], 0x612d88
je 0x43d4f5
mov eax, dword [esi + 0xb8]
jmp 0x43d4fa
mov eax, 0x5e3620
cmp edi, 5
jne 0x43d52a
mov ecx, eax
call fcn.0040b8a0
test eax, eax
je 0x43d57a
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
jne 0x43d57a
cmp byte [esi + 4], 0
jne 0x43d526
cmp dword [eax], 2
jl 0x43d57a
cmp dword [eax + 0x34], 0
je 0x43d57a
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
je 0x43d5b3
cmp ecx, 5
je 0x43d53c
cmp edi, 5
jne 0x43d5b3
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x55], 0
je 0x43e901
cmp dword [eax + 0xc0], 1
jg 0x43e901
cmp ecx, 5
jne 0x43d586
mov edx, eax
mov ecx, esi
call fcn.0041b7a0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43d5b3
mov edx, edi
mov ecx, esi
call fcn.0041b3f0
jmp 0x43d59d
mov edx, dword [esp + 0x2c]
mov edi, edx
mov eax, dword [esp + 0x18]
jmp 0x43d5bb
cmp ecx, 4
jne 0x43d595
lea edx, [ecx - 2]
mov ecx, esi
call fcn.0041b3f0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x43d5b7
mov ecx, dword [esp + 0x48]
xor edx, edx
cmp edi, 5
sete dl
inc edx
call fcn.0042b940
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
test eax, eax
mov ecx, esi
cmove edx, edi
call fcn.0041b3f0
mov esi, dword [esp + 0x24]
mov ecx, 0x2202
mov word [esi + 0x10], cx
cmp eax, 6
jne 0x43d5dd
xor ecx, ecx
jmp 0x43d5e4
mov ecx, dword [eax*4 + 0x5e3cb0]
mov dword [esi + 8], ecx
call fcn.0040b8a0
movzx edx, byte [esp + 0x50]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0x12], 1
call fcn.0042cad0
mov edx, dword [esp + 0x18]
jmp 0x43b100
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
test eax, eax
je 0x43d61b
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
jmp 0x43d61d
xor eax, eax
mov edx, dword [esp + 0x14]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x7c]
call fcn.004838d0
add esp, 8
jmp 0x43a8ea
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov ecx, dword [eax + ecx*8 + 4]
call fcn.004234e0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x43dd49
cmp edx, 0x65
jne 0x43e665
mov dword [esp + 0x18], 0
jmp 0x43ac7e
mov edx, dword [esp + 0xc]
cmp dword [edx + 4], 0
jne 0x43d69f
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x14]
call fcn.004333f0
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x8c]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
add edx, 0x14
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x8c]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
add edx, 0x14
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x8c]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
add edx, 0x14
mov eax, dword [esp + 0x1c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov al, byte [edx + 0xc]
mov byte [esp + 0xa8], al
test al, al
jne 0x43d747
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
and eax, 4
xor ecx, ecx
jne 0x437421
test eax, eax
jne 0x437421
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
push dword [esp + 0xa8]
mov eax, dword [eax + 4]
mov ecx, dword [ecx + 0x10]
add eax, eax
mov edx, dword [edx + 8]
mov ecx, dword [ecx + eax*8 + 4]
call fcn.0042b810
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
je 0x437b12
cmp dl, 6
jne 0x43e665
mov eax, dword [esp + 0xc]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0042e3c0
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x43e665
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.004854c0
mov edx, eax
mov dword [esp + 0x18], edx
test esi, esi
je 0x43d7d0
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.00433560
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x250]
xorps xmm0, xmm0
movaps xmmword [esp + 0x260], xmm0
mov dword [esp + 0x264], eax
mov eax, dword [esp + 0xc]
movaps xmmword [esp + 0x250], xmm0
movq qword [esp + 0x270], xmm0
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
call fcn.0042d840
mov dword [esp + 0x18], eax
lea eax, [esp + 0x250]
push eax
call fcn.00433bf0
add esp, 4
test eax, eax
je 0x43d867
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 4]
call fcn.00484e20
add esp, 8
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x250]
call fcn.0042d020
mov edx, dword [esp + 0x18]
jmp 0x43a8f0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
inc dword [eax + 0xcc]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, eax
call fcn.00485240
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
dec dword [ecx + 0xcc]
test edx, edx
jne 0x43e669
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], 0
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x43e957
mov eax, dword [edi]
mov dword [esp + 0x24], eax
test eax, eax
je 0x43e957
mov esi, dword [eax + 0x18]
lea ecx, [esp + 0x28]
push ecx
push edi
mov ecx, esi
call dword [0x5aa43c]
call esi
mov esi, dword [esp + 0x18]
add esp, 8
mov edx, edi
mov dword [esp + 0x18], eax
mov ecx, esi
call fcn.00433560
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43ebd7
mov eax, dword [esp + 0x28]
mov ecx, esi
push 2
push edx
mov dword [eax], edi
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 4]
call fcn.00436a70
add esp, 8
test eax, eax
je 0x43e93a
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xc]
mov dword [eax + 0x2c], ecx
inc dword [edi + 4]
mov edi, esi
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], 0
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov ecx, eax
mov dword [esp + 0x24], eax
call fcn.0042d540
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x10]
mov eax, dword [edi + 0x34]
test eax, eax
je 0x437803
mov edx, dword [eax + 8]
mov esi, dword [edx]
inc dword [edi + 0x18]
inc dword [eax + 0xc]
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x10]
mov esi, dword [esi + 0x60]
push dword [eax + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x1c]
add ecx, ecx
push dword [edi]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8]
mov ecx, esi
push eax
push edx
call dword [0x5aa43c]
call esi
mov ecx, dword [edi + 0x34]
add esp, 0x14
mov esi, eax
mov dword [esp + 0x18], esi
call fcn.004841b0
push edi
push dword [esp + 0x18]
call fcn.004563b0
add esp, 8
test esi, esi
jne 0x43e961
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x437803
mov ecx, dword [esp + 0x24]
push fcn.00407fc0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0042d8b0
mov edx, dword [esp + 0x1c]
add esp, 0x10
mov edi, dword [esp + 0x10]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
push 0
push 8
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.00407e80
mov esi, eax
add esp, 8
test esi, esi
je 0x43926a
mov eax, dword [esp + 0xc]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov dword [esi], ecx
mov ecx, dword [eax + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*8]
mov dword [esi + 4], ecx
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x43da9e
mov ecx, eax
call fcn.00436e80
jmp 0x43daa7
mov ecx, 4
mov word [eax + 0x10], cx
mov ecx, 1
mov edx, esi
mov word [eax + 0x10], cx
mov ecx, eax
push 0x4349d0
push str.ValueList
call fcn.0042d630
mov edx, dword [esp + 0x14]
add esp, 8
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x10]
lea edi, [edx + 5]
lea edi, [esi + edi*8]
mov esi, dword [edi]
mov eax, dword [eax + 0x60]
movd xmm0, edi
mov dword [esp + 0x48], edi
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x28], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x58], eax
mov eax, dword [eax]
mov dword [esp + 0x78], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x5c]
test esi, esi
jle 0x43dbd3
cmp esi, 8
jb 0x43dbbb
cmp dword [0x619da0], 2
jl 0x43dbbb
movaps xmm2, xmmword [0x5f80f0]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x43db63
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edi, esi
sub edi, eax
nop
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x43db70
mov edi, dword [esp + 0x48]
cmp ecx, esi
jge 0x43dbd3
lea eax, [ecx + 1]
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + ecx*4], eax
inc ecx
add eax, 0x28
cmp ecx, esi
jl 0x43dbc8
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x58]
push edx
push esi
push dword [eax + 0x10]
mov esi, dword [esp + 0x30]
push dword [esp + 0x50]
push edi
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov edx, dword [esp + 0x8c]
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
call fcn.00433560
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e665
mov eax, dword [esp + 0x24]
push edi
mov esi, dword [eax + 0x28]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov ecx, dword [esp + 0x2c]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x437803
jmp 0x43ac7a
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x20]
cmp byte [esi + 2], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jne 0x437b8f
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x50]
movaps xmmword [esp + 0x1d0], xmm0
movaps xmmword [esp + 0x1e0], xmm0
mov dword [esp + 0x1d0], edi
mov byte [esp + 0x1e8], al
je 0x43dcb9
mov ecx, edi
call fcn.0042d540
mov edx, dword [esp + 0xc]
mov eax, 0x401
mov dword [edi], 0
jmp 0x43dcc9
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edi + 0x10], ax
lea eax, [esp + 0x1d0]
push dword [edx + 8]
push eax
push dword [esi + 0x2c]
mov esi, dword [esp + 0x30]
mov esi, dword [esi + 0x2c]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x48]
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00433560
cmp dword [esp + 0x1e4], 0
jle 0x43dd2f
push edi
call fcn.00433bf0
add esp, 4
push eax
push 0x5dd3ec
push esi
call fcn.0042e3c0
mov eax, dword [esp + 0x1f0]
add esp, 0xc
mov dword [esp + 0x18], eax
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.0042cad0
mov edx, dword [esp + 0x18]
mov edi, esi
test edx, edx
jne 0x43e693
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
cmp byte [eax + 2], 0
jne 0x43752b
mov eax, dword [eax + 0x2c]
push eax
mov edi, dword [eax]
mov ecx, dword [edi]
mov dword [esp + 0x4c], ecx
mov esi, dword [ecx + 0x24]
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 4
mov dword [esp + 0x18], eax
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.00433560
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e693
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x48]
push dword [eax + 0x2c]
mov esi, dword [esi + 0x28]
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 4
test eax, eax
jne 0x43dded
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x54]
dec edx
lea edx, [edx + edx*4]
lea edx, [ecx + edx*4]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x128], 0
jne 0x43ebaf
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x8c], ecx
jb 0x43dd49
mov eax, dword [esp + 0x6c]
ja 0x43de20
cmp dword [esp + 0x1c], eax
jb 0x43dd49
nop
mov esi, dword [edx + 0x174]
test esi, esi
je 0x43dd49
add eax, dword [edx + 0x17c]
push dword [edx + 0x178]
adc ecx, 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x80], ecx
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 4
test eax, eax
jne 0x43eb3e
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x8c], ecx
ja 0x43de20
jb 0x43dd49
cmp dword [esp + 0x1c], eax
jae 0x43de20
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
mov edi, dword [ecx + 0x20]
or dword [ecx + 0x20], 0x4000000
and edi, 0x4000000
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x24], eax
mov eax, dword [edx + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [edx + 4]
mov dword [esp + 0x24], ecx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 2
lea esi, [esi + eax*8]
jne 0x43ded7
mov byte [esi + 0x12], 1
jmp 0x43def8
cmp byte [esi + 0x12], 1
je 0x43def8
mov dl, 1
mov ecx, esi
call fcn.0040b1a0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43e665
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
push dword [esi + 8]
push ecx
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 8
mov dword [esp + 0x18], eax
test edi, edi
jne 0x43df27
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edi, dword [esp + 0x10]
mov ecx, edi
mov edx, dword [esp + 0x24]
call fcn.00433560
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43e693
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
cmp byte [eax + 0x57], 0
jne 0x439272
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x43e957
mov eax, dword [edi]
mov dword [esp + 0x24], eax
test eax, eax
je 0x43e957
cmp dword [eax + 0x34], 0
mov edx, dword [edx + 8]
je 0x437f94
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov al, byte [eax + 0x5c]
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x5c]
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x43dfdf
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x43dfd4
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov al, byte [eax + 2]
mov byte [ecx + 0x5c], al
lea eax, [esp + 0x80]
push eax
push esi
mov esi, dword [esp + 0x2c]
push edx
push edi
mov esi, dword [esi + 0x34]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x18], eax
mov edx, edi
mov al, byte [esp + 0x33]
mov edi, dword [esp + 0x10]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.00433560
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
test edx, edx
jne 0x43e055
cmp dword [eax + 4], edx
je 0x43e055
mov eax, dword [esp + 0x80]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x84]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0xc]
cmp dl, 0x13
jne 0x43e0a5
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x43e0a5
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
cmp eax, 4
jne 0x43e093
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], 0
jmp 0x4372ad
cmp eax, 5
jne 0x43e09d
mov eax, 2
mov byte [edi + 0x94], al
jmp 0x43e0ad
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test edx, edx
jne 0x43e66d
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
test word [edx + 0x10], ax
je 0x43e0f6
mov ecx, edx
call fcn.00436e80
mov edx, eax
jmp 0x43e0ff
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x14]
add ecx, ecx
mov eax, dword [eax + 0x10]
mov eax, dword [eax + ecx*8 + 4]
mov ecx, dword [esp + 0x8c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], 0
mov edx, dword [esp + 0xc]
add edx, 0x14
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea edx, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x24], edx
test word [edx + 0x10], ax
je 0x43e165
mov ecx, edx
call fcn.00436e80
mov dword [esp + 0x24], eax
jmp 0x43e16e
mov eax, 4
mov word [edx + 0x10], ax
mov edx, dword [esp + 0xc]
xor edi, edi
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 4]
mov eax, dword [eax + 0x10]
add ecx, ecx
mov esi, dword [eax + ecx*8 + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x43e196
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x43e1ac
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43e1ac
mov ecx, esi
call fcn.0041f820
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x43e1bb
mov dword [eax + 0xa0], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa0]
je 0x43e1d4
add dword [esi + 0xc], 0xffffffff
jne 0x43e1d4
mov ecx, esi
call fcn.0041f7b0
mov eax, dword [esp + 0x24]
mov dword [eax], edi
mov dword [eax + 4], 0
jmp 0x437803
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 0x10]
mov dword [esp + 0x48], edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x24], esi
cmp dword [edi], esi
je 0x43e24e
mov eax, dword [esp + 0x10]
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 0xc], eax
mov al, byte [esp + 0x50]
mov dword [edi], esi
mov byte [edi + 0x18], al
js 0x43e24e
mov esi, dword [esp + 0xc]
lea edx, [edi + 0x1c]
mov edi, dword [esp + 0x20]
lea edx, [edx + ecx*4]
nop dword [eax]
mov eax, dword [esi + 8]
lea edx, [edx - 4]
add eax, ecx
sub ecx, 1
lea eax, [eax + eax*4]
lea eax, [edi + eax*8]
mov dword [edx + 4], eax
jns 0x43e230
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x24]
mov ax, word [esi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [esi + 0x10], ax
lea eax, [edi + 0x1c]
mov esi, dword [edi + 4]
push eax
movzx eax, byte [edi + 0x1a]
push eax
mov esi, dword [esi + 0x10]
mov ecx, esi
push edi
call dword [0x5aa43c]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x437803
jle 0x43e2b1
push dword [esp + 0x24]
call fcn.00433bf0
add esp, 4
push eax
push 0x5dd3ec
push dword [esp + 0x18]
call fcn.0042e3c0
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push dword [eax + 4]
lea edx, [edx + 0xe4]
push dword [edi + 0x10]
call fcn.00431930
mov edx, dword [esp + 0x20]
add esp, 8
mov dword [edi + 0x14], 0
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x43e693
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov ecx, 0xf7ff
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
and word [esi + eax*8 + 0x10], cx
lea eax, [esi + eax*8]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov ecx, dword [esp + 0xc]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
mov dword [esp + 0x24], edi
call fcn.00436ec0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edi*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.00596b20
mov ecx, dword [esp + 0x24]
mov edi, eax
mov eax, dword [esp + 0x20]
mov esi, edi
shrd esi, edx, 3
and edi, 7
shr edx, 3
mov ecx, dword [eax + ecx*8 + 8]
movsx eax, byte [esi + ecx]
bts eax, edi
mov byte [esi + ecx], al
jmp 0x437803
mov ecx, dword [esp + 0xc]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
mov dword [esp + 0x24], edi
call fcn.00436ec0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + edi*8 + 0xc]
shl eax, 3
cdq
push edx
push eax
push ecx
push esi
call fcn.00596b20
mov ecx, dword [esp + 0x24]
mov edi, eax
mov eax, dword [esp + 0x20]
mov esi, edi
shrd esi, edx, 3
and edi, 7
shr edx, 3
mov ecx, dword [eax + ecx*8 + 8]
mov eax, 1
movsx edx, byte [esi + ecx]
mov ecx, edi
mov edi, dword [esp + 0x10]
shl eax, cl
test eax, edx
mov edx, dword [esp + 0xc]
jne 0x43e3f4
inc dword [edi + 0xc4]
jmp 0x43ac82
inc dword [edi + 0xc0]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x4372ad
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x5e]
test cl, 0x41
je 0x43e4f8
cmp byte [edi + 0x95], 0xfe
je 0x43e4f8
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x43e447
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x43e4f8
test cl, 0x40
je 0x43e481
mov edx, eax
mov ecx, edi
call fcn.004365c0
mov edi, eax
mov eax, dword [esp + 0x14]
push edi
mov esi, dword [eax + 0xd8]
mov ecx, esi
push dword [eax + 0xdc]
call dword [0x5aa43c]
call esi
push edi
call fcn.00407fc0
add esp, 0xc
mov edi, dword [esp + 0x10]
jmp 0x43e4f4
mov ecx, dword [esp + 0x14]
push eax
cmp dword [ecx + 0xc8], 1
jle 0x43e4d8
push str.____s
push ecx
call fcn.0040a750
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 0x14]
push edi
push dword [esp + 0x14]
mov esi, dword [eax + 0xd8]
mov ecx, esi
push dword [eax + 0xdc]
push 1
call dword [0x5aa43c]
call esi
add esp, 0x10
test edi, edi
je 0x43e47b
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.00408080
mov edi, dword [esp + 0x10]
jmp 0x43e4f4
mov esi, dword [ecx + 0xd8]
push edi
push dword [ecx + 0xdc]
mov ecx, esi
push 1
call dword [0x5aa43c]
call esi
add esp, 0x10
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [0x613b3c]
jl 0x43e548
cmp byte [edx], 0xb6
je 0x437421
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x43e53d
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x43e534
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x43e523
mov edx, dword [esp + 0xc]
mov dword [edx + 4], 0
inc dword [edx + 4]
inc dword [edi + 0xbc]
jmp 0x43ac82
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x4372ad
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x94], al
test ecx, ecx
je 0x43e619
movzx eax, word [edx + 2]
test ax, ax
je 0x43e5cb
push dword [eax*4 + 0x5e3468]
push str._s_constraint_failed
push edi
call fcn.0042e3c0
mov edi, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [edi + 0x10]
test eax, eax
je 0x43e5e0
mov esi, dword [esp + 0x10]
push eax
push dword [esi + 0x7c]
push str._z:__s
push dword [esp + 0x20]
call fcn.0040a750
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x43e5e0
push dword [edx + 0x10]
push 0x5dd3ec
push edi
call fcn.0042e3c0
mov edi, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, edi
sub ecx, dword [esp + 0x54]
push dword [eax + 0x7c]
push dword [eax + 0xc8]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.abort_at__d_in___s_:__s
push dword [edi + 4]
call fcn.0040aa10
mov edi, dword [esp + 0x24]
add esp, 0x14
mov ecx, edi
call fcn.004313e0
mov edx, dword [esp + 0x14]
mov edi, eax
cmp edi, 5
jne 0x43e637
mov eax, dword [esp + 0x10]
mov dword [eax + 0x24], edi
jmp 0x43eae0
mov ecx, dword [esp + 0x10]
mov eax, 0x65
cmp dword [ecx + 0x24], 0
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x18], eax
jmp 0x43ead9
mov ecx, 0x174a6
call fcn.004a4130
mov edx, eax
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp byte [ecx + 0x57], 0
je 0x43ebe2
mov edx, 7
jmp 0x43ec0d
cmp edx, 7
je 0x43926e
cmp edx, 0x12
je 0x43e817
mov ecx, dword [esp + 0x14]
jmp 0x43e66d
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
add ecx, ecx
mov edi, dword [esp + 0x10]
mov eax, dword [edx + ecx*8]
push eax
mov eax, dword [esp + 0x28]
push dword [eax]
mov eax, dword [edx + ecx*8 + 4]
shr eax, 4
and eax, 0xf
push dword [eax*4 + 0x613a14]
movzx eax, word [esi + 0x10]
and eax, 0x3f
movzx eax, byte [eax + 0x5e7b88]
push dword [eax*4 + 0x5e6888]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0042e3c0
mov ecx, dword [esp + 0x2c]
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x18], edx
jmp 0x43e66d
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0042e3c0
add esp, 8
mov edx, 5
jmp 0x43e661
mov edi, dword [esp + 0x10]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.0042e3c0
mov ecx, dword [esp + 0x1c]
mov edx, 5
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x43e66d
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
mov edi, 5
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x20], eax
mov byte [edx + 0x55], 0
mov dword [ecx + 0x24], edi
jmp 0x43eae0
mov edx, dword [esp + 0x14]
mov edi, 0x65
jmp 0x43eae0
mov edi, dword [esp + 0x10]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.0042e3c0
mov ecx, dword [esp + 0x20]
mov edx, 1
add esp, 0xc
mov dword [esp + 0x18], edx
jmp 0x43e66d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x100000
or eax, 0
je 0x43e7c2
mov edx, 8
mov dword [esp + 0x18], edx
jmp 0x43e66d
mov edx, 0xb
mov dword [esp + 0x18], edx
jmp 0x43e66d
cmp dl, 5
jne 0x43e665
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
imul ecx
mov ecx, dword [esp + 0x10]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ecx + 0x24], edi
mov edx, dword [esp + 0x14]
mov dword [ecx + 0x20], eax
jmp 0x43eae0
mov edx, 0x204
jmp 0x43e661
mov edi, dword [esp + 0x10]
push str.string_or_blob_too_big
push edi
call fcn.0042e3c0
add esp, 8
mov edx, 0x12
jmp 0x43e661
push 0x5e2efc
push 0x181a8
push str.index_corruption
push str._s_at_line__d_of___.10s_
push 0x30b
call fcn.0040aa10
add esp, 0x14
mov edx, 0x30b
jmp 0x43e661
mov ecx, 0x18275
jmp 0x43e65a
mov edi, dword [esp + 0x10]
mov edx, 6
mov dword [esp + 0x18], edx
mov byte [edi + 0x94], 2
jmp 0x43e66d
mov dword [esp + 0x18], 7
mov ecx, dword [esp + 0x14]
call fcn.00455f50
mov edx, dword [esp + 0x18]
cmp edx, 7
je 0x43926e
jmp 0x43e665
push dword [esp + 0x90]
call fcn.00407fc0
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x43e665
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x20], 1
call fcn.0042e3c0
add esp, 8
mov edx, 1
jmp 0x43e665
push esi
call fcn.00433bf0
mov edi, dword [esp + 0x14]
add esp, 4
push eax
push 0x5dd3ec
push edi
call fcn.0042e3c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
jmp 0x43e66d
cmp edi, 5
mov dword [esp + 0x18], 1
mov edi, dword [esp + 0x10]
mov ecx, str.out_of
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.0042e3c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, 1
jmp 0x43e66d
mov esi, dword [esp + 0x24]
push dword [esp + 0x28]
mov esi, dword [esi + 0x1c]
mov ecx, esi
call dword [0x5aa43c]
call esi
add esp, 4
jmp 0x43926a
mov edx, 6
jmp 0x43e661
push dword [esp + 0x5c]
call fcn.00407fc0
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x43e665
mov eax, dword [edi + 0x1c]
add eax, 2
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [edi + 0x78], eax
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x57], 0
jne 0x439272
test byte [eax + 0x5e], 4
je 0x43e9c4
mov esi, dword [eax + 0xd8]
mov ecx, esi
push 0
push edi
push dword [eax + 0xdc]
push 4
call dword [0x5aa43c]
call esi
add esp, 0x10
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
imul ecx
sar edx, 3
mov eax, edx
inc edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov edi, 0x64
mov edx, dword [esp + 0x14]
jmp 0x43eae0
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x90], ecx
movzx eax, byte [edx + 0x55]
cmp ecx, eax
je 0x43eb56
test esi, esi
je 0x43ea2a
mov esi, dword [esp + 0x14]
mov edx, 0x204
mov ecx, esi
call fcn.004a16b0
mov byte [esi + 0x55], 1
jmp 0x43ea73
test ecx, ecx
je 0x43ea4f
cmp dword [edx + 0xc4], 0
jle 0x43ea4f
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.0042e3c0
add esp, 8
mov edx, 5
jmp 0x43e661
mov edx, 1
mov ecx, edi
call fcn.00431370
mov edi, eax
test edi, edi
jne 0x43e9e6
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x90]
mov edi, dword [esp + 0x10]
mov byte [esi + 0x55], al
mov ecx, edi
call fcn.004313e0
cmp eax, 5
jne 0x43eab9
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [edi + 0x20], eax
mov al, 1
sub al, byte [esp + 0x90]
mov edi, 5
mov byte [edx + 0x55], al
mov eax, dword [esp + 0x10]
mov dword [eax + 0x24], edi
jmp 0x43eae0
mov ecx, esi
call fcn.004a0eb0
cmp dword [edi + 0x24], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
nop dword [eax]
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x8c], ecx
jb 0x43ed7e
mov eax, dword [esp + 0x6c]
ja 0x43eb01
cmp dword [esp + 0x1c], eax
jb 0x43ed7e
mov esi, dword [edx + 0x174]
test esi, esi
je 0x43ed7e
add eax, dword [edx + 0x17c]
push dword [edx + 0x178]
adc ecx, 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x80], ecx
mov ecx, esi
call dword [0x5aa43c]
call esi
mov edx, dword [esp + 0x18]
add esp, 4
test eax, eax
je 0x43eae0
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x7c], eax
jmp 0x43e661
test ecx, ecx
jne 0x43eb73
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.0042e3c0
add esp, 8
mov edx, 1
jmp 0x43e661
mov ecx, str.cannot_commit___no_transaction_is_active
test esi, esi
mov eax, str.cannot_rollback___no_transaction_is_active
cmove eax, ecx
push eax
push edi
call fcn.0042e3c0
add esp, 8
mov edx, 1
jmp 0x43e661
mov eax, dword [esp + 0xac]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x43e661
mov eax, dword [esp + 0xac]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1c], eax
jmp 0x43926e
mov ecx, dword [esp + 0x14]
mov edi, esi
jmp 0x43e66d
cmp edx, 0x210a
jne 0x43ec11
push 0x5e2efc
push 0x18b52
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0040aa10
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x18], edx
cmp dword [edi + 0x7c], 0
jne 0x43ec70
cmp edx, 0xc0a
je 0x43ec70
mov eax, edx
mov ecx, str.unknown_error
sub eax, 0x64
je 0x43ec5c
sub eax, 1
je 0x43ec55
sub eax, 0x19f
je 0x43ec4e
movzx eax, dl
cmp eax, 0x1d
jae 0x43ec61
mov eax, dword [eax*4 + 0x5e2fb0]
test eax, eax
je 0x43ec61
mov ecx, eax
jmp 0x43ec61
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x43ec61
mov ecx, str.no_more_rows_available
jmp 0x43ec61
mov ecx, str.another_row_available
push ecx
push 0x5dd3ec
push edi
call fcn.0042e3c0
add esp, 0xc
mov esi, dword [esp + 0x18]
mov edx, esi
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x24], esi
call fcn.0040b980
mov ecx, dword [esp + 0xc]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
push dword [edi + 0x7c]
imul ecx
push dword [edi + 0xc8]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.0040aa10
add esp, 0x14
cmp byte [edi + 0x97], 2
jne 0x43ecc3
mov ecx, edi
call fcn.004313e0
cmp esi, 0xc0a
jne 0x43ed58
mov ecx, dword [esp + 0x14]
call fcn.004087f0
mov edx, dword [esp + 0x14]
mov al, byte [esp + 0x6b]
mov edi, 1
mov dword [esp + 0x18], edi
test al, al
je 0x43eae0
movzx ecx, al
sub ecx, edi
js 0x43ed15
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0xc]
or word [eax + 0x4e], 8
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 0x1c]
or word [eax + 0x4e], 8
and dword [edx + 0x18], 0xffffffef
cmp dword [edx + 0x38], 0
jne 0x43eae0
xor edi, edi
cmp dword [edx + 0x14], edi
jle 0x43ead9
xor esi, esi
nop dword [eax]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + esi + 0xc]
test byte [eax + 0x4e], 8
je 0x43ed4a
push eax
call fcn.0045d470
mov edx, dword [esp + 0x18]
add esp, 4
inc edi
add esi, 0x10
cmp edi, dword [edx + 0x14]
jl 0x43ed30
jmp 0x43ead9
cmp esi, 0xb
jne 0x43ecd8
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x55], 0
jne 0x43ecdc
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], 2
mov dword [edx + 0x20], eax
jmp 0x43ecdc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
add dword [eax + 0xb4], ecx
cmp dword [eax + 0xa0], 0
je 0x43ed9c
mov ecx, eax
call fcn.0042fc30
mov ecx, dword [esp + 0x31c]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.00540c56
mov esp, ebp
pop ebp
ret