Function at 0x435000
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 [0x6071d4]
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 0x435080
call fcn.0042da00
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x174], 0
je 0x4350a3
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 0x4350a9
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0x7c], eax
mov dword [esp + 0x6c], ecx
je 0x43ca19
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 0x43c9f6
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.0x43513b.89
jmp dword [edx*4 + 0x43cc14]
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.0x43513b.9
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 4
je 0x435281
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 0x43510d
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 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43510d
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 0x43510d
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x435281
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x43c3c9
mov edi, dword [esp + 0xc]
cmp dword [edi + 4], 0
mov edi, dword [esp + 0x10]
jne 0x43c3c9
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.0042e590
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 8], 4
jne 0x435308
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 0x43510d
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 0x435375
call fcn.00434cd0
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 0x43510d
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 0x43510d
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 0x4353c8
mov ecx, edx
call fcn.00434cd0
mov edx, eax
jmp 0x4353d1
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 0x43510d
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 0x43541d
call fcn.00434cd0
mov ecx, eax
jmp 0x435426
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 0x43510d
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 0x43547b
mov ecx, esi
call fcn.00434cd0
mov esi, eax
jmp 0x435484
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x10]
mov ecx, edi
call fcn.00409700
cmp byte [esp + 0x50], 1
mov ecx, dword [esp + 0xc]
mov dword [ecx + 4], eax
je 0x435510
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.0042b6f0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x18], edi
test edi, edi
jne 0x43c673
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.0042a910
test eax, eax
jne 0x4370ca
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x435500
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x435500
mov ecx, dword [esp + 0x14]
call fcn.00405ec0
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 0x43c677
mov edx, dword [esp + 0xc]
mov byte [edx], 0x49
jmp 0x435531
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 0x435555
call fcn.00434cd0
mov edx, dword [esp + 0xc]
mov ecx, eax
jmp 0x43555e
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 0x43bba9
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 0x43bba9
mov eax, dword [esp + 0x20]
cmp dword [eax + esi*8 + 4], edx
mov edx, dword [esp + 0xc]
jne 0x43527d
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 0x43510d
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 0x4355fe
mov ecx, esi
call fcn.00434cd0
mov esi, eax
jmp 0x435607
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 0x435279
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.0042b380
mov eax, dword [esp + 0x24]
dec edi
mov word [esi + 4], ax
mov dword [esi], 0
test edi, edi
jg 0x435645
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 0x43510d
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 0x43510d
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 0x4356df
mov ecx, esi
call fcn.00434cd0
mov esi, eax
jmp 0x4356e8
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x43572e
mov edx, dword [eax + 4]
mov ecx, esi
call fcn.0042b3a0
mov ecx, esi
call fcn.0042ac10
test eax, eax
jne 0x4370ce
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 0x43510d
mov eax, dword [eax + 4]
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.0042b6f0
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 0x43510d
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.0042b5d0
test eax, eax
jne 0x43c673
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 0x4357a5
mov ecx, esi
call fcn.0042b380
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 0x43510d
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 0x435813
cmp dword [esi + 0x18], 0
je 0x43581e
mov ecx, esi
call fcn.0042ae20
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 0x435864
mov ecx, esi
call fcn.0042abc0
test eax, eax
jne 0x4370ca
mov ecx, dword [esp + 0x28]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x28], ecx
jne 0x435802
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 0x43510d
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.0042b630
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x4358db
mov ecx, esi
call fcn.0042abc0
test eax, eax
jne 0x4370ca
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x4358f9
mov ecx, dword [esp + 0xc]
test byte [ecx + 2], 2
je 0x4358f9
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 0x435663
add esi, 0x28
add edi, 0x28
jmp 0x4358b0
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.0042b630
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.0042b430
add esp, 8
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
xor edx, edx
mov ecx, edi
call fcn.0042f1b0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x435a15
mov ecx, edi
call fcn.0042b380
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 0x43510d
test dl, 0x12
jne 0x435a49
mov dl, byte [esp + 0x50]
push 0
call fcn.0042ac70
add esp, 4
test eax, eax
jne 0x4370ca
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 0x435a75
test edx, 0x400
je 0x435a75
call fcn.0042ac10
test eax, eax
jne 0x4370ca
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 0x435a93
mov dl, byte [esp + 0x50]
mov ecx, esi
push 0
call fcn.0042ac70
add esp, 4
jmp 0x435aa1
test eax, 0x400
je 0x435abc
mov ecx, esi
call fcn.0042ac10
test eax, eax
jne 0x4370ca
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 0x43c673
jl 0x435aed
cmp ecx, eax
ja 0x43c673
xor eax, eax
lea edx, [ecx + 2]
cmp edi, esi
mov ecx, edi
sete al
push eax
call fcn.0042a930
add esp, 4
test eax, eax
jne 0x4370ca
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [edi + 0x10], ax
cmp edi, esi
je 0x435b3b
push dword [esi + 0xc]
push dword [esi + 8]
push dword [edi + 8]
call fcn.0056a220
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.0056a220
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 0x435b7b
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 0x43510d
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 0x435c4b
or cl, dl
test cl, 1
jne 0x435e7d
mov esi, dword [esp + 0x2c]
and edx, 0x2d
je 0x435c1b
mov ecx, edx
mov dword [esp + 0x38], ecx
jmp 0x435c29
mov ecx, esi
call fcn.00434c20
movzx eax, ax
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x4c]
mov ax, word [ecx + 0x10]
and ax, 0x2d
jne 0x435c3c
call fcn.00434c20
movzx eax, ax
and al, byte [esp + 0x38]
test al, 4
je 0x435d19
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.0x435c7e
jmp dword [eax*4 + 0x43cef0]
push ecx
push edx
lea ecx, [esp + 0xa0]
call fcn.0040c080
add esp, 8
test eax, eax
jne 0x435d15
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0x98]
jmp 0x435e3d
test edx, edx
jne 0x435cd1
cmp ecx, 0x80000000
jne 0x435cd1
test edi, edi
jg 0x435d15
jl 0x435cc3
test esi, esi
jae 0x435d15
add esi, 0
adc edi, 0x80000000
jmp 0x435e3d
neg edx
adc ecx, 0
neg ecx
jmp case.0x435c7e.106
push ecx
push edx
lea ecx, [esp + 0xa0]
call fcn.0040c120
jmp 0x435c93
mov eax, edx
or eax, ecx
je 0x435e79
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x435e0f
test esi, esi
jne 0x435e0f
cmp edi, 0x80000000
jne 0x435e0f
mov esi, dword [esp + 0x2c]
mov ecx, esi
call fcn.0042af70
mov ecx, dword [esp + 0x4c]
movsd qword [esp + 0xa0], xmm0
call fcn.0042af70
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x435d41
jmp dword [eax*4 + 0x43cf00]
addsd xmm0, qword [esp + 0xa0]
jmp 0x435dc7
subsd xmm0, qword [esp + 0xa0]
jmp 0x435dc7
mulsd xmm0, qword [esp + 0xa0]
jmp 0x435dc7
movsd xmm1, qword [esp + 0xa0]
xorps xmm2, xmm2
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x435e79
divsd xmm0, xmm1
jmp 0x435dc7
mov ecx, esi
call fcn.0042aeb0
mov ecx, dword [esp + 0x4c]
mov esi, eax
mov edi, edx
call fcn.0042aeb0
mov ecx, esi
or ecx, edi
je 0x435e79
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x435db7
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.00591750
mov ecx, eax
call fcn.00591db0
call fcn.004096c0
mov esi, dword [esp + 0x20]
test eax, eax
jne 0x435e7d
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 0x43510d
push ecx
push edx
push edi
push esi
call fcn.005916a0
jmp 0x435e39
mov eax, edx
or eax, ecx
je 0x435e79
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x435e30
mov edx, 1
xor ecx, ecx
push ecx
push edx
push edi
push esi
call fcn.00591750
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 0x43510d
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
call fcn.0042b380
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
test eax, eax
je 0x435281
push 0
push 0
jmp 0x435964
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 0x435f10
mov ecx, esi
call fcn.0042b380
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, edx
call fcn.0042aeb0
mov ecx, dword [esp + 0x24]
mov edi, eax
mov esi, edx
mov dword [esp + 0xe8], edi
mov dword [esp + 0xec], esi
call fcn.0042aeb0
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 0x435f4f
and edi, ecx
and esi, edx
jmp 0x435ff2
cmp al, 0x67
jne 0x435f5c
or edi, ecx
or esi, edx
jmp 0x435ff2
mov eax, ecx
or eax, edx
je 0x435ff2
test edx, edx
jg 0x435f8f
jl 0x435f70
test ecx, ecx
jae 0x435f8f
mov al, 0xd1
sub al, byte [esp + 0x33]
cmp edx, 0xffffffff
jl 0x435f9e
jg 0x435f82
cmp ecx, 0xffffffc0
jbe 0x435f9e
neg ecx
mov dword [esp + 0x28], ecx
adc edx, 0
neg edx
jmp 0x435f93
mov al, byte [esp + 0x33]
test edx, edx
jl 0x435fcf
jg 0x435f9e
cmp ecx, 0x40
jb 0x435fcf
test esi, esi
jg 0x435fb3
jl 0x435fa8
test edi, edi
jae 0x435fb3
cmp al, 0x68
je 0x435fb3
or edi, 0xffffffff
or esi, edi
jmp 0x435ff2
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
jmp 0x435ff2
movq xmm1, qword [esp + 0xe8]
movd xmm0, ecx
cmp al, 0x68
jne 0x43602e
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 0x43510d
psrlq xmm1, xmm0
movq qword [esp + 0x70], xmm1
test esi, esi
jg 0x435fea
jl 0x436042
test edi, edi
jae 0x435fea
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x28]
or edx, 0xffffffff
call fcn.005918f0
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
or edi, eax
or esi, edx
jmp 0x435ff2
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.0042b050
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 0x43510d
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 0x4360f2
test al, 0x28
jne 0x4360cb
test al, 2
je 0x4360d6
mov edx, 1
mov ecx, esi
call fcn.00434aa0
jmp 0x4360d2
mov ecx, esi
call fcn.0042afa0
mov edx, dword [esp + 0xc]
movzx eax, word [esi + 0x10]
test al, 4
jne 0x4360f2
cmp dword [edx + 8], 0
jne 0x438ae2
mov edx, 0x14
jmp 0x43c4c1
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 0x43510d
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 0x43538b
call fcn.0042b080
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x436176
mov ecx, esi
call fcn.0042ac10
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov eax, dword [esp + 0xc]
mov ecx, esi
push dword [esp + 0x50]
mov dl, byte [eax + 8]
call fcn.0042b240
add esp, 4
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x4362bb
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 0x436253
jg 0x436215
cmp ecx, eax
jbe 0x436249
cmp byte [edx + 0x5db4d8], 0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jne 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], 1
jmp 0x43510d
cmp edi, esi
jg 0x436287
jl 0x436253
cmp ecx, eax
jae 0x436287
cmp byte [edx + 0x5db4cc], 0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jne 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], 0xffffffff
jmp 0x43510d
cmp byte [edx + 0x5db4d2], 0
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
jne 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x60], 0
jmp 0x43510d
mov edx, dword [esp + 0x3c]
mov eax, ecx
or eax, edx
test al, 1
je 0x436322
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
test al, al
jns 0x43631b
test byte [esp + 0x28], 1
je 0x436300
test ecx, 0x100
jne 0x436300
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x60], 0
movzx eax, byte [eax]
mov al, byte [eax + 0x5db4d2]
jmp 0x43645f
mov edi, dword [esp + 0x2c]
test cl, 1
mov eax, 0
sete al
lea eax, [eax*2 - 1]
jmp 0x43642a
test al, 0x10
jmp 0x43621c
mov edx, dword [esp + 0xc]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x436372
test al, 2
je 0x43640b
mov al, byte [esp + 0x3c]
mov edi, dword [esp + 0x2c]
and al, 0x2e
cmp al, 2
jne 0x436358
xor edx, edx
mov ecx, edi
call fcn.00434aa0
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x40], ecx
mov al, cl
and al, 0x2e
cmp al, 2
jne 0x43640f
xor edx, edx
mov ecx, esi
call fcn.00434aa0
jmp 0x43640f
cmp dl, 0x42
jne 0x43640b
test al, 2
je 0x43640b
mov eax, dword [esp + 0x3c]
test al, 2
jne 0x4363d3
test al, 0x2c
je 0x4363d3
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov dl, byte [esp + 0x50]
push 1
call fcn.0042ac70
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 0x4363cf
or eax, 2
movzx ecx, ax
mov dword [esp + 0x40], ecx
jmp 0x4363d3
mov ecx, dword [esp + 0x40]
test cl, 2
jne 0x43640b
test cl, 0x2c
je 0x43640b
mov dl, byte [esp + 0x50]
mov ecx, esi
push 1
call fcn.0042ac70
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.00430350
mov ecx, dword [esp + 0x44]
add esp, 4
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], eax
test eax, eax
jns 0x436441
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x5db4cc]
jmp 0x43645f
jne 0x436452
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x5db4d2]
jmp 0x43645f
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov al, byte [eax + 0x5db4d8]
mov word [esi + 0x10], cx
mov word [edi + 0x10], dx
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
test al, al
jne 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
cmp dword [esp + 0x60], 0
mov edx, dword [esp + 0xc]
je 0x438ae2
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x43510d
mov edx, dword [esp + 0xc]
test byte [edx + 2], 1
jne 0x4364ba
xor eax, eax
jmp 0x4364c0
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 0x435663
lea ecx, [edx + 0x14]
mov dword [esp + 0x28], ecx
nop dword [eax]
test eax, eax
je 0x436509
mov edi, dword [eax + esi*4]
jmp 0x43650b
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.00430350
mov ecx, eax
add esp, 4
mov dword [esp + 0x60], ecx
test ecx, ecx
jne 0x436582
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 0x436500
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 0x43510d
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
mov esi, dword [esp + 0x20]
je 0x4365b9
mov eax, dword [esp + 0x34]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4365b3
mov eax, dword [esp + 0x5c]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4365b9
neg ecx
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x48], 0
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
je 0x43527d
mov eax, dword [esp + 0x1c]
neg ecx
mov dword [esp + 0x60], ecx
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xc]
test eax, eax
jns 0x436614
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 0x43510d
jne 0x436639
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 0x43510d
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 0x43510d
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 0x4366a9
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x4366d8
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 0x4366df
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x43670e
xor eax, eax
cmp byte [edx], 0x2c
lea eax, [eax + esi*2]
jne 0x436715
mov al, byte [esi + eax + 0x5de148]
jmp 0x43671c
test al, 1
je 0x4366b4
mov esi, 2
jmp 0x43667a
test al, 8
je 0x4366be
movsd xmm0, qword [ecx]
jmp 0x4366cb
test al, 0x12
je 0x436678
call fcn.0042af30
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x436678
mov esi, 1
jmp 0x43667a
test al, 1
je 0x4366ea
mov eax, 2
jmp 0x436698
test al, 8
je 0x4366f4
movsd xmm0, qword [ecx]
jmp 0x436701
test al, 0x12
je 0x436696
call fcn.0042af30
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x436696
mov eax, 1
jmp 0x436698
mov al, byte [esi + eax + 0x5defdc]
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 0x43675f
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 0x43510d
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 0x43510d
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 0x4367cb
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x4367f1
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 0x435964
test al, 1
jne 0x4367b3
test al, 8
je 0x4367d9
movsd xmm0, qword [edx]
jmp 0x4367e4
test al, 0x12
je 0x4367b1
mov ecx, edx
call fcn.0042af30
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4367b1
mov ecx, 1
jmp 0x4367b3
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 0x435eee
test al, 0x24
je 0x436852
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x436872
xor eax, eax
xor eax, 1
mov ecx, esi
cdq
push edx
push eax
call fcn.0042b430
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 0x43510d
test al, 8
je 0x43685c
movsd xmm0, qword [ecx]
jmp 0x436865
test al, 0x12
je 0x436825
call fcn.0042af30
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x436825
mov eax, 1
jmp 0x436827
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.0042b380
test byte [edi + 0x10], 1
jne 0x435663
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.0042aeb0
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 0x43510d
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x43694a
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 0x438ada
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 0x43510d
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 0x438ae2
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 0x43510d
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 0x4369b4
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edx, dword [esp + 0xc]
jne 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
test al, 1
jne 0x4369f7
test al, 8
je 0x4369c2
movsd xmm0, qword [ecx]
jmp 0x4369cf
test al, 0x12
je 0x43538b
call fcn.0042af30
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov edx, dword [esp + 0xc]
cmp dword [edx + 0xc], 0
jne 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x436a6b
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edx, dword [esp + 0xc]
jne 0x435281
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 0x43510d
test al, 1
jne 0x436ac2
test al, 8
je 0x436a79
movsd xmm0, qword [ecx]
jmp 0x436a86
test al, 0x12
je 0x438ade
call fcn.0042af30
mov edx, dword [esp + 0xc]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x435281
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 0x43510d
test edx, edx
mov edx, dword [esp + 0xc]
je 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
test ecx, ecx
js 0x436b57
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 0x436b4e
mov eax, dword [ecx + edx*4 + 0x5c]
cmp eax, 0xc
jb 0x436b45
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x436b79
movzx eax, byte [eax + 0x5dadf8]
jmp 0x436b7c
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x10]
jmp 0x436b70
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 + 0x5de208]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov edx, dword [esp + 0xc]
test word [edx + 2], ax
jne 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x436bc7
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x436bc7
mov eax, dword [ecx + 8]
push 0
push 0
jmp 0x435964
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042b380
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43538b
cmp byte [eax + 2], 0
je 0x43538b
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042b380
jmp 0x438ade
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 0x436cc1
cmp byte [esi + 2], 0
jne 0x436d20
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x436c9d
mov eax, dword [esi + 0x10]
test eax, eax
je 0x436ceb
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x436ceb
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov edi, dword [esp + 0x10]
jmp 0x436c5a
cmp byte [edi], 0
je 0x436d00
mov ecx, esi
call fcn.0042fb10
mov edi, dword [esp + 0x10]
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4f3
mov ecx, dword [esp + 0x2c]
jmp 0x436c60
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x436dbd
mov ecx, esi
call fcn.0042fb10
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov ecx, dword [esp + 0x2c]
jmp 0x436c60
mov ecx, esi
call fcn.0042faa0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov ecx, edi
call fcn.00421d90
mov eax, dword [edi + 0x2c]
lea edx, [esi + 0x54]
mov ecx, edi
mov dword [esi + 0x50], eax
call fcn.004223e0
mov edx, dword [esp + 0x34]
lea edi, [esi + 0x54]
jmp 0x436d4f
cmp byte [esi], 3
jne 0x436e96
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x436e96
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 0x436d74
mov dword [esi + 0x34], 1
jmp 0x436d86
mov ecx, dword [esi + 0x4c]
call fcn.0040bf00
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 0x436e91
mov dword [esi + 0x4c], 0
mov dword [edi], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x436fe8
cmp eax, dword [esi + 0x50]
ja 0x436fe8
mov ecx, dword [esp + 0x2c]
movzx eax, word [esi + 0x3e]
cmp eax, ecx
ja 0x43700d
mov eax, dword [esi + 0x34]
cmp eax, dword [edx]
jae 0x437002
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x436e2d
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.0042baa0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
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 0x436ec3
movzx eax, cl
mov ecx, dword [esp + 0x38]
movzx eax, byte [eax + 0x5daed0]
cdq
add ecx, eax
adc dword [esp + 0x3c], edx
mov edx, 1
jmp 0x436ef1
mov eax, dword [esi + 0x4c]
jmp 0x436e29
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.0042b380
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
lea edx, [esp + 0x78]
mov ecx, edi
call fcn.0040bf00
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.0042fb50
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 0x436f26
cmp edi, dword [esp + 0x5c]
jb 0x436e60
mov eax, dword [esp + 0x5c]
jmp 0x436f2e
mov eax, dword [esp + 0x5c]
cmp edi, eax
jb 0x436f41
cmp edi, eax
ja 0x436f54
cmp ecx, dword [esi + 0x50]
jne 0x436f54
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x436f50
jmp 0x436f45
mov eax, dword [esp + 0x3c]
test eax, eax
jb 0x436f61
ja 0x436f50
cmp ecx, dword [esi + 0x50]
jbe 0x436f61
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x34]
cmp dword [ecx], 0
jne 0x436fd6
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 0x436f7e
lea ecx, [esp + 0x220]
call fcn.0042ae60
mov ecx, dword [esp + 0x40]
movzx eax, word [esi + 0x3e]
cmp eax, dword [esp + 0x2c]
ja 0x437015
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 0x435e81
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.0042b630
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 0x43510d
cmp dword [esi + 0x4c], 0
jne 0x436fe8
lea ecx, [esp + 0x220]
call fcn.0042ae60
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x43c4b5
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x435276
xor ecx, ecx
mov dword [esp + 0x40], ecx
jmp 0x436f82
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 0x43703c
mov ecx, edi
call fcn.0042b380
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 0x437148
mov eax, dword [esi + 0x4c]
add eax, dword [edx]
mov dword [esp + 0x24], eax
cmp ecx, 0xc
jae 0x43708d
mov edx, ecx
mov ecx, eax
push edi
call fcn.0042fc50
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 0x43510d
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 0x4370f1
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 0x78]
jg 0x43c673
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.0042a930
add esp, 4
test eax, eax
je 0x4370f7
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, eax
call fcn.00406650
push 0x5d2d08
push edi
call fcn.0042c200
add esp, 8
mov edx, 7
jmp 0x43c4c1
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [esp + 0x28]
push dword [edi + 8]
call fcn.0056a220
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 + 0x5d95d0]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
jmp 0x43510d
mov al, byte [esp + 0x50]
mov byte [edi + 0x12], al
mov eax, dword [esp + 0xc]
mov al, byte [eax + 2]
and al, 0xc0
je 0x43716c
cmp al, 0x80
je 0x437175
cmp ecx, 0xc
jb 0x43716c
test cl, 1
je 0x437175
cmp al, 0xc0
je 0x437175
call fcn.0042fb50
test eax, eax
jne 0x4371a4
mov edx, ecx
mov ecx, 0x5da8b8
push edi
call fcn.0042fc50
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 0x43510d
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.00434da0
mov edx, eax
add esp, 0x18
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4e1
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x435663
add edi, 0xe
nop
movzx eax, word [edi]
test al, 0x60
je 0x43723d
test al, 0x20
jne 0x4372ed
mov eax, dword [esp + 0xc]
cmp dword [eax + 0xc], 0
jne 0x4372ea
push dword [esp + 0x50]
mov dl, byte [edi - 6]
mov ecx, esi
call fcn.00434b30
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x48], ecx
test cl, 1
jne case.default.0x437270
mov eax, dword [edi - 0xa]
shr eax, 4
and eax, 0xf
add eax, 0xfffffffe
cmp eax, 4
ja case.default.0x437270
jmp dword [eax*4 + 0x43cf10]
test cl, 0x10
jmp 0x4372dc
test cl, 4
jmp 0x4372dc
test cl, 2
jmp 0x4372dc
test cl, 4
je 0x4372d9
mov edx, dword [esi + 4]
mov eax, dword [esi]
cmp edx, 0x7fff
jg 0x4372bc
jl 0x43729f
cmp eax, 0xffffffff
ja 0x4372bc
cmp edx, 0xffff8000
jl 0x4372bc
jg 0x4372ad
test eax, eax
jb 0x4372bc
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp case.default.0x437270
mov ecx, eax
call fcn.00591db0
mov eax, dword [esp + 0x48]
and eax, 0xfffb
movsd qword [esi], xmm0
or eax, 8
mov word [esi + 0x10], ax
jmp case.default.0x437270
test cl, 0x28
je 0x43c4f9
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 0x437220
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 0x43510d
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.00434b30
add esp, 4
cmp byte [edi], 0x45
jne 0x437396
movzx eax, word [esi + 0x10]
mov dword [esp + 0x24], eax
test al, 4
je 0x437396
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp edx, 0x7fff
jg 0x43737d
jl 0x437365
cmp ecx, 0xffffffff
ja 0x43737d
cmp edx, 0xffff8000
jl 0x43737d
jg 0x437373
test ecx, ecx
jb 0x43737d
and eax, 0xfffb
or eax, 0x20
jmp 0x437392
call fcn.00591db0
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 0x435663
add esi, 0x28
jmp 0x437330
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 0x437431
lea esi, [ecx + 0x10]
nop word [eax + eax]
push dword [esp + 0x50]
mov dl, byte [edi]
lea ecx, [esi - 0x10]
call fcn.00434b30
add esp, 4
cmp byte [edi], 0x45
jne 0x437428
movzx eax, word [esi]
test al, 4
je 0x437428
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x437400
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 0x43748a
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xa
mov dword [esi], ecx
mov ecx, dword [esp + 0x3c]
inc ecx
jmp 0x437702
test cl, 0x24
je 0x43763a
cmp dword [esi - 0x18], 0
mov eax, dword [esi - 0x1c]
jg 0x4374ad
jl 0x4374a2
test eax, eax
jae 0x4374ad
mov edx, eax
mov eax, dword [esi - 0x18]
not edx
not eax
jmp 0x4374b2
mov edx, eax
mov eax, dword [esi - 0x18]
inc dword [esp + 0x3c]
test eax, eax
ja 0x4375b2
jb 0x4374c5
cmp edx, 0x7f
ja 0x437521
mov eax, dword [esi - 0x1c]
and eax, 1
mov dword [esp + 0x24], 0
cmp eax, dword [esi - 0x1c]
jne 0x437500
mov eax, dword [esp + 0x24]
cmp eax, dword [esi - 0x18]
jne 0x437500
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x95], 4
jb 0x437500
mov ecx, dword [esp + 0x3c]
lea eax, [edx + 8]
mov edx, dword [esp + 0x40]
mov dword [esi], eax
jmp 0x437706
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 0x437706
test eax, eax
ja 0x4375b2
jb 0x437533
cmp edx, 0x7fff
ja 0x437554
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 0x437706
test eax, eax
ja 0x4375b2
jb 0x437562
cmp edx, 0x7fffff
ja 0x437583
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 0x437706
test eax, eax
ja 0x4375b2
jb 0x437591
cmp edx, 0x7fffffff
ja 0x4375b2
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 0x437706
cmp eax, 0x7fff
ja 0x4375e1
jb 0x4375c0
cmp edx, 0xffffffff
ja 0x4375e1
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 0x437706
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 0x43762b
mov edx, dword [esi - 0x18]
mov ecx, dword [esi - 0x1c]
call fcn.00591db0
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 0x437706
mov ecx, dword [esp + 0x3c]
mov dword [esi], 6
jmp 0x437706
test cl, 8
je 0x43765d
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 0x437702
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 0x4376c1
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 0x4376aa
lea ecx, [esi - 0x1c]
call fcn.0042ac10
test eax, eax
jne 0x4370ca
mov edx, dword [esp + 0x58]
add edx, dword [esi - 0x1c]
jmp 0x4376b9
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 0x4376ee
nop
shrd edx, ecx, 7
inc edi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x4376e0
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 0x437717
sub esi, 0x28
jmp 0x437464
cmp ecx, 0x7e
jle 0x4377a4
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 0x437756
mov edi, dword [esp + 0x28]
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x437740
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 0x437796
mov edi, dword [esp + 0x5c]
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x437780
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 0x4377a9
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 0x4377e8
jl 0x4377dc
cmp ecx, eax
ja 0x4377e8
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x437819
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x78]
cdq
cmp edi, edx
jg 0x43c673
jl 0x437802
cmp ecx, eax
ja 0x43c673
mov ecx, dword [esp + 0x38]
mov edx, esi
call fcn.0042aab0
test eax, eax
jne 0x4370ca
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 0x43783c
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 0x437856
mov byte [ecx], al
inc ecx
jmp 0x43786c
push dword [esp + 0x24]
push dword [esp + 0x4c]
call fcn.0040bcf0
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 0x43790e
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x2c], ecx
test edx, edx
je 0x437958
movzx edx, byte [edx + 0x5daed0]
mov ecx, dword [edi - 0xc]
mov eax, dword [edi - 8]
mov dword [esp + 0x24], edx
dec edx
cmp edx, 5
ja case.0x4378b2.5
jmp dword [edx*4 + 0x43cf24]
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 0x437954
cmp edx, 0x80
jae 0x43792a
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x2c], ecx
cmp edx, 0xe
jb 0x437958
mov eax, dword [edi]
test eax, eax
jle 0x437958
jmp 0x437945
push 0
push edx
call fcn.0040bcf0
mov ecx, dword [esp + 0x34]
add esp, 8
add ecx, eax
mov eax, dword [edi]
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x437958
push eax
push dword [edi - 4]
push esi
call fcn.0056a220
add esp, 0xc
add esi, dword [edi]
mov ecx, dword [esp + 0x2c]
lea eax, [edi - 0xc]
cmp eax, dword [esp + 0x44]
je 0x435663
add edi, 0x28
jmp 0x437880
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 0x437994
mov ecx, edx
call fcn.00422e90
mov esi, eax
mov edi, edx
jmp 0x4379d0
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xb8]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xbc], xmm0
call fcn.00428480
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
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 0x437a04
mov ecx, eax
call fcn.00434cd0
mov dword [eax + 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax], esi
jmp 0x43bc4d
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax + 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax], esi
jmp 0x43bc4d
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 0x437afd
cmp dword [ecx + 0xc4], 0
jg 0x43c557
mov ecx, eax
call fcn.00409700
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.004834b0
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c9
lea eax, [edi + 0x21]
push edx
push eax
call fcn.00406270
mov esi, eax
add esp, 8
test esi, esi
je 0x437d7b
lea ecx, [edi + 1]
push ecx
push dword [esp + 0x2c]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call fcn.0056a220
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x437abf
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x437ac5
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 0x437d7b
mov esi, dword [ecx + 0x1ec]
xor edi, edi
test esi, esi
je 0x43c5d6
mov ecx, dword [esi]
mov edx, eax
call fcn.00409c00
test eax, eax
je 0x437b24
mov esi, dword [esi + 0x18]
inc edi
mov eax, dword [esp + 0x28]
jmp 0x437b05
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
cmp dword [ecx + 0xc4], 0
jle 0x437b3e
cmp edx, 1
je 0x43c56f
cmp dword [esi + 0x18], 0
jne 0x437bab
cmp byte [ecx + 0x5d], 0
je 0x437bab
mov dword [esp + 0x38], 1
cmp edx, 1
jne 0x437bb3
mov ecx, dword [esp + 0x10]
call fcn.0042f1b0
mov dword [esp + 0x18], eax
test eax, eax
jne 0x43c935
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov byte [eax + 0x55], 1
call fcn.0042f220
cmp eax, 5
je 0x43c593
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x18], edx
test edx, edx
je 0x437ba2
mov byte [ecx + 0x55], 0
jmp 0x437cb8
mov byte [ecx + 0x5d], 0
jmp 0x437cc0
mov dword [esp + 0x38], 0
mov eax, dword [ecx + 0x1f8]
sub eax, edi
dec eax
mov dword [esp + 0x28], eax
cmp edx, 2
jne 0x437c3a
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 0x437c44
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.004218d0
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c9
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 0x437bf4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
jmp 0x437c46
mov dword [esp + 0x58], 0
jmp 0x437c46
mov ecx, edi
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x44], 0
jle 0x437c91
xor edi, edi
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [ecx + edi + 4]
call fcn.00421b20
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c9
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 0x437c56
cmp dword [esp + 0x58], 0
je 0x437cb0
xor edx, edx
call fcn.00431240
mov ecx, dword [esp + 0x14]
call fcn.00453db0
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x18], 1
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
test edx, edx
jne 0x43c4c5
cmp dword [ecx + 0x1ec], esi
je 0x437cf6
nop dword [eax + eax]
mov edx, dword [ecx + 0x1ec]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.00405ec0
mov ecx, dword [esp + 0x14]
dec dword [ecx + 0x1f8]
cmp dword [ecx + 0x1ec], esi
jne 0x437cd0
mov ecx, dword [esp + 0x34]
cmp ecx, 1
jne 0x437d2a
mov ecx, dword [esp + 0x14]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.00405ec0
cmp dword [esp + 0x38], 0
jne 0x437d7b
mov ecx, dword [esp + 0x14]
dec dword [ecx + 0x1f8]
mov ecx, dword [esp + 0x34]
jmp 0x437d5e
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 0x437d5e
cmp ecx, 2
jne 0x437d7b
mov edx, ecx
mov ecx, dword [esp + 0x14]
push edi
call fcn.004834b0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edi, dword [esp + 0x10]
cmp byte [edi + 0x97], 3
je 0x43c5c8
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x38], 0
mov edx, dword [ecx + 8]
test edx, edx
je 0x437dd9
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 0x43c5fb
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 0x437f07
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call fcn.00420b40
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c630
mov edx, dword [esp + 0x10]
test byte [edx + 0x98], 0x20
je 0x437f13
mov eax, dword [esp + 0xc]
cmp dword [eax + 8], 0
je 0x437f13
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x55], 0
je 0x437e48
cmp dword [ecx + 0xc0], 1
jle 0x437f13
cmp dword [edx + 0x30], 0
jne 0x437e63
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.004834b0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x437edb
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 0x437ea2
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x437ea2
mov ecx, esi
call fcn.0041d670
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
cmp edi, dword [ecx + 0x68]
jle 0x437ebc
cmp byte [ecx + 6], 0
je 0x437ebc
mov edx, edi
call fcn.00418d80
mov dword [esp + 0x18], eax
jmp 0x437ec4
mov dword [esp + 0x18], 0
cmp byte [esi + 9], 0
je 0x437ed7
add dword [esi + 0xc], 0xffffffff
jne 0x437ed7
mov ecx, esi
call fcn.0041d600
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 0x43c4c5
mov edx, dword [esp + 0xc]
cmp word [edx + 2], 0
je 0x435279
mov eax, dword [esp + 0x38]
cmp eax, dword [edx + 0xc]
jne 0x437f3a
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edx + 0x10]
je 0x435279
mov edi, dword [esp + 0x10]
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x437f4e
mov ecx, dword [esp + 0x14]
call fcn.00405ec0
mov ecx, dword [esp + 0x14]
mov edx, str.database_schema_has_changed
call fcn.00406490
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 0x437f86
mov ecx, dword [esp + 0x14]
call fcn.00453d50
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 0x43c4cd
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 0x437fe2
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x437fe2
mov ecx, esi
call fcn.0041d670
mov eax, dword [esp + 0x24]
cmp edi, 0xf
jne 0x437ff1
mov eax, dword [eax]
mov edi, dword [esi + 0x14]
add edi, dword [eax + 0x6c]
jmp 0x437ffd
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 0x438010
add dword [esi + 0xc], 0xffffffff
jne 0x438010
mov ecx, esi
call fcn.0041d600
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 0x43805d
call fcn.00434cd0
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 0x43510d
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 0x43510d
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.004283b0
mov edx, dword [esp + 0x10]
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x4380e5
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.00461d60
mov edx, dword [esp + 0xc]
jmp 0x4380f3
cmp eax, 2
jne 0x4380f3
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x43810b
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.00431240
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43815e
mov eax, dword [ecx + 0x38]
cmp eax, dword [edx + 8]
jne 0x43815e
lea esi, [ecx + 0x2c]
mov ecx, dword [esi]
call fcn.0041db70
mov edx, dword [esp + 0x18]
jmp 0x4382ef
mov cl, byte [esp + 0x33]
jmp 0x438168
mov edx, dword [esp + 0xc]
mov eax, dword [edi + 0x98]
and al, 3
cmp al, 1
je 0x43c669
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 0x4381d8
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 0x4381e0
mov byte [ecx + 0x95], al
jmp 0x4381e0
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xc]
test byte [ecx + 2], 0x10
je 0x438205
mov ecx, dword [esp + 0x20]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.0042b050
mov eax, dword [esi]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x38], eax
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x438219
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
movzx eax, word [eax + 8]
jmp 0x438226
cmp al, 0xfd
jne 0x438222
mov eax, dword [ecx + 0x10]
jmp 0x438226
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x10]
push 0
push eax
call fcn.004348c0
mov esi, eax
add esp, 8
test esi, esi
je 0x4370ca
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 0x4382b7
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x438283
mov ecx, edi
call fcn.0041d670
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.00421bf0
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x4382d2
add dword [edi + 0xc], 0xffffffff
jne 0x4382d2
mov ecx, edi
call fcn.0041d600
mov edx, dword [esp + 0x18]
jmp 0x4382d2
push eax
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x54]
call fcn.00421bf0
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 0x43c4c5
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.004348c0
mov esi, eax
add esp, 8
test esi, esi
je 0x4370ca
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 0x438402
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4383b4
mov ecx, esi
call fcn.0041d670
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x48]
push edi
push eax
mov edx, ecx
mov ecx, esi
push 4
call fcn.00421bf0
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [esi + 9], 0
je 0x435663
add dword [esi + 0xc], 0xffffffff
jne 0x435663
mov ecx, esi
call fcn.0041d600
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 0x43510d
push edi
push eax
mov edx, ecx
mov ecx, esi
push 4
call fcn.00421bf0
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 0x43510d
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x438459
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], 0x5d2d2d
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x4384a5
test byte [esi + 8], 8
jne 0x4384a5
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x4384a5
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.004280a0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x4386e7
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.004348c0
mov esi, eax
add esp, 8
test esi, esi
je 0x4370ce
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.0041f800
mov edx, eax
add esp, 0x10
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov ecx, dword [edi]
cmp byte [ecx + 9], al
jne 0x43852b
mov al, byte [ecx + 8]
test al, al
je 0x43852b
cmp al, 1
je 0x43852b
mov eax, dword [ecx]
mov edx, dword [eax + 0x1f8]
mov eax, dword [ecx + 4]
mov ecx, dword [eax]
cmp edx, dword [ecx + 0x68]
jle 0x438527
cmp byte [ecx + 6], 0
je 0x438527
call fcn.00418d80
jmp 0x43853a
xor edx, edx
jmp 0x43853c
push 0
mov edx, 1
call fcn.00420820
add esp, 4
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x4386ba
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 0x43863e
movzx eax, word [ecx + 2]
or eax, 2
mov dword [esp + 0x24], eax
cmp byte [edi + 9], dl
je 0x438583
inc dword [edi + 0xc]
cmp byte [edi + 0xa], dl
jne 0x438583
mov ecx, edi
call fcn.0041d670
mov eax, dword [esp + 0x24]
lea edx, [esi + 0x38]
mov ecx, edi
push eax
call fcn.00427be0
add esp, 4
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x4385ae
add dword [edi + 0xc], 0xffffffff
jne 0x4385ae
mov ecx, edi
call fcn.0041d600
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x438635
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 0x43861c
inc dword [edi + 0xc]
cmp byte [edi + 0xa], dl
jne 0x4385e3
mov ecx, edi
call fcn.0041d670
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.00421bf0
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x438635
add dword [edi + 0xc], 0xffffffff
jne 0x438635
mov ecx, edi
call fcn.0041d600
mov edx, dword [esp + 0x18]
mov byte [esi + 4], 0
jmp 0x4386b7
push eax
push dword [esp + 0x48]
mov edx, ecx
mov ecx, edi
push 4
call fcn.00421bf0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
mov byte [esi + 4], 0
jmp 0x4386b7
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x38], 1
cmp byte [edi + 9], 0
mov dword [esp + 0x24], eax
je 0x438699
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x438666
mov ecx, edi
call fcn.0041d670
mov eax, dword [esp + 0x24]
push eax
push 0
push 4
mov edx, 1
mov ecx, edi
call fcn.00421bf0
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x18], edx
je 0x4386b3
add dword [edi + 0xc], 0xffffffff
jne 0x4386b3
mov ecx, edi
call fcn.0041d600
mov edx, dword [esp + 0x18]
jmp 0x4386b3
push eax
push 0
push 4
mov edx, 1
mov ecx, edi
call fcn.00421bf0
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 0x4386ef
mov ecx, dword [edi]
call fcn.00420040
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4c5
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 0x43510d
mov ecx, dword [esp + 0xc]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.004348c0
add esp, 8
test eax, eax
je 0x4370ce
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.0043e2e0
add esp, 4
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [esp + 0xc]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.004348c0
add esp, 8
test eax, eax
je 0x4370ce
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], 0x60f828
mov eax, dword [esp + 0x1c]
jmp 0x43510d
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 0x43881f
mov ecx, edi
call fcn.0042e4c0
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 0x43510d
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 0x4389b8
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 0x43889b
xor edx, edx
mov ecx, edi
call fcn.00434aa0
mov ecx, edi
call fcn.0042aeb0
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 0x43897c
test cl, 8
jne 0x438940
test cl, 1
jne 0x438ada
cmp dword [esp + 0x34], 0x17
jae 0x438ada
mov ecx, dword [esi + 0x2c]
cmp byte [ecx], 0
jne 0x438924
test byte [ecx + 1], 8
je 0x438924
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 0x43510d
lea edx, [esp + 0x64]
call fcn.00422720
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
jmp 0x438acf
push dword [esp + 0x38]
movsd xmm1, qword [edi]
push dword [esp + 0x48]
call fcn.004302a0
add esp, 8
test eax, eax
jle 0x43896d
mov ecx, dword [esp + 0x34]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [esp + 0x34], ecx
jmp 0x43897c
jns 0x43897c
mov eax, dword [esp + 0x34]
test al, 1
je 0x43897c
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.00422760
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 0x43c4f3
jmp 0x438a58
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.00422a90
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
cmp byte [esp + 0x33], al
je 0x438a58
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
cmp byte [esp + 0x1ca], dl
je 0x438acf
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
cmp eax, 0x17
jl 0x438ab6
test ecx, ecx
js 0x438a7d
jne 0x438a70
cmp eax, 0x18
je 0x438a7d
mov dword [esp + 0x64], 0
jmp 0x4388fa
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x64], 0
call fcn.004230b0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x4388fa
cmp edx, 0x65
jne 0x43c4c5
mov dword [esp + 0x18], 0
mov dword [esp + 0x64], 1
jmp 0x438ade
test ecx, ecx
jg 0x438b09
jne 0x438ac1
cmp eax, 0x15
je 0x438b09
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 0x4388fa
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 0x43510d
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x64], 0
call fcn.00423210
jmp 0x438a8d
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 0x435df4
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.00431180
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0xc]
test eax, eax
jle 0x438bbe
cmp word [edx + 2], 0
je 0x438bf7
test eax, eax
jns 0x438bfa
test esi, esi
jle 0x435279
mov ecx, dword [edi + 0x2c]
dec esi
mov dword [edi + 0x20], 0
call fcn.004230b0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x438b80
cmp edx, 0x65
jne 0x43c4c5
mov edx, dword [esp + 0xc]
mov dword [esp + 0x18], 0
add edx, 0x14
mov edi, dword [esp + 0x10]
jmp 0x438ae2
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 0x438c3a
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 0x43510d
cmp eax, dword [edx + 0xc]
jle 0x435281
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 0x43510d
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.0x43513b.9
cmp byte [eax + 2], 0
je 0x43538b
jmp case.0x43513b.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 0x435281
jmp 0x438cae
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 0x438d18
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.00422a90
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
jmp 0x438d8c
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x438d30
call fcn.0042ac10
test eax, eax
jne 0x4370ce
mov ecx, dword [esi + 0x30]
call fcn.0042fdf0
mov esi, eax
test esi, esi
je 0x4370ce
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.0042fe40
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.00422a90
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, esi
mov dword [esp + 0x18], eax
call fcn.00405ec0
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4c5
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 0x438ddd
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
test ecx, ecx
jne 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
test ecx, ecx
je 0x438ada
cmp al, 0x1b
jne 0x438e16
movzx edx, word [esp + 0x124]
xor ecx, ecx
test edx, edx
je 0x438e16
mov eax, dword [esp + 0x114]
add eax, 0x10
test byte [eax], 1
jne 0x438ada
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x438e01
mov al, byte [esp + 0x33]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
cmp al, 0x1a
jne 0x43527d
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 0x43510d
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
jne 0x438edc
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 0x438ec8
test al, 0x28
jne 0x438ea9
test al, 2
je 0x438ec0
mov eax, 1
lea ecx, [esp + 0x180]
mov edx, eax
call fcn.00434aa0
jmp 0x438eb5
lea ecx, [esp + 0x180]
call fcn.0042afa0
mov edx, dword [esp + 0xc]
mov al, byte [esp + 0x190]
test al, 4
je 0x438ae2
mov edi, dword [esp + 0x180]
mov edx, dword [esp + 0x184]
jmp 0x438ee9
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.00422760
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 0x438f60
mov edx, dword [esp + 0xc]
cmp dword [edx + 8], 0
jne 0x438bfa
mov ecx, 0x17d6e
call fcn.004a1f90
mov edx, eax
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x43c4f3
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x438fad
mov ecx, edx
call fcn.00434cd0
mov edx, eax
jmp 0x438fb6
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 0x43510d
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 0x439037
mov ecx, edx
call fcn.00434cd0
mov dword [esp + 0x58], eax
jmp 0x439040
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 0x4390ee
mov ecx, dword [eax + 0x2c]
cmp byte [ecx], 0
jne 0x43907b
test byte [ecx + 1], 8
je 0x43907b
mov dword [esp + 0x4c], 0
mov dword [esp + 0x18], 0
jmp 0x4390ad
lea edx, [esp + 0x4c]
call fcn.00422720
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
cmp dword [esp + 0x4c], eax
je 0x4390a9
mov edi, 1
xor esi, esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
jmp 0x4390f6
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.00421d90
mov edi, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
cmp esi, 0x7fffffff
jl 0x4390de
jg 0x4390d4
cmp edi, 0xffffffff
jb 0x4390de
mov eax, dword [esp + 0x34]
or dword [eax + 8], 2
jmp 0x4390f6
add edi, 1
mov dword [esp + 0x70], edi
adc esi, 0
mov dword [esp + 0x74], esi
jmp 0x4390f6
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x439194
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x439134
mov eax, dword [edx + 4]
test eax, eax
je 0x439129
nop word [eax + eax]
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x439120
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x43913e
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x28], ecx
call fcn.0042b050
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x439161
cmp edx, 0x7fffffff
je 0x43920e
mov eax, dword [esp + 0x34]
test byte [eax + 8], 2
mov eax, dword [esp + 0x28]
jne 0x43920e
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x43918f
jl 0x439183
cmp edi, ecx
jae 0x43918f
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 0x43921c
mov dword [esp + 0x44], 0
lea eax, [esp + 0x70]
push eax
push 8
call fcn.00408c40
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.00422760
mov edx, eax
add esp, 0x14
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
cmp dword [esp + 0x4c], eax
jne 0x439218
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, 0x64
jl 0x4391a6
mov edx, 0xd
jmp 0x43c4c1
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 0x43510d
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 0x4392d1
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xfc], 0
je 0x4392cd
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 0x4392e1
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x58], 0
mov dword [esp + 0x78], 0
test byte [ecx + 2], 1
je 0x43930b
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 0x43930b
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 0x439333
mov edi, dword [esi + 0x24]
jmp 0x439335
xor edi, edi
mov eax, dword [esp + 0x20]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [esp + 0x48]
je 0x439355
mov eax, dword [eax + edx*8]
mov dword [esp + 0x178], eax
jmp 0x439360
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.00426d00
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 0x43c4c5
mov eax, dword [esp + 0x58]
test eax, eax
je 0x435663
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 [0x5a143c]
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 0x43510d
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 0x439450
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 0x43946a
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.00427330
add esp, 8
jmp 0x43618b
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 0x4394e9
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xfc], 0
je 0x4394e9
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 0x4394f3
cmp byte [edi + 4], 0
je 0x4394f3
mov esi, dword [edi + 0x2c]
mov ecx, esi
call fcn.00421d90
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 0x4394f3
mov dword [esp + 0x44], 0
xor esi, esi
mov dl, byte [edx + 2]
mov ecx, dword [edi + 0x2c]
call fcn.00427720
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 0x43c4c5
test byte [esp + 0x48], 1
je 0x435663
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 0x435663
test esi, esi
je 0x435663
test byte [esi + 0x1c], 0x80
jne 0x435663
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 [0x5a143c]
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 0x43510d
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 0x43510d
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.00440500
mov edx, eax
add esp, 8
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x2c], eax
jne 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.00440460
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
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 0x43510d
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 0x4396b7
mov ecx, esi
call fcn.00434cd0
mov esi, eax
jmp 0x4396c0
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.00421d90
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x43c673
push esi
mov ecx, edi
call fcn.0042baa0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
cmp dword [edx + 0xc], eax
jne 0x435279
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x435279
mov ecx, esi
call fcn.0042abc0
mov edi, dword [esp + 0x10]
test eax, eax
jne 0x4370ce
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x439778
mov ecx, edi
call fcn.00434cd0
mov edi, eax
mov dword [esp + 0x44], edi
jmp 0x439781
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 0x4397c0
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 0x43510d
cmp byte [esi + 3], 0
je 0x4397d8
mov edx, dword [esi + 0x40]
mov dword [esp + 0xb0], edx
mov eax, dword [esi + 0x44]
jmp 0x4398b8
cmp byte [esi], 2
jne 0x43984c
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 [0x5a143c]
call esi
add esp, 8
mov dword [esp + 0x18], eax
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.004313b0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4f3
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 0x43510d
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x43986b
mov ecx, esi
call fcn.0042fb10
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
jmp 0x439873
mov dword [esp + 0x18], 0
cmp byte [esi + 2], 0
je 0x4398a1
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 0x43510d
mov esi, dword [esi + 0x2c]
mov ecx, esi
call fcn.00421d90
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 0x43510d
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 0x43992b
push 3
push 1
mov ecx, edi
call fcn.004348c0
add esp, 8
test eax, eax
je 0x4370ce
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x60f828
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x43bba9
mov ecx, dword [eax + 0x2c]
call fcn.0041db70
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43998d
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], 0
je 0x43bba9
cmp byte [ecx], 0
jne 0x43999e
test byte [ecx + 1], 8
je 0x43999e
xor eax, eax
xor edx, edx
jmp 0x4399ad
lea edx, [esp + 0x40]
call fcn.00422720
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 0x43c4c5
mov edx, dword [esp + 0xc]
cmp dword [edx + 8], 0
jle 0x43527d
test eax, eax
jne 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.004226f0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
cmp dword [esp + 0xc4], eax
jne 0x438ade
mov ecx, esi
call fcn.00422e90
test edx, edx
jl 0x43bba9
jg 0x439a46
test eax, eax
jb 0x43bba9
push edx
push eax
call fcn.0040c2c0
mov edx, dword [esp + 0x14]
add esp, 8
cwde
cmp eax, dword [edx + 0xc]
jge 0x43527d
mov dword [esp + 0xc4], 1
jmp 0x438ae2
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 0x439b07
mov esi, dword [edi + 0x2c]
mov dword [esp + 0x18], 0
cmp byte [esi + 0x40], 0
jne 0x439ace
cmp dword [esi + 0x28], 0
lea edx, [esi + 0x28]
je 0x439ac4
xor eax, eax
lea ecx, [esi + 0x48]
call fcn.0043ec10
mov esi, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x18], edx
xor eax, eax
jmp 0x439b28
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
jmp 0x439b28
mov ecx, esi
call fcn.0043f360
mov edx, eax
mov ecx, esi
call fcn.0043e5a0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x439afd
mov ecx, esi
call fcn.004401d0
mov esi, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x18], edx
xor eax, eax
jmp 0x439b28
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
jmp 0x439b28
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x3c]
call fcn.004226f0
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 0x43c4c5
mov edx, dword [esp + 0xc]
mov byte [edi + 2], al
mov edi, dword [esp + 0x10]
cmp dword [edx + 8], 0
jle 0x43527d
test eax, eax
jne 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.004403c0
jmp 0x439ba6
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.00423210
jmp 0x439ba6
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.004230b0
mov edx, eax
mov dword [esp + 0x18], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x439bce
mov byte [esi + 2], al
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp case.0x43513b.9
cmp edx, 0x65
jne 0x43c4c5
mov dword [esp + 0x18], 0
mov byte [esi + 2], 1
jmp 0x43bc4d
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 0x439c14
mov eax, dword [esp + 0x10]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x439c38
mov ecx, esi
call fcn.0042ac10
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
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 0x439c81
mov ecx, dword [edi + 0x24]
jmp 0x439c83
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x2ec]
and eax, 0x8a
push eax
call fcn.00426d00
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 0x43c4f3
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x439d02
mov ecx, esi
call fcn.0042ac10
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, esi
mov ecx, edi
call fcn.0043f4c0
jmp 0x438f5a
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.00422a90
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
cmp dword [esp + 0xdc], eax
jne 0x439dbe
mov dl, 4
mov ecx, edi
call fcn.00427720
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
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 0x43510d
mov edx, dword [esp + 0xc]
cmp word [edx + 2], 0
je 0x439dda
mov ecx, dword [esp + 0x14]
call fcn.004544b0
test eax, eax
je 0x43c68f
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 0x43510d
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 0x439e33
mov ecx, esi
call fcn.0042fb10
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
jmp 0x439e3b
mov dword [esp + 0x18], 0
cmp byte [esi + 2], 0
jne 0x439f50
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.00431040
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov eax, dword [esp + 0xc]
cmp byte [eax], 0x8d
jne 0x439ecd
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 0x43510d
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 0x439f19
call fcn.00434cd0
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 0x43510d
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 0x43510d
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x20]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.0042b380
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43538b
call fcn.0042faa0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.00421d90
xor eax, eax
mov edx, dword [esi + 0x2c]
jl 0x43c6ba
jg 0x43a01a
test edx, edx
je 0x43c6ba
test eax, eax
jg 0x43c6ba
jl 0x43a030
cmp edx, 0x7fffffff
ja 0x43c6ba
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.0042baa0
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0x200]
mov ecx, dword [esp + 0x204]
push eax
lea eax, [esp + 0x2cc]
push eax
call fcn.00430620
add esp, 8
mov esi, eax
cmp dword [esp + 0x210], 0
je 0x43a0a7
lea ecx, [esp + 0x1f8]
call fcn.0042ae20
mov edx, dword [esp + 0xc]
test byte [edx], 1
jne 0x43a0b4
neg esi
jmp 0x43a0b5
inc esi
test esi, esi
jg 0x438ae2
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43a0fe
mov ecx, edi
call fcn.00434cd0
mov edx, dword [esp + 0xc]
mov edi, eax
jmp 0x43a107
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 0x43c6c4
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 0x43a169
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43a169
mov ecx, esi
call fcn.0041d670
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.00428160
add esp, 4
mov dword [esp + 0x18], eax
cmp byte [esi + 9], 0
je 0x43a193
add dword [esi + 0xc], 0xffffffff
jne 0x43a193
mov ecx, esi
call fcn.0041d600
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 0x43c4c5
test esi, esi
je 0x435663
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 0x43a1e9
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x43a1e3
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x43a1d8
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x43a204
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x43a1fe
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x43a1f3
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 0x43510d
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.004280a0
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 0x43a2aa
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 0x43a2a6
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 0x43c4c5
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43a2fe
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x14]
call fcn.0043e850
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [ecx + 0x2c]
push 0
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.004280a0
jmp 0x438747
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 0x43a339
mov ecx, edi
call fcn.00434cd0
mov edi, eax
jmp 0x43a342
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 0x43a37b
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43a37b
mov ecx, esi
call fcn.0041d670
push dword [esp + 0x48]
lea edx, [esp + 0x28]
mov ecx, esi
call fcn.00427be0
add esp, 4
mov edx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x18], edx
je 0x43a3aa
add dword [esi + 0xc], 0xffffffff
jne 0x43a3aa
mov ecx, esi
call fcn.0041d600
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4c5
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 0x43510d
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 0x43a40e
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.00467fb0
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 0x43a451
test edx, edx
je 0x43bba9
push eax
push 0x5d3a6c
push edi
call fcn.0042c200
add esp, 0xc
push dword [esp + 0x34]
call fcn.00405e00
mov edx, dword [esp + 0x1c]
add esp, 4
cmp edx, 7
je 0x4370ce
jmp 0x43c4c5
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 4]
test edx, edx
jne 0x43a4dd
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.0045b2d0
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.0046d840
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 0x43a5c1
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.004085b0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x43c6dd
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xf4]
push 0
push ecx
push fcn.0046d650
push esi
push eax
mov byte [eax + 0xb1], 1
mov dword [esp + 0x114], 0
mov dword [esp + 0x11c], 0
call fcn.00467fb0
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
jne 0x43a5a7
mov eax, dword [esp + 0x100]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x43a5a7
cmp dword [esp + 0x108], eax
jne 0x43a5a7
mov ecx, 0x1838d
call fcn.004a1f90
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.00405ec0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov byte [ecx + 0xb1], 0
test edx, edx
jne 0x43c6e5
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
call fcn.00451e90
jmp 0x43874a
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.0040c820
add esp, 4
mov esi, dword [eax + 8]
test esi, esi
je 0x43a65c
push dword [esp + 0xe0]
mov edx, eax
lea ecx, [edi + 8]
call fcn.0040c8b0
mov ecx, dword [esp + 0x18]
add esp, 4
test esi, esi
je 0x43a660
cmp dword [ecx + 0x210], 0
jne 0x43a655
add dword [esi + 0x18], 0xffffffff
jne 0x43a660
mov edx, esi
call fcn.00454110
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 0x43510d
mov ecx, dword [esp + 0xc]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.00453bd0
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [esp + 0xc]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.0047c580
mov edx, dword [esp + 0x10]
add esp, 4
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.004290a0
add esp, 0x14
mov dword [esp + 0x18], eax
mov ecx, edi
call fcn.0042b380
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x43a772
cmp dword [esp + 0x18], 0
jne 0x43c700
dec eax
mov ecx, edi
cdq
sub dword [esi], eax
push fcn.00405e00
sbb dword [esi + 4], edx
mov edx, dword [esp + 0x94]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0042b6f0
add esp, 0x10
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.0042a910
mov edi, dword [esp + 0x10]
jmp 0x43bc4d
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 0x43a7b0
mov ecx, esi
call fcn.0042b530
test eax, eax
jne 0x4370ca
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.004139d0
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 0x43510d
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 0x43a863
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x43a81a
test al, 1
jne 0x43a815
mov ecx, dword [esi + 8]
call fcn.00413ac0
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x43a863
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 0x43a83f
mov ecx, esi
call fcn.00413950
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.0042b430
mov edi, dword [esp + 0x18]
add esp, 8
jmp 0x43bc4d
mov ecx, edi
call fcn.0042b380
mov edi, dword [esp + 0x10]
jmp case.0x43513b.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 0x43a8a7
mov ecx, esi
call fcn.0042b530
test eax, eax
jne 0x4370ca
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x43a8d3
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.00413ce0
add esp, 8
test eax, eax
jne 0x438ada
mov ecx, dword [esp + 0x24]
test ecx, ecx
js 0x435663
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.004139d0
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 0x43510d
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 0x43a958
mov eax, dword [edi + 0xd0]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x43a954
cmp dword [eax + 0x18], ecx
je 0x43574b
mov eax, dword [eax + 4]
test eax, eax
jne 0x43a944
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xd8]
cmp eax, dword [edx + 0xa0]
jge 0x43c718
test byte [ecx + 0x10], 0x10
jne 0x43ab3c
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 0x43a9a1
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.004061d0
mov edi, eax
add esp, 8
test edi, edi
je 0x4370ca
mov ecx, dword [esp + 0x28]
call fcn.0042ae60
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], 0x42db70
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 0x43aa76
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 0x43aa62
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.0056a7a0
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 0x43bc49
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x10]
jmp 0x43aa7a
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 0x43ab6e
mov ecx, esi
call fcn.00434cd0
mov esi, eax
jmp 0x43ab77
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.0042b630
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 0x43510d
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0xc]
je 0x43ac04
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 0x43510d
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x43ac35
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 0x43510d
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 0x43510d
mov edx, dword [esp + 0xc]
cmp dword [edx + 4], 0
je 0x43ac9d
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x200]
or eax, dword [ecx + 0x204]
jne 0x435281
mov eax, ecx
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
je 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x435281
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
je 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x43ad02
mov eax, dword [edx + 4]
test eax, eax
je 0x43acf0
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x43ace7
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 0x43ad0f
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.0042b050
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.0042b050
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x435663
jl 0x43ad42
cmp dword [edi], eax
jae 0x435663
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 0x43510d
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 0x435663
jg 0x43ad8d
test ecx, ecx
je 0x435663
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 0x438ada
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 0x43ade7
mov ecx, esi
call fcn.00434cd0
mov edx, dword [esp + 0x24]
mov esi, eax
jmp 0x43adf0
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 0x43ae8d
jg 0x43ae17
test ecx, ecx
je 0x43ae8d
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
test ecx, ecx
jl 0x43ae2c
jg 0x43ae46
test eax, eax
jne 0x43ae46
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.0040c080
add esp, 8
test eax, eax
jne 0x43ae8d
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 0x43510d
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 0x43510d
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 0x43574b
test edx, edx
jl 0x438ade
jg 0x43aeea
test ecx, ecx
je 0x438ade
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 0x438ade
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 0x43af2c
jg 0x43af21
test eax, eax
je 0x43af2c
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 0x438ae2
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.00406270
mov esi, eax
add esp, 8
test esi, esi
je 0x4370ce
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 0x43aff8
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 0x43b052
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], esi
js 0x43b052
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 0x43b030
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 0x43b06d
mov esi, dword [esi + 0x1c]
jmp 0x43b070
mov esi, dword [esi + 0x10]
mov ecx, esi
call dword [0x5a143c]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x435663
jle 0x43b0ad
push dword [edi]
call fcn.00431a40
add esp, 4
push eax
push 0x5d3a6c
push dword [esp + 0x18]
call fcn.0042c200
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [esp + 0x18], eax
cmp byte [edi + 0x19], 0
je 0x43b0d8
mov eax, dword [esp + 0xc]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x43b0d4
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.0042b430
add esp, 8
mov byte [edi + 0x19], 0
mov ecx, dword [edi]
call fcn.0042ae60
mov eax, dword [edi]
mov ecx, 1
mov edx, dword [esp + 0x18]
mov word [eax + 0x10], cx
mov dword [edi + 0x14], 0
jmp 0x438f60
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 0x43b1ab
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 0x43b14e
mov ecx, edi
call fcn.0042adc0
mov ecx, dword [esp + 0x24]
jmp 0x43b157
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 [0x5a143c]
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 0x43b1b7
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.0042ad00
mov edi, eax
mov dword [esp + 0x18], edi
test edi, edi
jne 0x43c738
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.0042a910
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 0x43510d
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.004a05c0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x18], edx
test edx, edx
je 0x43b25b
cmp edx, 5
jne 0x43c4c5
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.0042b430
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x43b270
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 0x43510d
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 0x43b2d8
mov ecx, edi
call fcn.00434cd0
mov dword [esp + 0x24], eax
jmp 0x43b2e1
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 0x43b319
xor eax, eax
jmp 0x43b338
mov eax, dword [esi + 0x44]
cmp dword [eax], 0
je 0x43b333
cmp dword [esi + 0x54], 0
jl 0x43b333
jg 0x43b32f
cmp dword [esi + 0x50], 0
jbe 0x43b333
xor eax, eax
jmp 0x43b338
mov eax, 1
test eax, eax
mov edi, ecx
cmovne edi, edx
cmp byte [esi + 0xf], 0
jne 0x43b355
cmp dword [esi], 0x607d88
je 0x43b355
mov eax, dword [esi + 0xb8]
jmp 0x43b35a
mov eax, 0x5d9ca0
cmp edi, 5
jne 0x43b38a
mov ecx, eax
call fcn.00409700
test eax, eax
je 0x43b3da
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
jne 0x43b3da
cmp byte [esi + 4], 0
jne 0x43b386
cmp dword [eax], 2
jl 0x43b3da
cmp dword [eax + 0x34], 0
je 0x43b3da
mov ecx, dword [esp + 0x2c]
cmp edi, ecx
je 0x43b413
cmp ecx, 5
je 0x43b39c
cmp edi, 5
jne 0x43b413
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x55], 0
je 0x43c761
cmp dword [eax + 0xc0], 1
jg 0x43c761
cmp ecx, 5
jne 0x43b3e6
mov edx, eax
mov ecx, esi
call fcn.004195f0
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43b413
mov edx, edi
mov ecx, esi
call fcn.00419240
jmp 0x43b3fd
mov edx, dword [esp + 0x2c]
mov edi, edx
mov eax, dword [esp + 0x18]
jmp 0x43b41b
cmp ecx, 4
jne 0x43b3f5
lea edx, [ecx - 2]
mov ecx, esi
call fcn.00419240
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x43b417
mov ecx, dword [esp + 0x48]
xor edx, edx
cmp edi, 5
sete dl
inc edx
call fcn.00429780
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.00419240
mov esi, dword [esp + 0x24]
mov ecx, 0x2202
mov word [esi + 0x10], cx
cmp eax, 6
jne 0x43b43d
xor ecx, ecx
jmp 0x43b444
mov ecx, dword [eax*4 + 0x5da330]
mov dword [esi + 8], ecx
call fcn.00409700
movzx edx, byte [esp + 0x50]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0x12], 1
call fcn.0042a910
mov edx, dword [esp + 0x18]
jmp 0x438f60
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
test eax, eax
je 0x43b47b
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
jmp 0x43b47d
xor eax, eax
mov edx, dword [esp + 0x14]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x7c]
call fcn.00481750
add esp, 8
jmp 0x43874a
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.00421320
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
je 0x43bba9
cmp edx, 0x65
jne 0x43c4c5
mov dword [esp + 0x18], 0
jmp 0x438ade
mov edx, dword [esp + 0xc]
cmp dword [edx + 4], 0
jne 0x43b4ff
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x14]
call fcn.00431240
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43510d
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 0x43510d
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 0x43510d
mov edx, dword [esp + 0xc]
mov al, byte [edx + 0xc]
mov byte [esp + 0xa8], al
test al, al
jne 0x43b5a7
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
and eax, 4
xor ecx, ecx
jne 0x435281
test eax, eax
jne 0x435281
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.00429650
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
test edx, edx
je 0x435972
cmp dl, 6
jne 0x43c4c5
mov eax, dword [esp + 0xc]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0042c200
mov edx, dword [esp + 0x24]
add esp, 0xc
jmp 0x43c4c5
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.00483340
mov edx, eax
mov dword [esp + 0x18], edx
test esi, esi
je 0x43b630
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.004313b0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4c5
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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.0042b680
mov dword [esp + 0x18], eax
lea eax, [esp + 0x250]
push eax
call fcn.00431a40
add esp, 4
test eax, eax
je 0x43b6c7
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.00482ca0
add esp, 8
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x250]
call fcn.0042ae60
mov edx, dword [esp + 0x18]
jmp 0x438750
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.004830c0
mov ecx, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x18], edx
dec dword [ecx + 0xcc]
test edx, edx
jne 0x43c4c9
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x1c]
add edx, 0x14
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x28], 0
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x43c7b7
mov eax, dword [edi]
mov dword [esp + 0x24], eax
test eax, eax
je 0x43c7b7
mov esi, dword [eax + 0x18]
lea ecx, [esp + 0x28]
push ecx
push edi
mov ecx, esi
call dword [0x5a143c]
call esi
mov esi, dword [esp + 0x18]
add esp, 8
mov edx, edi
mov dword [esp + 0x18], eax
mov ecx, esi
call fcn.004313b0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43ca37
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.004348c0
add esp, 8
test eax, eax
je 0x43c79a
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 0x43510d
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.0042b380
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x10]
mov eax, dword [edi + 0x34]
test eax, eax
je 0x435663
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 [0x5a143c]
call esi
mov ecx, dword [edi + 0x34]
add esp, 0x14
mov esi, eax
mov dword [esp + 0x18], esi
call fcn.00482030
push edi
push dword [esp + 0x18]
call fcn.00454210
add esp, 8
test esi, esi
jne 0x43c7c1
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x435663
mov ecx, dword [esp + 0x24]
push fcn.00405e00
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.0042b6f0
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 0x43510d
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.00405cc0
mov esi, eax
add esp, 8
test esi, esi
je 0x4370ca
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 0x43b8fe
mov ecx, eax
call fcn.00434cd0
jmp 0x43b907
mov ecx, 4
mov word [eax + 0x10], cx
mov ecx, 1
mov edx, esi
mov word [eax + 0x10], cx
mov ecx, eax
push 0x432820
push str.ValueList
call fcn.0042b470
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 0x43510d
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 0x43ba33
cmp esi, 8
jb 0x43ba1b
cmp dword [0x60e7e8], 2
jl 0x43ba1b
movaps xmm2, xmmword [0x5edf00]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x43b9c3
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [0x5edf10]
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 0x43b9d0
mov edi, dword [esp + 0x48]
cmp ecx, esi
jge 0x43ba33
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 0x43ba28
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 [0x5a143c]
call esi
mov edx, dword [esp + 0x8c]
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
call fcn.004313b0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4c5
mov eax, dword [esp + 0x24]
push edi
mov esi, dword [eax + 0x28]
mov ecx, esi
call dword [0x5a143c]
call esi
mov ecx, dword [esp + 0x2c]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x435663
jmp 0x438ada
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 0x4359ef
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 0x43bb19
mov ecx, edi
call fcn.0042b380
mov edx, dword [esp + 0xc]
mov eax, 0x401
mov dword [edi], 0
jmp 0x43bb29
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 [0x5a143c]
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.004313b0
cmp dword [esp + 0x1e4], 0
jle 0x43bb8f
push edi
call fcn.00431a40
add esp, 4
push eax
push 0x5d3a6c
push esi
call fcn.0042c200
mov eax, dword [esp + 0x1f0]
add esp, 0xc
mov dword [esp + 0x18], eax
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.0042a910
mov edx, dword [esp + 0x18]
mov edi, esi
test edx, edx
jne 0x43c4f3
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43538b
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 [0x5a143c]
call esi
add esp, 4
mov dword [esp + 0x18], eax
mov edx, edi
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.004313b0
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4f3
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x48]
push dword [eax + 0x2c]
mov esi, dword [esi + 0x28]
mov ecx, esi
call dword [0x5a143c]
call esi
add esp, 4
test eax, eax
jne 0x43bc4d
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 0x43ca0f
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x8c], ecx
jb 0x43bba9
mov eax, dword [esp + 0x6c]
ja 0x43bc80
cmp dword [esp + 0x1c], eax
jb 0x43bba9
nop
mov esi, dword [edx + 0x174]
test esi, esi
je 0x43bba9
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 [0x5a143c]
call esi
add esp, 4
test eax, eax
jne 0x43c99e
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x8c], ecx
ja 0x43bc80
jb 0x43bba9
cmp dword [esp + 0x1c], eax
jae 0x43bc80
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43bd37
mov byte [esi + 0x12], 1
jmp 0x43bd58
cmp byte [esi + 0x12], 1
je 0x43bd58
mov dl, 1
mov ecx, esi
call fcn.00409000
mov edx, eax
mov dword [esp + 0x18], edx
test edx, edx
jne 0x43c4c5
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 [0x5a143c]
call esi
add esp, 8
mov dword [esp + 0x18], eax
test edi, edi
jne 0x43bd87
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.004313b0
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x18]
test edx, edx
jne 0x43c4f3
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
cmp byte [eax + 0x57], 0
jne 0x4370d2
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x43c7b7
mov eax, dword [edi]
mov dword [esp + 0x24], eax
test eax, eax
je 0x43c7b7
cmp dword [eax + 0x34], 0
mov edx, dword [edx + 8]
je 0x435df4
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 0x43be3f
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x43be34
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 [0x5a143c]
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.004313b0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
test edx, edx
jne 0x43beb5
cmp dword [eax + 4], edx
je 0x43beb5
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 0x43bf05
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x43bf05
mov eax, dword [esp + 0xc]
movzx eax, word [eax + 2]
cmp eax, 4
jne 0x43bef3
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 0x43510d
cmp eax, 5
jne 0x43befd
mov eax, 2
mov byte [edi + 0x94], al
jmp 0x43bf0d
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test edx, edx
jne 0x43c4cd
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43bf56
mov ecx, edx
call fcn.00434cd0
mov edx, eax
jmp 0x43bf5f
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 0x43510d
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 0x43bfc5
mov ecx, edx
call fcn.00434cd0
mov dword [esp + 0x24], eax
jmp 0x43bfce
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 0x43bff6
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x43c00c
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x43c00c
mov ecx, esi
call fcn.0041d670
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x43c01b
mov dword [eax + 0xa0], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa0]
je 0x43c034
add dword [esi + 0xc], 0xffffffff
jne 0x43c034
mov ecx, esi
call fcn.0041d600
mov eax, dword [esp + 0x24]
mov dword [eax], edi
mov dword [eax + 4], 0
jmp 0x435663
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 0x43c0ae
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 0x43c0ae
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 0x43c090
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 [0x5a143c]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x435663
jle 0x43c111
push dword [esp + 0x24]
call fcn.00431a40
add esp, 4
push eax
push 0x5d3a6c
push dword [esp + 0x18]
call fcn.0042c200
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.0042f770
mov edx, dword [esp + 0x20]
add esp, 8
mov dword [edi + 0x14], 0
mov edi, dword [esp + 0x10]
test edx, edx
jne 0x43c4f3
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
add edx, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
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 0x43510d
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.00434d10
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.00591410
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 0x435663
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.00434d10
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.00591410
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 0x43c254
inc dword [edi + 0xc4]
jmp 0x438ae2
inc dword [edi + 0xc0]
add edx, 0x14
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
jmp 0x43510d
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x5e]
test cl, 0x41
je 0x43c358
cmp byte [edi + 0x95], 0xfe
je 0x43c358
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x43c2a7
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x43c358
test cl, 0x40
je 0x43c2e1
mov edx, eax
mov ecx, edi
call fcn.00434410
mov edi, eax
mov eax, dword [esp + 0x14]
push edi
mov esi, dword [eax + 0xd8]
mov ecx, esi
push dword [eax + 0xdc]
call dword [0x5a143c]
call esi
push edi
call fcn.00405e00
add esp, 0xc
mov edi, dword [esp + 0x10]
jmp 0x43c354
mov ecx, dword [esp + 0x14]
push eax
cmp dword [ecx + 0xc8], 1
jle 0x43c338
push str.____s
push ecx
call fcn.004085b0
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 [0x5a143c]
call esi
add esp, 0x10
test edi, edi
je 0x43c2db
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.00405ec0
mov edi, dword [esp + 0x10]
jmp 0x43c354
mov esi, dword [ecx + 0xd8]
push edi
push dword [ecx + 0xdc]
mov ecx, esi
push 1
call dword [0x5a143c]
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 [0x608b3c]
jl 0x43c3a8
cmp byte [edx], 0xb6
je 0x435281
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x43c39d
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x43c394
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x43c383
mov edx, dword [esp + 0xc]
mov dword [edx + 4], 0
inc dword [edx + 4]
inc dword [edi + 0xbc]
jmp 0x438ae2
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x8c]
add edx, 0x14
jmp 0x43510d
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 0x43c479
movzx eax, word [edx + 2]
test ax, ax
je 0x43c42b
push dword [eax*4 + 0x5d9ae8]
push str._s_constraint_failed
push edi
call fcn.0042c200
mov edi, dword [esp + 0x18]
add esp, 0xc
mov eax, dword [edi + 0x10]
test eax, eax
je 0x43c440
mov esi, dword [esp + 0x10]
push eax
push dword [esi + 0x7c]
push str._z:__s
push dword [esp + 0x20]
call fcn.004085b0
add esp, 0x10
mov dword [esi + 0x7c], eax
jmp 0x43c440
push dword [edx + 0x10]
push 0x5d3a6c
push edi
call fcn.0042c200
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.00408870
mov edi, dword [esp + 0x24]
add esp, 0x14
mov ecx, edi
call fcn.0042f220
mov edx, dword [esp + 0x14]
mov edi, eax
cmp edi, 5
jne 0x43c497
mov eax, dword [esp + 0x10]
mov dword [eax + 0x24], edi
jmp 0x43c940
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 0x43c939
mov ecx, 0x174a6
call fcn.004a1f90
mov edx, eax
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp byte [ecx + 0x57], 0
je 0x43ca42
mov edx, 7
jmp 0x43ca6d
cmp edx, 7
je 0x4370ce
cmp edx, 0x12
je 0x43c677
mov ecx, dword [esp + 0x14]
jmp 0x43c4cd
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 + 0x608a14]
movzx eax, word [esi + 0x10]
and eax, 0x3f
movzx eax, byte [eax + 0x5de208]
push dword [eax*4 + 0x5dcf08]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0042c200
mov ecx, dword [esp + 0x2c]
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x18], edx
jmp 0x43c4cd
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0042c200
add esp, 8
mov edx, 5
jmp 0x43c4c1
mov edi, dword [esp + 0x10]
push str.cannot_release_savepoint___SQL_statements_in_progress
push edi
call fcn.0042c200
mov ecx, dword [esp + 0x1c]
mov edx, 5
add esp, 8
mov dword [esp + 0x18], edx
jmp 0x43c4cd
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 0x43c940
mov edx, dword [esp + 0x14]
mov edi, 0x65
jmp 0x43c940
mov edi, dword [esp + 0x10]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.0042c200
mov ecx, dword [esp + 0x20]
mov edx, 1
add esp, 0xc
mov dword [esp + 0x18], edx
jmp 0x43c4cd
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 0x43c622
mov edx, 8
mov dword [esp + 0x18], edx
jmp 0x43c4cd
mov edx, 0xb
mov dword [esp + 0x18], edx
jmp 0x43c4cd
cmp dl, 5
jne 0x43c4c5
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 0x43c940
mov edx, 0x204
jmp 0x43c4c1
mov edi, dword [esp + 0x10]
push str.string_or_blob_too_big
push edi
call fcn.0042c200
add esp, 8
mov edx, 0x12
jmp 0x43c4c1
push 0x5d957c
push 0x181a8
push str.index_corruption
push str._s_at_line__d_of___.10s_
push 0x30b
call fcn.00408870
add esp, 0x14
mov edx, 0x30b
jmp 0x43c4c1
mov ecx, 0x18275
jmp 0x43c4ba
mov edi, dword [esp + 0x10]
mov edx, 6
mov dword [esp + 0x18], edx
mov byte [edi + 0x94], 2
jmp 0x43c4cd
mov dword [esp + 0x18], 7
mov ecx, dword [esp + 0x14]
call fcn.00453db0
mov edx, dword [esp + 0x18]
cmp edx, 7
je 0x4370ce
jmp 0x43c4c5
push dword [esp + 0x90]
call fcn.00405e00
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x43c4c5
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x20], 1
call fcn.0042c200
add esp, 8
mov edx, 1
jmp 0x43c4c5
push esi
call fcn.00431a40
mov edi, dword [esp + 0x14]
add esp, 4
push eax
push 0x5d3a6c
push edi
call fcn.0042c200
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
jmp 0x43c4cd
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.0042c200
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, 1
jmp 0x43c4cd
mov esi, dword [esp + 0x24]
push dword [esp + 0x28]
mov esi, dword [esi + 0x1c]
mov ecx, esi
call dword [0x5a143c]
call esi
add esp, 4
jmp 0x4370ca
mov edx, 6
jmp 0x43c4c1
push dword [esp + 0x5c]
call fcn.00405e00
mov edx, dword [esp + 0x1c]
add esp, 4
jmp 0x43c4c5
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 0x4370d2
test byte [eax + 0x5e], 4
je 0x43c824
mov esi, dword [eax + 0xd8]
mov ecx, esi
push 0
push edi
push dword [eax + 0xdc]
push 4
call dword [0x5a143c]
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 0x43c940
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 0x43c9b6
test esi, esi
je 0x43c88a
mov esi, dword [esp + 0x14]
mov edx, 0x204
mov ecx, esi
call fcn.0049f520
mov byte [esi + 0x55], 1
jmp 0x43c8d3
test ecx, ecx
je 0x43c8af
cmp dword [edx + 0xc4], 0
jle 0x43c8af
push str.cannot_commit_transaction___SQL_statements_in_progress
push edi
call fcn.0042c200
add esp, 8
mov edx, 5
jmp 0x43c4c1
mov edx, 1
mov ecx, edi
call fcn.0042f1b0
mov edi, eax
test edi, edi
jne 0x43c846
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.0042f220
cmp eax, 5
jne 0x43c919
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 0x43c940
mov ecx, esi
call fcn.0049ed20
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 0x43cbde
mov eax, dword [esp + 0x6c]
ja 0x43c961
cmp dword [esp + 0x1c], eax
jb 0x43cbde
mov esi, dword [edx + 0x174]
test esi, esi
je 0x43cbde
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 [0x5a143c]
call esi
mov edx, dword [esp + 0x18]
add esp, 4
test eax, eax
je 0x43c940
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x7c], eax
jmp 0x43c4c1
test ecx, ecx
jne 0x43c9d3
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.0042c200
add esp, 8
mov edx, 1
jmp 0x43c4c1
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.0042c200
add esp, 8
mov edx, 1
jmp 0x43c4c1
mov eax, dword [esp + 0xac]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1c], eax
mov edx, 9
jmp 0x43c4c1
mov eax, dword [esp + 0xac]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x1c], eax
jmp 0x4370ce
mov ecx, dword [esp + 0x14]
mov edi, esi
jmp 0x43c4cd
cmp edx, 0x210a
jne 0x43ca71
push 0x5d957c
push 0x18b52
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00408870
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x18], edx
cmp dword [edi + 0x7c], 0
jne 0x43cad0
cmp edx, 0xc0a
je 0x43cad0
mov eax, edx
mov ecx, str.unknown_error
sub eax, 0x64
je 0x43cabc
sub eax, 1
je 0x43cab5
sub eax, 0x19f
je 0x43caae
movzx eax, dl
cmp eax, 0x1d
jae 0x43cac1
mov eax, dword [eax*4 + 0x5d9630]
test eax, eax
je 0x43cac1
mov ecx, eax
jmp 0x43cac1
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x43cac1
mov ecx, str.no_more_rows_available
jmp 0x43cac1
mov ecx, str.another_row_available
push ecx
push 0x5d3a6c
push edi
call fcn.0042c200
add esp, 0xc
mov esi, dword [esp + 0x18]
mov edx, esi
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x24], esi
call fcn.004097e0
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.00408870
add esp, 0x14
cmp byte [edi + 0x97], 2
jne 0x43cb23
mov ecx, edi
call fcn.0042f220
cmp esi, 0xc0a
jne 0x43cbb8
mov ecx, dword [esp + 0x14]
call fcn.00406650
mov edx, dword [esp + 0x14]
mov al, byte [esp + 0x6b]
mov edi, 1
mov dword [esp + 0x18], edi
test al, al
je 0x43c940
movzx ecx, al
sub ecx, edi
js 0x43cb75
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 0x43c940
xor edi, edi
cmp dword [edx + 0x14], edi
jle 0x43c939
xor esi, esi
nop dword [eax]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + esi + 0xc]
test byte [eax + 0x4e], 8
je 0x43cbaa
push eax
call fcn.0045b2d0
mov edx, dword [esp + 0x18]
add esp, 4
inc edi
add esi, 0x10
cmp edi, dword [edx + 0x14]
jl 0x43cb90
jmp 0x43c939
cmp esi, 0xb
jne 0x43cb38
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x55], 0
jne 0x43cb3c
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], 2
mov dword [edx + 0x20], eax
jmp 0x43cb3c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
add dword [eax + 0xb4], ecx
cmp dword [eax + 0xa0], 0
je 0x43cbfc
mov ecx, eax
call fcn.0042da70
mov ecx, dword [esp + 0x31c]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.0053b526
mov esp, ebp
pop ebp
ret