Function at 0x432ba0
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, 0x308
mov eax, dword [0x5ff1d4]
xor eax, esp
mov dword [esp + 0x304], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], 0
xorps xmm0, xmm0
mov dword [esp + 0x18], edi
mov dword [esp + 0x60], 0
movlpd qword [esp + 0xa0], xmm0
mov eax, dword [edi + 0x68]
mov edx, dword [edi]
mov esi, dword [edi + 0x58]
mov dword [esp + 0x54], eax
mov dword [esp + 0x10], 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 + 0x24], esi
je 0x432c15
call fcn.0042b930
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x174], 0
je 0x432c38
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 0x432c3e
or ecx, 0xffffffff
or eax, 0xffffffff
cmp dword [edi + 0x24], 7
mov dword [esp + 0x7c], eax
mov dword [esp + 0x6c], ecx
je 0x43a33e
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 0x43a317
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x54]
lea eax, [eax + eax*4]
lea edx, [ecx + eax*4]
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
add eax, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
adc ecx, 0
mov dword [esp + 0x88], ecx
mov cl, byte [edx]
movzx edx, cl
mov byte [esp + 0x3b], cl
mov dword [esp + 0x40], edx
cmp edx, 0xb5
ja case.0x432cc5.89
jmp dword [edx*4 + 0x43a5c0]
mov ecx, dword [esp + 0x10]
mov edx, 4
mov eax, dword [ecx + 4]
sub ecx, dword [esp + 0x54]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov word [eax + esi*8 + 0x10], dx
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x24]
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.0x432cc5.9
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 4
je 0x432e0b
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 + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
mov edx, dword [esp + 0x10]
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 + 0x10]
mov dword [esi + ecx*8], eax
mov eax, 4
mov word [esi + ecx*8 + 0x10], ax
cmp dword [edx + 8], 0
jne 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov ecx, 4
mov edi, dword [esp + 0x24]
mov eax, dword [edx + 4]
sub edx, dword [esp + 0x54]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x24]
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 + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x432e0b
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x439dab
mov edi, dword [esp + 0x10]
cmp dword [edi + 4], 0
mov edi, dword [esp + 0x18]
jne 0x439dab
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.0042c480
mov ecx, dword [esp + 0x10]
cmp dword [ecx + 8], 4
jne 0x432e92
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 + 0x24], esi
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x432eff
call fcn.00432a80
mov ecx, eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x432f52
mov ecx, edx
call fcn.00432a80
mov edx, eax
jmp 0x432f5b
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [esp + 0x88]
mov dword [edx + 4], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x432fa7
call fcn.00432a80
mov ecx, eax
jmp 0x432fb0
mov eax, 4
mov word [ecx + 0x10], ax
mov edx, dword [esp + 0x10]
mov eax, 8
mov word [ecx + 0x10], ax
add edx, 0x14
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
movsd xmm0, qword [eax]
mov eax, dword [esp + 0x20]
movsd qword [ecx], xmm0
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x433005
mov ecx, esi
call fcn.00432a80
mov esi, eax
jmp 0x43300e
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x10]
mov ecx, edi
call fcn.00409890
cmp byte [esp + 0x50], 1
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], eax
je 0x43309a
push 0
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edx, edi
mov ecx, esi
call fcn.004296a0
mov edi, eax
add esp, 0x10
mov dword [esp + 0x1c], edi
test edi, edi
jne 0x439ffd
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.00428950
test eax, eax
jne 0x434c5b
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x18], eax
mov eax, 0x2000
or word [esi + 0x10], ax
cmp byte [ecx + 1], 0xfa
jne 0x43308a
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x43308a
mov ecx, dword [esp + 0x14]
call fcn.004059a0
mov ecx, dword [esp + 0x10]
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]
cmp eax, dword [ecx + 0x78]
jg 0x439ffd
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov byte [edx], 0x49
jmp 0x4330bb
mov edx, dword [esp + 0x10]
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 0x4330df
call fcn.00432a80
mov edx, dword [esp + 0x10]
mov ecx, eax
jmp 0x4330e8
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 + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x4396ca
mov edi, dword [esp + 0x24]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cdq
cmp dword [edi + esi*8], eax
mov edi, dword [esp + 0x18]
jne 0x4396ca
mov eax, dword [esp + 0x24]
cmp dword [eax + esi*8 + 4], edx
mov edx, dword [esp + 0x10]
jne 0x432e07
mov esi, dword [esp + 0x24]
mov eax, 0x2210
mov word [ecx + 0x10], ax
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x433188
mov ecx, esi
call fcn.00432a80
mov esi, eax
jmp 0x433191
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, 0x101
mov edx, dword [esp + 0x10]
mov edi, dword [eax + 0xc]
sub edi, dword [eax + 8]
mov eax, 1
cmp dword [edx + 4], 0
mov dword [esi + 0xc], 0
cmovne eax, ecx
movzx eax, ax
mov word [esi + 0x10], ax
add esi, 0xc
mov dword [esp + 0x28], eax
test edi, edi
jle 0x432e03
nop dword [eax]
lea esi, [esi + 0x28]
lea ecx, [esi - 0xc]
call fcn.00429330
mov eax, dword [esp + 0x28]
dec edi
mov word [esi + 4], ax
mov dword [esi], 0
test edi, edi
jg 0x4331d0
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 + 0x10]
or ax, 1
add edx, 0x14
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x43326a
mov ecx, esi
call fcn.00432a80
mov esi, eax
jmp 0x433273
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x4332b9
mov edx, dword [eax + 4]
mov ecx, esi
call fcn.00429350
mov ecx, esi
call fcn.00428bb0
test eax, eax
jne 0x434c5f
mov al, byte [esp + 0x50]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add edx, 0x14
mov byte [esi + 0x12], al
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov eax, dword [eax + 4]
push 0
cdq
push 0
push edx
mov edx, ecx
mov ecx, esi
push eax
call fcn.004296a0
mov al, byte [esp + 0x60]
add esp, 0x10
mov byte [esi + 0x12], al
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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.00429580
test eax, eax
jne 0x439ffd
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x433330
mov ecx, esi
call fcn.00429330
movups xmm0, xmmword [edi - 0x28]
mov edx, dword [esp + 0x10]
mov ecx, 0xafff
movups xmmword [esi], xmm0
mov eax, dword [edi - 0x18]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x10], eax
and ax, cx
mov ecx, 0x2040
or ax, cx
mov ecx, dword [esp + 0x88]
mov word [esi + 0x10], ax
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x2c], 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]
nop dword [eax]
mov eax, 0x9000
test word [esi + 0x10], ax
jne 0x4333a1
cmp dword [esi + 0x18], 0
je 0x4333ac
mov ecx, esi
call fcn.00428dc0
mov ecx, dword [esp + 0x2c]
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 0x4333f2
mov ecx, esi
call fcn.00428b60
test eax, eax
jne 0x434c5b
mov ecx, dword [esp + 0x2c]
add edi, 0x28
add esi, 0x28
sub ecx, 1
mov dword [esp + 0x2c], ecx
jne 0x433390
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x2c], 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 dword [eax]
push 0x4000
mov edx, edi
mov ecx, esi
call fcn.004295e0
mov eax, 0x4000
add esp, 4
test word [esi + 0x10], ax
je 0x43346b
mov ecx, esi
call fcn.00428b60
test eax, eax
jne 0x434c5b
movzx eax, word [esi + 0x10]
test eax, 0x800
je 0x433489
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 2
je 0x433489
and eax, 0xf7ff
mov word [esi + 0x10], ax
mov ecx, dword [esp + 0x2c]
mov eax, ecx
dec ecx
mov dword [esp + 0x2c], ecx
test eax, eax
je 0x4331ee
add esi, 0x28
add edi, 0x28
jmp 0x433440
mov ecx, dword [esp + 0x10]
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.004295e0
mov edx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
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.004293e0
add esp, 8
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
xor edx, edx
mov ecx, edi
call fcn.0042d0a0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x40], ecx
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [edx + 0xc]
mov edx, dword [esp + 0x24]
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 + 0x3c], edx
test al, 1
je 0x4335a5
mov ecx, edi
call fcn.00429330
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
test dl, 0x12
jne 0x4335d9
mov dl, byte [esp + 0x50]
push 0
call fcn.00428c10
add esp, 4
test eax, eax
jne 0x434c5b
mov eax, dword [esp + 0x40]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx ecx, ax
mov dword [esp + 0x3c], ecx
jmp 0x433605
test edx, 0x400
je 0x433605
call fcn.00428bb0
test eax, eax
jne 0x434c5b
mov eax, dword [esp + 0x40]
mov ecx, 0xfffd
mov ax, word [eax + 0x10]
and ax, cx
movzx eax, ax
mov dword [esp + 0x3c], eax
movzx eax, word [esi + 0x10]
mov dword [esp + 0x2c], eax
test al, 0x12
jne 0x433623
mov dl, byte [esp + 0x50]
mov ecx, esi
push 0
call fcn.00428c10
add esp, 4
jmp 0x433631
test eax, 0x400
je 0x43364c
mov ecx, esi
call fcn.00428bb0
test eax, eax
jne 0x434c5b
mov ax, word [esi + 0x10]
mov ecx, 0xfffd
and ax, cx
movzx eax, ax
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x40]
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 0x439ffd
jl 0x43367d
cmp ecx, eax
ja 0x439ffd
xor eax, eax
lea edx, [ecx + 2]
cmp edi, esi
mov ecx, edi
sete al
push eax
call fcn.00428970
add esp, 4
test eax, eax
jne 0x434c5b
mov ax, word [edi + 0x10]
mov ecx, 0xf242
and ax, cx
or ax, 2
mov word [edi + 0x10], ax
cmp edi, esi
je 0x4336cb
push dword [esi + 0xc]
push dword [esi + 8]
push dword [edi + 8]
call fcn.00562cb0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x40]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [esi + 0xc]
add eax, dword [edi + 8]
push eax
call fcn.00562cb0
mov eax, dword [esp + 0x4c]
add esp, 0xc
mov ecx, dword [esp + 0x3c]
mov dl, byte [esp + 0x50]
mov word [eax + 0x10], cx
mov ecx, dword [esp + 0x5c]
cmp dl, 1
jbe 0x43370b
mov eax, dword [esp + 0x4c]
and ecx, 0xfffffffe
mov dword [esp + 0x84], eax
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x24]
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 + 0x20]
mov byte [edi + 0x12], dl
mov edx, dword [esp + 0x10]
mov dword [edi + 0xc], ecx
add edx, 0x14
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 + 0x30], eax
mov eax, edx
mov dword [esp + 0x3c], 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 + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x2c], eax
mov al, cl
and al, dl
test al, 4
jne 0x4337db
or cl, dl
test cl, 1
jne 0x433a0d
mov esi, dword [esp + 0x30]
and edx, 0x2d
je 0x4337ab
mov ecx, edx
mov dword [esp + 0x3c], ecx
jmp 0x4337b9
mov ecx, esi
call fcn.004329d0
movzx eax, ax
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x4c]
mov ax, word [ecx + 0x10]
and ax, 0x2d
jne 0x4337cc
call fcn.004329d0
movzx eax, ax
and al, byte [esp + 0x3c]
test al, 4
je 0x4338a9
mov eax, dword [esp + 0x30]
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 + 0x10]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], edi
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x43380e
jmp dword [eax*4 + 0x43a898]
push ecx
push edx
lea ecx, [esp + 0x98]
call fcn.0040aea0
add esp, 8
test eax, eax
jne 0x4338a5
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
jmp 0x4339cd
test edx, edx
jne 0x433861
cmp ecx, 0x80000000
jne 0x433861
test edi, edi
jg 0x4338a5
jl 0x433853
test esi, esi
jae 0x4338a5
add esi, 0
adc edi, 0x80000000
jmp 0x4339cd
neg edx
adc ecx, 0
neg ecx
jmp case.0x43380e.106
push ecx
push edx
lea ecx, [esp + 0x98]
call fcn.0040af40
jmp 0x433823
mov eax, edx
or eax, ecx
je 0x433a09
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x43399f
test esi, esi
jne 0x43399f
cmp edi, 0x80000000
jne 0x43399f
mov esi, dword [esp + 0x30]
mov ecx, esi
call fcn.00428f40
mov ecx, dword [esp + 0x4c]
movsd qword [esp + 0x98], xmm0
call fcn.00428f40
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
add eax, 0xffffff96
cmp eax, 3
ja case.default.0x4338d1
jmp dword [eax*4 + 0x43a8a8]
addsd xmm0, qword [esp + 0x98]
jmp 0x433957
subsd xmm0, qword [esp + 0x98]
jmp 0x433957
mulsd xmm0, qword [esp + 0x98]
jmp 0x433957
movsd xmm1, qword [esp + 0x98]
xorps xmm2, xmm2
ucomisd xmm1, xmm2
lahf
test ah, 0x44
jnp 0x433a09
divsd xmm0, xmm1
jmp 0x433957
mov ecx, esi
call fcn.00428eb0
mov ecx, dword [esp + 0x4c]
mov esi, eax
mov edi, edx
call fcn.00428eb0
mov ecx, esi
or ecx, edi
je 0x433a09
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
jne 0x433947
mov esi, 1
xor edi, edi
push edi
push esi
push edx
push eax
call fcn.0058a030
mov ecx, eax
call fcn.0058a690
call fcn.00409850
mov esi, dword [esp + 0x24]
test eax, eax
jne 0x433a0d
mov ecx, dword [esp + 0x2c]
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 + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
push ecx
push edx
push edi
push esi
call fcn.00589f80
jmp 0x4339c9
mov eax, edx
or eax, ecx
je 0x433a09
mov eax, edx
and eax, ecx
cmp eax, 0xffffffff
jne 0x4339c0
mov edx, 1
xor ecx, ecx
push ecx
push edx
push edi
push esi
call fcn.0058a030
mov edi, edx
mov esi, eax
mov ecx, dword [esp + 0x2c]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], esi
mov edx, dword [esp + 0x10]
or ax, 4
mov esi, dword [esp + 0x24]
add edx, 0x14
mov dword [ecx + 4], edi
mov edi, dword [esp + 0x18]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
call fcn.00429330
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
test eax, eax
je 0x432e0b
push 0
push 0
jmp 0x4334f4
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [edx + 8]
mov dword [esp + 0x28], ecx
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
mov eax, dword [esp + 0x10]
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 + 0x34], esi
test al, 1
je 0x433aa0
mov ecx, esi
call fcn.00429330
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, edx
call fcn.00428eb0
mov ecx, dword [esp + 0x28]
mov edi, eax
mov esi, edx
mov dword [esp + 0xd8], edi
mov dword [esp + 0xdc], esi
call fcn.00428eb0
mov ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
mov al, byte [eax]
mov byte [esp + 0x3b], al
cmp al, 0x66
jne 0x433adf
and edi, ecx
and esi, edx
jmp 0x433b82
cmp al, 0x67
jne 0x433aec
or edi, ecx
or esi, edx
jmp 0x433b82
mov eax, ecx
or eax, edx
je 0x433b82
test edx, edx
jg 0x433b1f
jl 0x433b00
test ecx, ecx
jae 0x433b1f
mov al, 0xd1
sub al, byte [esp + 0x3b]
cmp edx, 0xffffffff
jl 0x433b2e
jg 0x433b12
cmp ecx, 0xffffffc0
jbe 0x433b2e
neg ecx
mov dword [esp + 0x2c], ecx
adc edx, 0
neg edx
jmp 0x433b23
mov al, byte [esp + 0x3b]
test edx, edx
jl 0x433b5f
jg 0x433b2e
cmp ecx, 0x40
jb 0x433b5f
test esi, esi
jg 0x433b43
jl 0x433b38
test edi, edi
jae 0x433b43
cmp al, 0x68
je 0x433b43
or edi, 0xffffffff
or esi, edi
jmp 0x433b82
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
jmp 0x433b82
movq xmm1, qword [esp + 0xd8]
movd xmm0, ecx
cmp al, 0x68
jne 0x433bbe
psllq xmm1, xmm0
movq qword [esp + 0x70], xmm1
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
mov edx, 0xf244
mov ax, word [ecx + 0x10]
and ax, dx
mov dword [ecx], edi
mov edx, dword [esp + 0x10]
or ax, 4
mov edi, dword [esp + 0x18]
add edx, 0x14
mov dword [ecx + 4], esi
mov esi, dword [esp + 0x24]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
psrlq xmm1, xmm0
movq qword [esp + 0x70], xmm1
test esi, esi
jg 0x433b7a
jl 0x433bd2
test edi, edi
jae 0x433b7a
mov ecx, 0x40
or eax, 0xffffffff
sub ecx, dword [esp + 0x2c]
or edx, 0xffffffff
call fcn.0058a1d0
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x74]
or edi, eax
or esi, edx
jmp 0x433b82
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.00428fe0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
mov eax, dword [eax + 8]
cdq
add dword [esi], eax
mov eax, dword [esp + 0x20]
adc dword [esi + 4], edx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
movzx eax, word [esi + 0x10]
test al, 4
jne 0x433c86
test al, 0x28
jne 0x433c5b
test al, 2
je 0x433c66
mov edx, 1
mov ecx, esi
call fcn.00432850
jmp 0x433c62
mov ecx, esi
call fcn.00428f70
mov edx, dword [esp + 0x10]
movzx eax, word [esi + 0x10]
test al, 4
jne 0x433c86
cmp dword [edx + 8], 0
jne 0x4365dd
mov edx, 0x14
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov ecx, dword [esp + 0x88]
and eax, 0xf244
or eax, 4
add edx, 0x14
mov word [esi + 0x10], ax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
lea ecx, [esi + eax*8]
je 0x432f15
call fcn.00429050
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, 0x400
test word [esi + 0x10], ax
je 0x433d0a
mov ecx, esi
call fcn.00428bb0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov eax, dword [esp + 0x10]
mov ecx, esi
push dword [esp + 0x50]
mov dl, byte [eax + 8]
call fcn.00429210
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], 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 + 0x44], eax
and edi, eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], edi
test byte [esp + 0x2c], 4
je 0x433e4f
mov edi, dword [esp + 0x30]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x28], eax
mov esi, dword [edi + 4]
mov eax, dword [edi]
mov edi, dword [esp + 0x28]
cmp edi, esi
jl 0x433de7
jg 0x433da9
cmp ecx, eax
jbe 0x433ddd
cmp byte [edx + 0x5d41b8], 0
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
jne 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x60], 1
jmp 0x432c97
cmp edi, esi
jg 0x433e1b
jl 0x433de7
cmp ecx, eax
jae 0x433e1b
cmp byte [edx + 0x5d41ac], 0
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jne 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x60], 0xffffffff
jmp 0x432c97
cmp byte [edx + 0x5d41b2], 0
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
jne 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x60], 0
jmp 0x432c97
mov edx, dword [esp + 0x44]
mov eax, ecx
or eax, edx
test al, 1
je 0x433eb6
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, al
jns 0x433eaf
test byte [esp + 0x2c], 1
je 0x433e94
test ecx, 0x100
jne 0x433e94
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x60], 0
movzx eax, byte [eax]
mov al, byte [eax + 0x5d41b2]
jmp 0x433ff3
mov edi, dword [esp + 0x30]
test cl, 1
mov eax, 0
sete al
lea eax, [eax*2 - 1]
jmp 0x433fbe
test al, 0x10
jmp 0x433db0
mov edx, dword [esp + 0x10]
mov dl, byte [edx + 2]
and dl, 0x47
cmp dl, 0x43
jb 0x433f06
test al, 2
je 0x433f9f
mov al, byte [esp + 0x44]
mov edi, dword [esp + 0x30]
and al, 0x2e
cmp al, 2
jne 0x433eec
xor edx, edx
mov ecx, edi
call fcn.00432850
movzx ecx, word [esi + 0x10]
mov dword [esp + 0x48], ecx
mov al, cl
and al, 0x2e
cmp al, 2
jne 0x433fa3
xor edx, edx
mov ecx, esi
call fcn.00432850
jmp 0x433fa3
cmp dl, 0x42
jne 0x433f9f
test al, 2
je 0x433f9f
mov eax, dword [esp + 0x44]
test al, 2
jne 0x433f67
test al, 0x2c
je 0x433f67
mov edi, dword [esp + 0x30]
mov ecx, edi
mov dl, byte [esp + 0x50]
push 1
call fcn.00428c10
mov ax, word [edi + 0x10]
mov ecx, 0xdbf
xor ax, word [esp + 0x48]
add esp, 4
and ax, cx
xor ax, word [edi + 0x10]
movzx eax, ax
mov dword [esp + 0x44], eax
cmp edi, esi
jne 0x433f63
or eax, 2
movzx ecx, ax
mov dword [esp + 0x48], ecx
jmp 0x433f67
mov ecx, dword [esp + 0x48]
test cl, 2
jne 0x433f9f
test cl, 0x2c
je 0x433f9f
mov dl, byte [esp + 0x50]
mov ecx, esi
push 1
call fcn.00428c10
mov ecx, dword [esp + 0x4c]
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 + 0x48], ecx
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov edx, edi
mov ecx, esi
push dword [eax + 0x10]
call fcn.0042e1e0
mov ecx, dword [esp + 0x4c]
add esp, 4
mov edx, dword [esp + 0x44]
mov dword [esp + 0x60], eax
test eax, eax
jns 0x433fd5
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov al, byte [eax + 0x5d41ac]
jmp 0x433ff3
jne 0x433fe6
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov al, byte [eax + 0x5d41b2]
jmp 0x433ff3
mov eax, dword [esp + 0x10]
movzx eax, byte [eax]
mov al, byte [eax + 0x5d41b8]
mov word [esi + 0x10], cx
mov word [edi + 0x10], dx
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
test al, al
jne 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
cmp dword [esp + 0x60], 0
mov edx, dword [esp + 0x10]
je 0x4365dd
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
mov edx, dword [esp + 0x10]
test byte [edx + 2], 1
jne 0x43404e
xor eax, eax
jmp 0x434054
mov eax, dword [edx - 4]
add eax, 4
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 0x10]
mov esi, dword [esi + 4]
mov dword [esp + 0x40], esi
mov esi, dword [edi + 8]
mov dword [esp + 0x5c], esi
xor esi, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], edx
test ecx, ecx
jle 0x4331ee
lea ecx, [edx + 0x14]
mov dword [esp + 0x2c], ecx
nop dword [eax]
test eax, eax
je 0x434099
mov edi, dword [eax + esi*4]
jmp 0x43409b
mov edi, esi
mov eax, dword [edx + 0x10]
push dword [ecx]
mov ecx, dword [esp + 0x28]
movzx eax, byte [esi + eax]
and eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
add eax, edi
lea eax, [eax + eax*4]
lea edx, [ecx + eax*8]
mov eax, dword [esp + 0x44]
add eax, edi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.0042e1e0
mov ecx, eax
add esp, 4
mov dword [esp + 0x60], ecx
test ecx, ecx
jne 0x434112
mov ecx, dword [esp + 0x2c]
inc esi
mov eax, dword [esp + 0x3c]
add ecx, 4
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x2c], ecx
cmp esi, dword [esp + 0x28]
jl 0x434090
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
test byte [esi + eax], 2
mov esi, dword [esp + 0x24]
je 0x434149
mov eax, dword [esp + 0x40]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x434143
mov eax, dword [esp + 0x5c]
add eax, edi
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x434149
neg ecx
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x34], 0
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
je 0x432e07
mov eax, dword [esp + 0x20]
neg ecx
mov dword [esp + 0x60], ecx
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x10]
test eax, eax
jns 0x4341a4
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 + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
jne 0x4341c9
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 + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
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 + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x434239
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x434268
xor esi, esi
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x43426f
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x43429e
xor eax, eax
cmp byte [edx], 0x2c
lea eax, [eax + esi*2]
jne 0x4342a5
mov al, byte [esi + eax + 0x5d6e18]
jmp 0x4342ac
test al, 1
je 0x434244
mov esi, 2
jmp 0x43420a
test al, 8
je 0x43424e
movsd xmm0, qword [ecx]
jmp 0x43425b
test al, 0x12
je 0x434208
call fcn.00428f00
mov edx, dword [esp + 0x10]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x434208
mov esi, 1
jmp 0x43420a
test al, 1
je 0x43427a
mov eax, 2
jmp 0x434228
test al, 8
je 0x434284
movsd xmm0, qword [ecx]
jmp 0x434291
test al, 0x12
je 0x434226
call fcn.00428f00
mov edx, dword [esp + 0x10]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x434226
mov eax, 1
jmp 0x434228
mov al, byte [esi + eax + 0x5d7b98]
mov esi, dword [esp + 0x24]
movzx edx, al
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea ecx, [eax + eax*4]
mov ax, word [esi + ecx*8 + 0x10]
cmp edx, 2
jne 0x4342ef
mov edx, 0xf241
and ax, dx
mov edx, dword [esp + 0x10]
or ax, 1
add edx, 0x14
mov word [esi + ecx*8 + 0x10], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov dword [esi + ecx*8], edx
mov edx, 0xf244
and ax, dx
mov dword [esi + ecx*8 + 4], 0
mov edx, dword [esp + 0x10]
or ax, 4
mov word [esi + ecx*8 + 0x10], ax
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
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 0x43435b
mov eax, dword [edx]
or eax, dword [edx + 4]
jne 0x434381
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
xor eax, ecx
cdq
push edx
push eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
jmp 0x4334f4
test al, 1
jne 0x434343
test al, 8
je 0x434369
movsd xmm0, qword [edx]
jmp 0x434374
test al, 0x12
je 0x434341
mov ecx, edx
call fcn.00428f00
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x434341
mov ecx, 1
jmp 0x434343
mov edx, dword [esp + 0x10]
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 0x433a7e
test al, 0x24
je 0x4343e2
mov eax, dword [ecx]
or eax, dword [ecx + 4]
jne 0x434402
xor eax, eax
xor eax, 1
mov ecx, esi
cdq
push edx
push eax
call fcn.004293e0
mov edx, dword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
test al, 8
je 0x4343ec
movsd xmm0, qword [ecx]
jmp 0x4343f5
test al, 0x12
je 0x4343b5
call fcn.00428f00
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x4343b5
mov eax, 1
jmp 0x4343b7
mov ecx, dword [esp + 0x10]
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.00429330
test byte [edi + 0x10], 1
jne 0x4331ee
mov eax, 4
mov ecx, edi
mov word [esi + 0x10], ax
call fcn.00428eb0
mov edi, dword [esp + 0x18]
not edx
mov ecx, dword [esp + 0x88]
not eax
mov dword [esi + 4], edx
mov edx, dword [esp + 0x10]
mov dword [esi], eax
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edi, dword [edi + 0xd0]
test edi, edi
je 0x4344da
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
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 0x4365d5
bts edx, ecx
mov ecx, dword [esp + 0x88]
mov byte [esi + edi], dl
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x68]
mov eax, dword [eax + 4]
cmp eax, dword [edx + 4]
je 0x4365dd
mov eax, dword [edi + 0x68]
mov ecx, dword [esp + 0x88]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
movzx eax, word [ecx + 0x10]
test al, 0x24
je 0x434544
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edx, dword [esp + 0x10]
jne 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
test al, 1
jne 0x434587
test al, 8
je 0x434552
movsd xmm0, qword [ecx]
jmp 0x43455f
test al, 0x12
je 0x432f15
call fcn.00428f00
mov edx, dword [esp + 0x10]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
cmp dword [edx + 0xc], 0
jne 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x4345fb
mov eax, dword [ecx]
or eax, dword [ecx + 4]
mov edx, dword [esp + 0x10]
jne 0x432e0b
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
test al, 1
jne 0x434652
test al, 8
je 0x434609
movsd xmm0, qword [ecx]
jmp 0x434616
test al, 0x12
je 0x4365d9
call fcn.00428f00
mov edx, dword [esp + 0x10]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x432e0b
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
test edx, edx
mov edx, dword [esp + 0x10]
je 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
test ecx, ecx
js 0x4346e7
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0xc]
movzx eax, word [ecx + 0x3e]
cmp edx, eax
jge 0x4346de
mov eax, dword [ecx + edx*4 + 0x58]
cmp eax, 0xc
jb 0x4346d5
test al, 1
mov eax, 0
sete al
lea eax, [eax*4 + 4]
jmp 0x434709
movzx eax, byte [eax + 0x5d3a9c]
jmp 0x43470c
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x10]
jmp 0x434700
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
movzx eax, word [esi + eax*8 + 0x10]
and eax, 0x3f
movzx ecx, byte [eax + 0x5d6ed0]
dec ecx
mov eax, 1
shl ax, cl
movzx eax, ax
mov edx, dword [esp + 0x10]
test word [edx + 2], ax
jne 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x434757
mov eax, dword [ecx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
jne 0x434757
mov eax, dword [ecx + 8]
push 0
push 0
jmp 0x4334f4
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.00429330
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 1
je 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x432f15
cmp byte [eax + 2], 0
je 0x432f15
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.00429330
jmp 0x4365d9
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x48], ecx
nop
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x40], edx
cmp eax, dword [edi + 0x1c]
je 0x434851
cmp byte [esi + 2], 0
jne 0x4348b0
cmp byte [esi + 3], 0
mov edi, dword [esi + 0x2c]
je 0x43482d
mov eax, dword [esi + 0x10]
test eax, eax
je 0x43487b
mov eax, dword [eax + ecx*4 + 4]
test eax, eax
je 0x43487b
mov esi, dword [esi + 0x28]
lea ecx, [eax - 1]
mov edi, dword [esp + 0x18]
jmp 0x4347ea
cmp byte [edi], 0
je 0x434890
mov ecx, esi
call fcn.0042d9d0
mov edi, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov ecx, dword [esp + 0x48]
jmp 0x4347f0
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x434951
mov ecx, esi
call fcn.0042d9d0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov ecx, dword [esp + 0x48]
jmp 0x4347f0
mov ecx, esi
call fcn.0042d960
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov ecx, edi
call fcn.0041fde0
mov eax, dword [edi + 0x2c]
lea edx, [esi + 0x54]
mov ecx, edi
mov dword [esi + 0x50], eax
call fcn.00420430
mov edx, dword [esp + 0x40]
lea edi, [esi + 0x54]
jmp 0x4348df
cmp byte [esi], 3
jne 0x434a27
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x434a27
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x24]
lea edi, [esi + 0x54]
mov eax, dword [eax + ecx*8 + 0xc]
mov dword [edi], eax
mov dword [esi + 0x50], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx*8 + 8]
mov dword [esi + 0x4c], eax
mov eax, dword [esp + 0x18]
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 0x434904
mov dword [esi + 0x34], 1
jmp 0x434916
mov ecx, dword [esi + 0x4c]
call fcn.0040ad20
mov edx, dword [esp + 0x40]
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 0x434a22
mov dword [esi + 0x4c], 0
mov dword [edi], 0
mov eax, dword [edx]
cmp eax, 0x18003
ja 0x434b79
cmp eax, dword [esi + 0x50]
ja 0x434b79
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
movzx eax, word [esi + 0x3e]
cmp eax, ecx
ja 0x434b9e
mov eax, dword [esi + 0x34]
cmp eax, dword [edx]
jae 0x434b93
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4349c1
xorps xmm0, xmm0
lea eax, [esp + 0x210]
movaps xmmword [esp + 0x210], xmm0
movaps xmmword [esp + 0x220], xmm0
movq qword [esp + 0x230], xmm0
mov edx, dword [edx]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.00429a50
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov eax, dword [esp + 0x218]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
movzx ecx, word [esi + 0x3e]
mov edi, dword [esi + 0x34]
add edi, dword [esp + 0x4c]
mov dword [esp + 0x34], ecx
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov eax, dword [edx]
add eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
lea eax, [ecx + 0x16]
lea eax, [esi + eax*4]
mov dword [esp + 0x2c], eax
movzx ecx, byte [edi]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x58], ecx
mov dword [eax], ecx
cmp ecx, 0x80
jae 0x434a54
movzx eax, cl
mov ecx, dword [esp + 0x3c]
movzx eax, byte [eax + 0x5d3bc8]
cdq
add ecx, eax
adc dword [esp + 0x44], edx
mov edx, 1
jmp 0x434a82
mov eax, dword [esi + 0x4c]
jmp 0x4349bd
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.00429330
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
lea edx, [esp + 0x58]
mov ecx, edi
call fcn.0040ad20
mov ecx, dword [esp + 0x2c]
movzx edx, al
mov eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
mov dword [ecx], eax
mov ecx, eax
call fcn.0042da10
mov ecx, dword [esp + 0x3c]
add ecx, eax
adc dword [esp + 0x44], 0
mov eax, dword [esp + 0x40]
add edi, edx
mov edx, dword [esp + 0x34]
add dword [esp + 0x2c], 4
inc edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], edx
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x2c]
cmp edx, dword [esp + 0x48]
ja 0x434ab7
cmp edi, dword [esp + 0x5c]
jb 0x4349f1
mov eax, dword [esp + 0x5c]
jmp 0x434abf
mov eax, dword [esp + 0x5c]
cmp edi, eax
jb 0x434ad2
cmp edi, eax
ja 0x434ae5
cmp ecx, dword [esi + 0x50]
jne 0x434ae5
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x434ae1
jmp 0x434ad6
mov eax, dword [esp + 0x44]
test eax, eax
jb 0x434af2
ja 0x434ae1
cmp ecx, dword [esi + 0x50]
jbe 0x434af2
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x40]
cmp dword [ecx], 0
jne 0x434b67
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 0x434b0f
lea ecx, [esp + 0x210]
call fcn.00428e00
mov ecx, dword [esp + 0x30]
movzx eax, word [esi + 0x3e]
cmp eax, dword [esp + 0x48]
ja 0x434ba6
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
cmp byte [edx + 1], 0xf6
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
jne 0x433a11
mov edx, dword [edx + 0x10]
push 0x2000
call fcn.004295e0
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, dword [esp + 0x18]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
cmp dword [esi + 0x4c], 0
jne 0x434b79
lea ecx, [esp + 0x210]
call fcn.00428e00
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x439e85
lea eax, [eax + eax*4]
lea eax, [eax - 5]
jmp 0x432e00
xor ecx, ecx
mov dword [esp + 0x30], ecx
jmp 0x434b13
mov ecx, dword [esi + ecx*4 + 0x58]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [edx + eax*8]
mov eax, 0x9000
test word [edi + 0x10], ax
je 0x434bcd
mov ecx, edi
call fcn.00429330
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
lea edx, [eax + edx*4]
mov eax, dword [esi + 0x54]
cmp eax, dword [edx + 4]
jb 0x434cdd
mov eax, dword [esi + 0x4c]
add eax, dword [edx]
mov dword [esp + 0x28], eax
cmp ecx, 0xc
jae 0x434c1e
mov edx, ecx
mov ecx, eax
push edi
call fcn.0042db10
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
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 0x434c86
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 0x78]
jg 0x439ffd
mov eax, 1
mov ecx, edi
push 0
mov word [edi + 0x10], ax
call fcn.00428970
add esp, 4
test eax, eax
je 0x434c8c
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, eax
call fcn.004060e0
push 0x5cbbb8
push edi
call fcn.0042a1a0
mov edx, 7
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov eax, dword [edi + 0x20]
mov dword [edi + 8], eax
push esi
push dword [esp + 0x2c]
push dword [edi + 8]
call fcn.00562cb0
mov eax, dword [edi + 8]
add esp, 0xc
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x88]
and edx, 1
mov byte [esi + eax], 0
mov eax, dword [edi + 8]
mov byte [esi + eax + 1], 0
mov ax, word [edx*2 + 0x5d22fc]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov al, byte [esp + 0x50]
mov byte [edi + 0x12], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
test al, 0xc0
je 0x434cfe
cmp ecx, 0xc
jb 0x434cfa
test cl, 1
je 0x434d07
test al, al
js 0x434d07
call fcn.0042da10
test eax, eax
jne 0x434d36
mov edx, ecx
mov ecx, 0x5d3558
push edi
call fcn.0042db10
mov edx, dword [esp + 0x14]
add esp, 4
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x14]
cmp eax, dword [ecx + 0x78]
jg 0x439ffd
mov edx, dword [edx]
mov ecx, dword [esi + 0x2c]
push edi
push eax
call fcn.00429960
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 8]
push edi
call fcn.0042db10
mov eax, 0xbfff
add esp, 4
and word [edi + 0x10], ax
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x10]
xor ecx, ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
lea eax, [eax + eax*4]
mov edi, dword [edx + 4]
lea esi, [esi + eax*8]
xor eax, eax
mov dword [esp + 0x58], edi
cmp ax, word [edx + 0x22]
jge 0x4331ee
add edi, 0xe
movzx eax, word [edi]
test al, 0x60
je 0x434de5
test al, 0x20
jne 0x434e95
mov eax, dword [esp + 0x10]
cmp dword [eax + 0xc], 0
jne 0x434e92
push dword [esp + 0x50]
mov dl, byte [edi - 6]
mov ecx, esi
call fcn.004328e0
movzx ecx, word [esi + 0x10]
add esp, 4
mov dword [esp + 0x34], ecx
test cl, 1
jne case.default.0x434e18
mov eax, dword [edi - 0xa]
shr eax, 4
and eax, 0xf
add eax, 0xfffffffe
cmp eax, 4
ja case.default.0x434e18
jmp dword [eax*4 + 0x43a8b8]
test cl, 0x10
jmp 0x434e84
test cl, 4
jmp 0x434e84
test cl, 2
jmp 0x434e84
test cl, 4
je 0x434e81
mov edx, dword [esi + 4]
mov eax, dword [esi]
cmp edx, 0x7fff
jg 0x434e64
jl 0x434e47
cmp eax, 0xffffffff
ja 0x434e64
cmp edx, 0xffff8000
jl 0x434e64
jg 0x434e55
test eax, eax
jb 0x434e64
and ecx, 0xfffb
or ecx, 0x20
mov word [esi + 0x10], cx
jmp case.default.0x434e18
mov ecx, eax
call fcn.0058a690
mov eax, dword [esp + 0x34]
and eax, 0xfffb
movsd qword [esi], xmm0
or eax, 8
mov word [esi + 0x10], ax
jmp case.default.0x434e18
test cl, 0x28
je 0x439e96
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add esi, 0x28
movsx eax, word [edx + 0x22]
inc ecx
add edi, 0x10
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jl 0x434dc8
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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.004328e0
add esp, 4
cmp byte [edi], 0x45
jne 0x434f3e
movzx eax, word [esi + 0x10]
mov dword [esp + 0x28], eax
test al, 4
je 0x434f3e
mov edx, dword [esi + 4]
mov ecx, dword [esi]
cmp edx, 0x7fff
jg 0x434f25
jl 0x434f0d
cmp ecx, 0xffffffff
ja 0x434f25
cmp edx, 0xffff8000
jl 0x434f25
jg 0x434f1b
test ecx, ecx
jb 0x434f25
and eax, 0xfffb
or eax, 0x20
jmp 0x434f3a
call fcn.0058a690
mov eax, dword [esp + 0x28]
and eax, 0xfff9
movsd qword [esi], xmm0
or eax, 8
mov word [esi + 0x10], ax
inc edi
cmp byte [edi], 0
je 0x4331ee
add esi, 0x28
jmp 0x434ed8
mov edx, dword [esp + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov dword [esp + 0x44], 0
movlpd qword [esp + 0xb0], 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 + 0x58], ecx
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*8]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x3c], eax
test edi, edi
je 0x434fd3
lea esi, [ecx + 0x10]
push dword [esp + 0x50]
mov dl, byte [edi]
lea ecx, [esi - 0x10]
call fcn.004328e0
add esp, 4
cmp byte [edi], 0x45
jne 0x434fca
movzx eax, word [esi]
test al, 4
je 0x434fca
and eax, 0xfffb
or eax, 0x20
mov word [esi], ax
inc edi
add esi, 0x28
cmp byte [edi], 0
jne 0x434fa2
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x84]
add esi, 0x1c
mov edx, dword [esp + 0x80]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x30], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
nop word [eax + eax]
movzx ecx, word [esi - 0xc]
mov dword [esp + 0x34], ecx
test cl, 1
je 0x435036
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xa
mov dword [esi], ecx
mov ecx, dword [esp + 0x44]
inc ecx
jmp 0x4352b2
test cl, 0x24
je 0x4351e6
cmp dword [esi - 0x18], 0
mov eax, dword [esi - 0x1c]
jg 0x435059
jl 0x43504e
test eax, eax
jae 0x435059
mov edx, eax
mov eax, dword [esi - 0x18]
not edx
not eax
jmp 0x43505e
mov edx, eax
mov eax, dword [esi - 0x18]
inc dword [esp + 0x44]
test eax, eax
ja 0x43515e
jb 0x435071
cmp edx, 0x7f
ja 0x4350cd
mov eax, dword [esi - 0x1c]
and eax, 1
mov dword [esp + 0x34], 0
cmp eax, dword [esi - 0x1c]
jne 0x4350ac
mov eax, dword [esp + 0x34]
cmp eax, dword [esi - 0x18]
jne 0x4350ac
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x93], 4
jb 0x4350ac
mov ecx, dword [esp + 0x44]
lea eax, [edx + 8]
mov edx, dword [esp + 0x48]
mov dword [esi], eax
jmp 0x4352b6
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
add edx, 1
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esi], 1
mov dword [esp + 0x30], edi
jmp 0x4352b6
test eax, eax
ja 0x43515e
jb 0x4350df
cmp edx, 0x7fff
ja 0x435100
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
add edx, 2
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esi], 2
mov dword [esp + 0x30], edi
jmp 0x4352b6
test eax, eax
ja 0x43515e
jb 0x43510e
cmp edx, 0x7fffff
ja 0x43512f
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
add edx, 3
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esi], 3
mov dword [esp + 0x30], edi
jmp 0x4352b6
test eax, eax
ja 0x43515e
jb 0x43513d
cmp edx, 0x7fffffff
ja 0x43515e
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
add edx, 4
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esi], 4
mov dword [esp + 0x30], edi
jmp 0x4352b6
cmp eax, 0x7fff
ja 0x43518d
jb 0x43516c
cmp edx, 0xffffffff
ja 0x43518d
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
add edx, 6
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esi], 5
mov dword [esp + 0x30], edi
jmp 0x4352b6
mov edx, dword [esp + 0x48]
add edx, 8
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esp + 0x30], edi
test cl, 0x20
je 0x4351d7
mov edx, dword [esi - 0x18]
mov ecx, dword [esi - 0x1c]
call fcn.0058a690
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
and eax, 0xffdf
mov ecx, dword [esp + 0x44]
or eax, 8
movsd qword [esi - 0x1c], xmm0
mov word [esi - 0xc], ax
mov dword [esi], 7
jmp 0x4352b6
mov ecx, dword [esp + 0x44]
mov dword [esi], 6
jmp 0x4352b6
test cl, 8
je 0x435209
mov ecx, dword [esp + 0x44]
inc ecx
mov dword [esi], 7
add edx, 8
mov dword [esp + 0x48], edx
adc edi, 0
mov dword [esp + 0x30], edi
jmp 0x4352b2
mov edx, dword [esi - 0x10]
mov eax, ecx
shr eax, 1
and eax, 1
mov dword [esp + 0x34], edx
lea eax, [eax + edx*2]
add eax, 0xc
mov dword [esp + 0x2c], eax
test ecx, 0x400
je 0x43526d
mov ecx, dword [esi - 0x1c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
or eax, dword [esp + 0x30]
je 0x435256
lea ecx, [esi - 0x1c]
call fcn.00428bb0
test eax, eax
jne 0x434c5b
mov edx, dword [esp + 0x34]
add edx, dword [esi - 0x1c]
jmp 0x435265
mov eax, ecx
cdq
add dword [esp + 0x4c], eax
adc dword [esp + 0x40], edx
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
add dword [esp + 0x48], edx
mov edx, eax
adc edi, 0
shr edx, 7
xor ecx, ecx
mov dword [esp + 0x30], edi
mov eax, edx
mov edi, 1
or eax, ecx
je 0x43529e
nop word [eax + eax]
shrd edx, ecx, 7
inc edi
shr ecx, 7
mov eax, edx
or eax, ecx
jne 0x435290
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
add ecx, edi
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
mov dword [esi], eax
mov dword [esp + 0x44], ecx
lea eax, [esi - 0x1c]
cmp eax, dword [esp + 0x58]
je 0x4352c7
sub esi, 0x28
jmp 0x435010
cmp ecx, 0x7e
jle 0x435354
mov eax, ecx
mov dword [esp + 0x2c], 1
cdq
mov esi, eax
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x435306
mov edi, dword [esp + 0x2c]
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x4352f0
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
cdq
mov esi, eax
mov dword [esp + 0x5c], 1
shrd esi, edx, 7
shr edx, 7
mov ecx, esi
or ecx, edx
je 0x435346
mov edi, dword [esp + 0x5c]
nop
shrd esi, edx, 7
inc edi
shr edx, 7
mov eax, esi
or eax, edx
jne 0x435330
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
cmp eax, dword [esp + 0x5c]
jge 0x435359
inc ecx
mov dword [esp + 0x44], ecx
mov esi, dword [esp + 0x48]
mov eax, ecx
cdq
mov ecx, eax
mov eax, edx
add esi, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ecx
mov ecx, esi
adc edi, eax
mov eax, dword [esp + 0x3c]
add ecx, dword [esp + 0x4c]
adc edi, dword [esp + 0x40]
mov eax, dword [eax + 0x18]
cdq
cmp edi, edx
jg 0x435398
jl 0x43538c
cmp ecx, eax
ja 0x435398
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x20]
mov dword [edx + 8], eax
jmp 0x4353c9
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x78]
cdq
cmp edi, edx
jg 0x439ffd
jl 0x4353b2
cmp ecx, eax
ja 0x439ffd
mov ecx, dword [esp + 0x3c]
mov edx, esi
call fcn.00428af0
test eax, eax
jne 0x434c5b
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
mov eax, 0x10
mov word [edx + 0x10], ax
mov eax, ecx
or eax, dword [esp + 0x40]
mov dword [edx + 0xc], esi
je 0x4353ec
mov eax, 0x410
mov dword [edx], ecx
mov word [edx + 0x10], ax
mov ecx, dword [edx + 8]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], ecx
lea edi, [ecx + eax]
cmp eax, 0x80
jge 0x435406
mov byte [ecx], al
inc ecx
jmp 0x43541c
push dword [esp + 0x34]
push dword [esp + 0x30]
call fcn.0040ab10
mov ecx, dword [esp + 0x38]
add esp, 8
add ecx, eax
mov esi, dword [esp + 0x58]
mov dword [esp + 0x30], ecx
add esi, 0xc
mov edx, dword [esi + 0x10]
cmp edx, 7
ja 0x435475
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x30], ecx
test edx, edx
je 0x4354bf
movzx edx, byte [edx + 0x5d3bc8]
mov ecx, dword [esi - 0xc]
mov eax, dword [esi - 8]
mov dword [esp + 0x34], edx
sub edx, 1
mov byte [edx + edi], cl
je 0x43546f
nop word [eax + eax]
shrd ecx, eax, 8
shr eax, 8
sub edx, 1
mov byte [edx + edi], cl
jne 0x435460
add edi, dword [esp + 0x34]
jmp 0x4354bb
cmp edx, 0x80
jae 0x435491
mov byte [ecx], dl
inc ecx
mov dword [esp + 0x30], ecx
cmp edx, 0xe
jb 0x4354bf
mov eax, dword [esi]
test eax, eax
jle 0x4354bf
jmp 0x4354ac
push 0
push edx
call fcn.0040ab10
mov ecx, dword [esp + 0x38]
add esp, 8
add ecx, eax
mov eax, dword [esi]
mov dword [esp + 0x30], ecx
test eax, eax
je 0x4354bf
push eax
push dword [esi - 4]
push edi
call fcn.00562cb0
add esp, 0xc
add edi, dword [esi]
mov ecx, dword [esp + 0x30]
lea eax, [esi - 0xc]
cmp eax, dword [esp + 0x28]
je 0x4331ee
add esi, 0x28
jmp 0x435427
mov ecx, dword [esp + 0x10]
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 + 0x10]
cmp dword [eax + 0xc], 0
je 0x4354fb
mov ecx, edx
call fcn.00420f30
mov esi, eax
mov edi, edx
jmp 0x435537
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0xb0]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xb4], xmm0
call fcn.00426500
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edi, dword [esp + 0xb4]
mov esi, dword [esp + 0xb0]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x58]
lea eax, [eax + ecx*8]
mov ecx, 0x9000
test word [eax + 0x10], cx
je 0x43556b
mov ecx, eax
call fcn.00432a80
mov dword [eax + 4], edi
mov edi, dword [esp + 0x18]
mov dword [eax], esi
jmp 0x43964a
mov ecx, 4
mov word [eax + 0x10], cx
mov dword [eax + 4], edi
mov edi, dword [esp + 0x18]
mov dword [eax], esi
jmp 0x43964a
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
mov eax, dword [edx + 0x10]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
jne 0x435664
cmp dword [ecx + 0xc4], 0
jg 0x439ef0
mov ecx, eax
call fcn.00409890
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.0047fa00
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x21]
push edx
push eax
call fcn.00405d00
mov esi, eax
add esp, 8
test esi, esi
je 0x4358eb
lea ecx, [edi + 1]
push ecx
push dword [esp + 0x30]
lea edx, [esi + 0x20]
push edx
mov dword [esi], edx
call fcn.00562cb0
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp byte [edx + 0x55], 0
je 0x435626
mov byte [edx + 0x55], 0
mov byte [edx + 0x5d], 1
jmp 0x43562c
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 0x4358eb
mov esi, dword [ecx + 0x1ec]
xor edi, edi
test esi, esi
je 0x439f64
mov ecx, dword [esi]
mov edx, eax
call fcn.00409d40
test eax, eax
je 0x43568b
mov esi, dword [esi + 0x18]
inc edi
mov eax, dword [esp + 0x2c]
jmp 0x43566c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x40]
cmp dword [ecx + 0xc4], 0
jle 0x4356a5
cmp edx, 1
je 0x439f0c
cmp dword [esi + 0x18], 0
jne 0x435712
cmp byte [ecx + 0x5d], 0
je 0x435712
mov dword [esp + 0x3c], 1
cmp edx, 1
jne 0x43571a
mov ecx, dword [esp + 0x18]
call fcn.0042d0a0
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43a518
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x55], 1
call fcn.0042d110
cmp eax, 5
je 0x439f17
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x1c], edx
test edx, edx
je 0x435709
mov byte [ecx + 0x55], 0
jmp 0x435822
mov byte [ecx + 0x5d], 0
jmp 0x43582a
mov dword [esp + 0x3c], 0
mov eax, dword [ecx + 0x1f8]
sub eax, edi
dec eax
mov dword [esp + 0x2c], eax
cmp edx, 2
jne 0x43579d
mov edi, dword [esp + 0x14]
mov ecx, dword [ecx + 0x18]
and ecx, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x34], ecx
cmp dword [edi + 0x14], 0
jle 0x4357a7
mov eax, ecx
mov ecx, dword [esp + 0x14]
xor eax, 1
xor edi, edi
mov dword [esp + 0x58], eax
mov ecx, dword [ecx + 0x10]
mov edx, 0x204
push eax
mov ecx, dword [ecx + edi + 4]
call fcn.0041f920
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov eax, dword [esp + 0x28]
add edi, 0x10
mov ecx, dword [esp + 0x14]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [esp + 0x58]
jl 0x435757
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
jmp 0x4357a9
mov dword [esp + 0x34], 0
jmp 0x4357a9
mov ecx, edi
cmp dword [ecx + 0x14], 0
mov dword [esp + 0x28], 0
jle 0x4357fb
xor edi, edi
nop dword [eax]
mov ecx, dword [ecx + 0x10]
push eax
mov ecx, dword [ecx + edi + 4]
call fcn.0041fb70
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov eax, dword [esp + 0x28]
add edi, 0x10
mov ecx, dword [esp + 0x14]
inc eax
mov edx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
cmp eax, dword [ecx + 0x14]
mov eax, dword [esp + 0x2c]
jl 0x4357c0
cmp dword [esp + 0x34], 0
je 0x43581a
xor edx, edx
call fcn.0042f140
mov ecx, dword [esp + 0x14]
call fcn.00451400
mov ecx, dword [esp + 0x14]
or dword [ecx + 0x18], 1
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
test edx, edx
jne 0x436ced
cmp dword [ecx + 0x1ec], esi
je 0x435866
nop dword [eax]
nop word [eax + eax]
mov edx, dword [ecx + 0x1ec]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.004059a0
mov ecx, dword [esp + 0x14]
dec dword [ecx + 0x1f8]
cmp dword [ecx + 0x1ec], esi
jne 0x435840
mov ecx, dword [esp + 0x40]
cmp ecx, 1
jne 0x43589a
mov ecx, dword [esp + 0x14]
mov edx, esi
mov eax, dword [esi + 0x18]
mov dword [ecx + 0x1ec], eax
call fcn.004059a0
cmp dword [esp + 0x3c], 0
jne 0x4358eb
mov ecx, dword [esp + 0x14]
dec dword [ecx + 0x1f8]
mov ecx, dword [esp + 0x40]
jmp 0x4358ce
cmp dword [esp + 0x3c], 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 0x4358ce
cmp ecx, 2
jne 0x4358eb
mov edx, ecx
mov ecx, dword [esp + 0x14]
push edi
call fcn.0047fa00
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov edi, dword [esp + 0x18]
cmp byte [edi + 0x95], 3
je 0x439f53
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], 0
mov edx, dword [ecx + 8]
test edx, edx
je 0x435949
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 0x439f85
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edi, dword [ecx + 4]
shl edi, 4
add edi, dword [eax + 0x10]
mov dword [esp + 0x34], edi
mov esi, dword [edi + 4]
test esi, esi
je 0x435a77
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
call fcn.0041e8e0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x439fb6
mov edx, dword [esp + 0x18]
test byte [edx + 0x98], 0x20
je 0x435a83
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], 0
je 0x435a83
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x55], 0
je 0x4359b8
cmp dword [ecx + 0xc0], 1
jle 0x435a83
cmp dword [edx + 0x30], 0
jne 0x4359d3
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.0047fa00
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x435a4b
cmp byte [esi + 9], 0
mov eax, dword [esp + 0x18]
mov edi, dword [eax + 0x30]
mov eax, dword [esi + 4]
mov dword [esp + 0x28], eax
je 0x435a12
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x435a12
mov ecx, esi
call fcn.0041b710
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
cmp edi, dword [ecx + 0x68]
jle 0x435a2c
cmp byte [ecx + 6], 0
je 0x435a2c
mov edx, edi
call fcn.00417b50
mov dword [esp + 0x1c], eax
jmp 0x435a34
mov dword [esp + 0x1c], 0
cmp byte [esi + 9], 0
je 0x435a47
add dword [esi + 0xc], 0xffffffff
jne 0x435a47
mov ecx, esi
call fcn.0041b6a0
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
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 + 0x1c]
test edx, edx
jne 0x436ced
mov edx, dword [esp + 0x10]
cmp word [edx + 2], 0
je 0x432e03
mov eax, dword [esp + 0x3c]
cmp eax, dword [edx + 0xc]
jne 0x435aaa
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 4]
cmp eax, dword [edx + 0x10]
je 0x432e03
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x7c]
test edx, edx
je 0x435abe
mov ecx, dword [esp + 0x14]
call fcn.004059a0
mov ecx, dword [esp + 0x14]
mov edx, str.database_schema_has_changed
call fcn.00405f20
mov dword [edi + 0x7c], eax
mov eax, dword [esp + 0x10]
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 + 0x3c]
je 0x435af6
mov ecx, dword [esp + 0x14]
call fcn.004513a0
mov eax, dword [edi + 0x98]
mov edx, 0x11
and eax, 0xffffffed
mov dword [esp + 0x1c], edx
or eax, 1
mov dword [edi + 0x98], eax
jmp 0x436cf1
mov ecx, dword [esp + 0x10]
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 + 0x28], eax
je 0x435b4e
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x435b4e
mov ecx, esi
call fcn.0041b710
mov eax, dword [esp + 0x28]
cmp edi, 0xf
jne 0x435b5d
mov eax, dword [eax]
mov edi, dword [esi + 0x14]
add edi, dword [eax + 0x6c]
jmp 0x435b69
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 0x435b7c
add dword [esi + 0xc], 0xffffffff
jne 0x435b7c
mov ecx, esi
call fcn.0041b6a0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x58]
lea ecx, [eax + ecx*8]
mov eax, 0x9000
test word [ecx + 0x10], ax
je 0x435bc9
call fcn.00432a80
mov esi, dword [esp + 0x24]
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x18]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov esi, dword [esp + 0x24]
mov eax, 4
mov word [ecx + 0x10], ax
mov eax, edi
mov edi, dword [esp + 0x18]
cdq
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
mov dword [ecx], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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.00426430
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 8]
cmp eax, 1
jne 0x435c51
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.0045eae0
mov edx, dword [esp + 0x10]
jmp 0x435c5f
cmp eax, 2
jne 0x435c5f
mov ecx, dword [esi + 0xc]
mov al, byte [edx + 0xc]
mov byte [ecx + 0x4c], al
cmp dword [edx + 4], 1
jne 0x439789
mov ecx, dword [esp + 0x14]
xor edx, edx
call fcn.0042f140
jmp 0x439782
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
je 0x435cb4
mov eax, dword [ecx + 0x38]
cmp eax, dword [edx + 8]
jne 0x435cb4
lea esi, [ecx + 0x2c]
mov ecx, dword [esi]
call fcn.0041bc10
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov cl, byte [eax + 2]
mov eax, dword [esi]
and cl, 3
mov byte [eax + 3], cl
jmp 0x43978d
mov cl, byte [esp + 0x3b]
jmp 0x435cbe
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x98]
mov esi, dword [esp + 0x14]
and al, 3
cmp al, 1
je 0x439fef
mov eax, dword [esp + 0x10]
mov edx, dword [edx + 8]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov eax, dword [eax + 0xc]
mov dword [esp + 0x34], eax
shl eax, 4
add eax, dword [esi + 0x10]
mov dword [esp + 0x3c], edx
mov edi, dword [eax + 4]
cmp cl, 0x71
jne 0x435d2e
mov ecx, dword [esp + 0x10]
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 + 0x18]
cmp al, byte [ecx + 0x93]
jae 0x435d36
mov byte [ecx + 0x93], al
jmp 0x435d36
mov dword [esp + 0x4c], 0
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 0x10
je 0x435d5b
mov ecx, dword [esp + 0x24]
lea eax, [edx + edx*4]
lea esi, [ecx + eax*8]
mov ecx, esi
call fcn.00428fe0
mov eax, dword [esi]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
mov al, byte [ecx + 1]
cmp al, 0xf8
jne 0x435d6f
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x2c], eax
movzx eax, word [eax + 8]
jmp 0x435d7c
cmp al, 0xfd
jne 0x435d78
mov eax, dword [ecx + 0x10]
jmp 0x435d7c
mov eax, dword [esp + 0x28]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
push 0
push eax
call fcn.00432670
mov esi, eax
add esp, 8
test esi, esi
je 0x434c5b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
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 + 0x34], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
je 0x435e0d
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x435dd9
mov ecx, edi
call fcn.0041b710
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
push eax
push dword [esp + 0x30]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x54]
call fcn.0041fc40
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x1c], edx
je 0x435e28
add dword [edi + 0xc], 0xffffffff
jne 0x435e28
mov ecx, edi
call fcn.0041b6a0
mov edx, dword [esp + 0x1c]
jmp 0x435e28
push eax
push dword [esp + 0x30]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x54]
call fcn.0041fc40
mov edx, eax
add esp, 0xc
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov dword [esi + 0x30], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 1], 0xf8
setne al
mov byte [esi + 4], al
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov cl, byte [eax + 2]
mov eax, dword [esi]
and cl, 3
mov byte [eax + 3], cl
jmp 0x43978d
mov edx, dword [esp + 0x10]
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 + 0x1c]
movsx eax, word [edi + 0x3c]
push eax
call fcn.00432670
mov esi, eax
add esp, 8
test esi, esi
je 0x434c5b
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 + 0x28], eax
mov dword [esp + 0x34], ecx
cmp byte [esi + 9], 0
je 0x435f3a
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x435eec
mov ecx, esi
call fcn.0041b710
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
push edi
push eax
mov edx, ecx
mov ecx, esi
push 4
call fcn.0041fc40
add esp, 0xc
mov dword [esp + 0x1c], eax
cmp byte [esi + 9], 0
je 0x434d79
add dword [esi + 0xc], 0xffffffff
jne 0x434d79
mov ecx, esi
call fcn.0041b6a0
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
push edi
push eax
mov edx, ecx
mov ecx, esi
push 4
call fcn.0041fc40
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x435f91
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], 0x5cbbd8
mov edx, dword [ecx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + edx*4]
test esi, esi
je 0x435fdd
test byte [esi + 8], 8
jne 0x435fdd
movsx eax, word [esi + 0x3c]
cmp dword [ecx + 8], eax
jg 0x435fdd
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.00426120
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
jmp 0x4361e6
push 0
push dword [ecx + 8]
mov ecx, edi
call fcn.00432670
mov esi, eax
add esp, 8
test esi, esi
je 0x434c5f
mov eax, dword [esp + 0x10]
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.0041d8c0
mov edx, eax
add esp, 0x10
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov ecx, dword [edi]
lea edx, [eax + 1]
push eax
call fcn.0041e8e0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x4361b5
mov ecx, dword [esp + 0x10]
mov edi, dword [edi]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x28], eax
mov dword [esi + 0x30], eax
test eax, eax
je 0x436139
movzx eax, word [ecx + 2]
or eax, 2
mov dword [esp + 0x34], eax
cmp byte [edi + 9], dl
je 0x436085
inc dword [edi + 0xc]
cmp byte [edi + 0xa], dl
jne 0x436085
mov ecx, edi
call fcn.0041b710
mov eax, dword [esp + 0x34]
lea edx, [esi + 0x38]
mov ecx, edi
push eax
call fcn.00425c60
add esp, 4
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x1c], edx
je 0x4360b0
add dword [edi + 0xc], 0xffffffff
jne 0x4360b0
mov ecx, edi
call fcn.0041b6a0
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436133
mov edi, dword [esi + 0x10]
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x58], ecx
cmp byte [edi + 9], dl
je 0x43611a
inc dword [edi + 0xc]
cmp byte [edi + 0xa], dl
jne 0x4360e1
mov ecx, edi
call fcn.0041b710
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x58]
push eax
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, edi
push 4
call fcn.0041fc40
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x1c], edx
je 0x436133
add dword [edi + 0xc], 0xffffffff
jne 0x436133
mov ecx, edi
call fcn.0041b6a0
mov edx, dword [esp + 0x1c]
mov byte [esi + 4], 0
jmp 0x4361b2
push eax
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, edi
push 4
call fcn.0041fc40
mov edx, eax
add esp, 0xc
mov dword [esp + 0x1c], edx
mov byte [esi + 4], 0
jmp 0x4361b2
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x38], 1
cmp byte [edi + 9], 0
mov dword [esp + 0x28], eax
je 0x436194
inc dword [edi + 0xc]
cmp byte [edi + 0xa], 0
jne 0x436161
mov ecx, edi
call fcn.0041b710
mov eax, dword [esp + 0x28]
push eax
push 0
push 4
mov edx, 1
mov ecx, edi
call fcn.0041fc40
add esp, 0xc
mov edx, eax
cmp byte [edi + 9], 0
mov dword [esp + 0x1c], edx
je 0x4361ae
add dword [edi + 0xc], 0xffffffff
jne 0x4361ae
mov ecx, edi
call fcn.0041b6a0
mov edx, dword [esp + 0x1c]
jmp 0x4361ae
push eax
push 0
push 4
mov edx, 1
mov ecx, edi
call fcn.0041fc40
mov edx, eax
add esp, 0xc
mov dword [esp + 0x1c], edx
mov byte [esi + 4], 1
lea edi, [esi + 0x10]
mov eax, dword [esp + 0x10]
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 0x4361ee
mov ecx, dword [edi]
call fcn.0041e100
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov byte [esi + 2], 1
mov esi, dword [esp + 0x24]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
push 1
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00432670
add esp, 8
test eax, eax
je 0x434c5f
mov edx, dword [esp + 0x10]
push eax
mov ecx, dword [edx + 0x10]
mov dword [eax + 0x30], ecx
mov edx, dword [edx + 0xc]
mov ecx, dword [esp + 0x18]
call fcn.0043bc70
add esp, 4
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [edi + 0x60]
mov ecx, dword [esp + 0x10]
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 + 0x18]
mov dword [edx + 0x1c], eax
mov edx, dword [esp + 0x10]
je 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
push 3
push dword [ecx + 0xc]
mov edx, dword [ecx + 4]
mov ecx, edi
call fcn.00432670
add esp, 8
test eax, eax
je 0x434c5f
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov byte [eax + 2], 1
add edx, 0x14
mov ecx, dword [ecx + 8]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x88]
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x6073b0
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + ecx*4]
test edx, edx
je 0x43631e
mov ecx, edi
call fcn.0042c3d0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
add edx, 0x14
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov dword [eax + ecx*4], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x2c], 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 0x4364b3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
movzx eax, word [edi + 0x10]
mov dword [esp + 0x34], eax
and al, 0x2e
cmp al, 2
jne 0x43639a
xor edx, edx
mov ecx, edi
call fcn.00432850
mov ecx, edi
call fcn.00428eb0
movzx ecx, word [edi + 0x10]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov word [edi + 0x10], ax
test cl, 0x24
jne 0x436477
test cl, 8
jne 0x43643b
test cl, 1
jne 0x4365d5
cmp dword [esp + 0x40], 0x17
jae 0x4365d5
mov ecx, dword [esi + 0x2c]
cmp byte [ecx], 0
jne 0x43641f
test byte [ecx + 1], 8
je 0x43641f
mov dword [esp + 0x64], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x2c], 0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
lea edx, [ecx + 0x14]
cmove edx, ecx
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
lea edx, [esp + 0x64]
call fcn.004207d0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
jmp 0x4365ca
push dword [esp + 0x3c]
movsd xmm1, qword [edi]
push dword [esp + 0x2c]
call fcn.0042e160
add esp, 8
test eax, eax
jle 0x436468
mov ecx, dword [esp + 0x40]
test cl, 1
lea eax, [ecx - 1]
cmovne eax, ecx
mov ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x436477
jns 0x436477
mov eax, dword [esp + 0x40]
test al, 1
je 0x436477
inc eax
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0x28]
lea eax, [esp + 0x64]
mov ecx, dword [esi + 0x2c]
xor edx, edx
push eax
push dword [esp + 0x40]
push edi
call fcn.00420810
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x48]
add esp, 0xc
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov dword [esi + 0x44], eax
test edx, edx
jne 0x436cf1
jmp 0x436553
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 3]
and al, 2
mov byte [esp + 0x3b], al
mov eax, 0
setne al
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x1a0], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x1b4], ax
lea eax, [edx - 1]
test al, 1
mov byte [esp + 0x1ba], 0
lea edx, [esp + 0x1a0]
sete al
lea eax, [eax*2 - 1]
mov byte [esp + 0x1b6], al
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x1a4], eax
lea eax, [esp + 0x64]
mov ecx, dword [esi + 0x2c]
push eax
call fcn.00420bb0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
cmp byte [esp + 0x3b], al
je 0x436553
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x1ba], dl
je 0x4365ca
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x64]
cmp eax, 0x17
jl 0x4365b1
test ecx, ecx
js 0x436578
jne 0x43656b
cmp eax, 0x18
je 0x436578
mov dword [esp + 0x64], 0
jmp 0x4363f5
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x64], 0
call fcn.00421150
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
je 0x4363f5
cmp edx, 0x65
jne 0x436cf1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x64], 1
jmp 0x4365d9
test ecx, ecx
jg 0x436604
jne 0x4365bc
cmp eax, 0x15
je 0x436604
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 0x4363f5
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
mov ecx, dword [esi + 0x2c]
mov dword [esp + 0x64], 0
call fcn.004212b0
jmp 0x436588
mov ecx, dword [esp + 0x10]
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 0x433984
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x298], eax
mov byte [esp + 0x2ae], 0
mov ax, word [ecx + 0x24]
mov esi, dword [ecx + 4]
mov word [esp + 0x2ac], ax
mov eax, dword [ecx + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov dword [esp + 0x29c], eax
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x29c]
mov edx, edi
push eax
call fcn.0042f080
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
test eax, eax
jle 0x4366b1
cmp word [edx + 2], 0
je 0x4366ea
test eax, eax
jns 0x4366ed
test esi, esi
jle 0x432e03
mov ecx, dword [edi + 0x2c]
dec esi
mov dword [edi + 0x20], 0
call fcn.00421150
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
je 0x436673
cmp edx, 0x65
jne 0x436ced
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], 0
add edx, 0x14
mov edi, dword [esp + 0x18]
jmp 0x4365dd
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
movzx eax, word [ecx + 0xc]
cmp eax, dword [edx + 8]
jge 0x43672d
mov eax, edx
add edx, 0x14
mov ax, word [eax + 8]
mov word [ecx + 0xc], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
cmp eax, dword [edx + 0xc]
jle 0x432e0b
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
add edx, 0x14
mov ax, word [eax + 0xc]
mov word [ecx + 0xc], ax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
test eax, eax
je case.0x432cc5.9
cmp byte [eax + 2], 0
je 0x432f15
jmp case.0x432cc5.9
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
movzx eax, word [eax + 0xc]
cmp eax, dword [edx + 0x10]
jge 0x432e0b
jmp 0x4367a1
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [edi + 0x60]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x104], ecx
mov ax, word [eax + 0x10]
mov word [esp + 0x114], ax
test ax, ax
je 0x43680b
mov eax, dword [esi + 0x30]
lea edi, [esi + 0x24]
mov dword [esp + 0x100], eax
lea edx, [esp + 0x100]
mov byte [esp + 0x116], 0
mov ecx, dword [esi + 0x2c]
push edi
call fcn.00420bb0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
jmp 0x43687f
mov eax, 0x400
test word [ecx + 0x10], ax
je 0x436823
call fcn.00428bb0
test eax, eax
jne 0x434c5f
mov ecx, dword [esi + 0x30]
call fcn.0042dcb0
mov esi, eax
test esi, esi
je 0x434c5f
mov edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x2c]
push esi
push dword [edx + 8]
mov edx, dword [edx + 0xc]
mov ecx, dword [ecx + 0x30]
call fcn.0042dd00
mov eax, dword [esp + 0x34]
mov edx, esi
mov byte [esi + 0x16], 0
mov ecx, dword [eax + 0x2c]
lea edi, [eax + 0x24]
push edi
call fcn.00420bb0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, esi
mov dword [esp + 0x1c], eax
call fcn.004059a0
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436ced
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 + 0x10]
mov al, byte [eax]
mov byte [esp + 0x3b], al
cmp al, 0x1d
jne 0x4368d0
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
test ecx, ecx
jne 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
test ecx, ecx
je 0x4365d5
cmp al, 0x1b
jne 0x436909
movzx edx, word [esp + 0x114]
xor ecx, ecx
test edx, edx
je 0x436909
mov eax, dword [esp + 0x104]
add eax, 0x10
test byte [eax], 1
jne 0x4365d5
inc ecx
add eax, 0x28
cmp ecx, edx
jl 0x4368f4
mov al, byte [esp + 0x3b]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
cmp al, 0x1a
jne 0x432e07
mov ecx, dword [esp + 0x88]
mov eax, edx
add edx, 0x14
mov ax, word [eax + 0x10]
mov word [esi + 0xc], ax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x24
jne 0x4369cf
movups xmm0, xmmword [esi + eax*8]
movups xmm1, xmmword [esi + eax*8 + 0x10]
movups xmmword [esp + 0x170], xmm0
movq xmm0, qword [esi + eax*8 + 0x20]
movd eax, xmm1
movaps xmmword [esp + 0x180], xmm1
movq qword [esp + 0x190], xmm0
test al, 4
jne 0x4369bb
test al, 0x28
jne 0x43699c
test al, 2
je 0x4369b3
mov eax, 1
lea ecx, [esp + 0x170]
mov edx, eax
call fcn.00432850
jmp 0x4369a8
lea ecx, [esp + 0x170]
call fcn.00428f70
mov edx, dword [esp + 0x10]
mov al, byte [esp + 0x180]
test al, 4
je 0x4365dd
mov edi, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
jmp 0x4369dc
mov edx, dword [esp + 0x10]
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 + 0x28], edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], 0
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
lea eax, [esp + 0x34]
push eax
push edx
push edi
mov ecx, dword [esi + 0x2c]
xor edx, edx
call fcn.00420810
mov edx, eax
mov dword [esi + 0x40], edi
mov eax, dword [esp + 0x34]
add esp, 0xc
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x1c], edx
mov word [esi + 2], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], eax
test eax, eax
je 0x436a53
mov edx, dword [esp + 0x10]
cmp dword [edx + 8], 0
jne 0x4366ed
mov ecx, 0x17754
call fcn.0049dc10
mov edx, eax
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x18]
jmp 0x43978d
mov ecx, dword [esp + 0x10]
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 0x436a82
mov ecx, edx
call fcn.00432a80
mov edx, eax
jmp 0x436a8b
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
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 + 0x10]
mov edx, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x88]
add dword [eax + 0x18], 1
adc dword [eax + 0x1c], 0
add edx, 0x14
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 + 0x34], edx
test word [edx + 0x10], ax
je 0x436b0c
mov ecx, edx
call fcn.00432a80
mov dword [esp + 0x34], eax
jmp 0x436b15
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x40], eax
test byte [eax + 8], 2
jne 0x436bc3
mov ecx, dword [eax + 0x2c]
cmp byte [ecx], 0
jne 0x436b50
test byte [ecx + 1], 8
je 0x436b50
mov dword [esp + 0x4c], 0
mov dword [esp + 0x1c], 0
jmp 0x436b82
lea edx, [esp + 0x4c]
call fcn.004207d0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
cmp dword [esp + 0x4c], eax
je 0x436b7e
mov edi, 1
xor esi, esi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
jmp 0x436bcb
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 0x2c]
mov ecx, esi
call fcn.0041fde0
mov edi, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], esi
cmp esi, 0x7fffffff
jl 0x436bb3
jg 0x436ba9
cmp edi, 0xffffffff
jb 0x436bb3
mov eax, dword [esp + 0x40]
or dword [eax + 8], 2
jmp 0x436bcb
add edi, 1
mov dword [esp + 0x70], edi
adc esi, 0
mov dword [esp + 0x74], esi
jmp 0x436bcb
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x436c64
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0xd0]
test edx, edx
je 0x436c04
mov eax, dword [edx + 4]
test eax, eax
je 0x436bf9
nop
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x436bf0
mov eax, dword [edx + 0xc]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
jmp 0x436c0e
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + eax*8]
mov dword [esp + 0x2c], ecx
call fcn.00428fe0
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
cmp ecx, 0xffffffff
jne 0x436c31
cmp edx, 0x7fffffff
je 0x436ce4
mov eax, dword [esp + 0x40]
test byte [eax + 8], 2
mov eax, dword [esp + 0x2c]
jne 0x436ce4
add ecx, 1
adc edx, 0
cmp esi, edx
jg 0x436c5f
jl 0x436c53
cmp edi, ecx
jae 0x436c5f
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 + 0x40]
test byte [eax + 8], 2
je 0x436d0d
mov dword [esp + 0x28], 0
nop word [eax + eax]
lea eax, [esp + 0x70]
push eax
push 8
call fcn.00408dd0
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 + 0x4c]
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.00420810
mov edx, eax
add esp, 0x14
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
cmp dword [esp + 0x4c], eax
jne 0x436d09
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, 0x64
jl 0x436c80
mov edx, 0xd
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
cmp byte [esi + 0x57], 0
je 0x43a35c
mov edx, 7
jmp 0x43a387
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add edx, 0x14
mov byte [eax + 3], 0
mov dword [eax + 0x20], 0
mov eax, dword [esp + 0x34]
mov dword [eax], edi
mov edi, dword [esp + 0x18]
mov dword [eax + 4], esi
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x60]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], 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 + 0x34]
mov dword [esp + 0x150], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x154], eax
jne 0x436dc2
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0xfc], 0
je 0x436dbe
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 + 0x58], ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x34], eax
jmp 0x436dd2
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], 0
mov dword [esp + 0x58], 0
test byte [ecx + 2], 1
je 0x436dfc
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
test byte [ecx + 2], 0x20
mov eax, dword [esp + 0x28]
je 0x436dfc
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x28], edi
mov dword [ecx + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
movzx ecx, word [ecx + 2]
mov eax, dword [edi + edx*8 + 8]
mov dword [esp + 0x158], eax
mov eax, dword [edi + edx*8 + 0xc]
mov dword [esp + 0x164], eax
test cl, 0x10
je 0x436e24
mov edi, dword [esi + 0x24]
jmp 0x436e26
xor edi, edi
mov eax, dword [esp + 0x24]
mov esi, 0x400
test word [eax + edx*8 + 0x10], si
mov esi, dword [esp + 0x2c]
je 0x436e46
mov eax, dword [eax + edx*8]
mov dword [esp + 0x168], eax
jmp 0x436e51
mov dword [esp + 0x168], 0
and ecx, 0x8a
mov dword [esp + 0x148], 0
push edi
push ecx
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x150]
call fcn.00424d80
mov edx, eax
mov byte [esi + 3], 0
add esp, 8
mov dword [esp + 0x1c], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x436ced
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4331ee
push dword [esp + 0x154]
mov ecx, 0x17
push dword [esp + 0x154]
push dword [eax]
mov eax, dword [esp + 0x1c]
push dword [esp + 0x64]
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 [0x59a43c]
call esi
mov edx, dword [esp + 0x28]
add esp, 0x18
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
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 + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x436f37
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov edi, dword [esp + 0x24]
mov ecx, dword [ecx + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov edi, dword [esp + 0x18]
jmp 0x436f51
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.004253b0
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x43978d
mov edx, dword [esp + 0x10]
cmp byte [edx + 1], 0xfb
mov eax, dword [edx + 8]
mov ecx, dword [edx + 4]
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x60]
mov edi, dword [eax + ecx*4]
jne 0x436fd6
mov eax, dword [esp + 0x14]
cmp dword [eax + 0xfc], 0
je 0x436fd6
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 + 0x34], esi
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x28], eax
je 0x436fe0
cmp byte [edi + 4], 0
je 0x436fe0
mov esi, dword [edi + 0x2c]
mov ecx, esi
call fcn.0041fde0
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x10]
mov dword [edi + 0x40], eax
mov eax, dword [esi + 0x24]
mov esi, dword [esp + 0x34]
mov dword [edi + 0x44], eax
jmp 0x436fe0
mov dword [esp + 0x28], 0
xor esi, esi
mov dl, byte [edx + 2]
mov ecx, dword [edi + 0x2c]
call fcn.004257a0
mov edx, eax
mov dword [edi + 0x20], 0
mov dword [esp + 0x1c], edx
mov dword [edi + 0x24], 0
test edx, edx
jne 0x436ced
test byte [esp + 0x58], 1
je 0x4331ee
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xfc]
mov dword [esp + 0x34], eax
test eax, eax
je 0x4331ee
test esi, esi
je 0x4331ee
test byte [esi + 0x1c], 0x80
jne 0x4331ee
push dword [edi + 0x44]
mov ecx, eax
push dword [edi + 0x40]
push dword [esi]
push dword [esp + 0x34]
push 9
push dword [edx + 0xf8]
call dword [0x59a43c]
call dword [esp + 0x4c]
mov edx, dword [esp + 0x28]
add esp, 0x18
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov esi, dword [esp + 0x14]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0x10]
add dword [esi + 0x70], eax
mov dword [esi + 0x68], eax
adc dword [esi + 0x74], ecx
add edx, 0x14
mov eax, dword [esp + 0x20]
mov dword [esi + 0x6c], ecx
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x40], 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 + 0x40]
push eax
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
call fcn.0043de40
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x40], eax
jne 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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.0043dda0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x88]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x43719d
mov ecx, esi
call fcn.00432a80
mov esi, eax
jmp 0x4371a6
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
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.0041fde0
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
cmp edx, dword [eax + 0x78]
ja 0x439ffd
push esi
mov ecx, edi
call fcn.00429a50
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov edx, dword [esp + 0x10]
cmp dword [edx + 0xc], eax
jne 0x432e03
mov eax, 0x4000
test word [esi + 0x10], ax
je 0x432e03
mov ecx, esi
call fcn.00428b60
mov edi, dword [esp + 0x18]
test eax, eax
jne 0x434c5f
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 + 0x28], edi
test word [edi + 0x10], ax
je 0x43725e
mov ecx, edi
call fcn.00432a80
mov edi, eax
mov dword [esp + 0x28], edi
jmp 0x437267
mov eax, 4
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + ecx*4]
cmp byte [esi + 2], 0
je 0x4372a6
mov edx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x24]
add edx, 0x14
mov ecx, dword [esp + 0x88]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
jmp 0x432c97
cmp byte [esi + 3], 0
je 0x4372be
mov edx, dword [esi + 0x40]
mov dword [esp + 0xa8], edx
mov eax, dword [esi + 0x44]
jmp 0x43739e
cmp byte [esi], 2
jne 0x437332
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xa8]
push edx
push ecx
mov edi, dword [ecx]
mov eax, dword [edi]
mov esi, dword [eax + 0x30]
mov ecx, esi
call dword [0x59a43c]
call esi
add esp, 8
mov dword [esp + 0x1c], eax
mov edx, edi
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0042f2b0
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436cf1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xa8]
mov esi, dword [esp + 0x24]
mov dword [ecx], edx
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x10]
mov dword [ecx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [esi + 0x2c]
cmp byte [eax], 0
je 0x437351
mov ecx, esi
call fcn.0042d9d0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
jmp 0x437359
mov dword [esp + 0x1c], 0
cmp byte [esi + 2], 0
je 0x437387
mov edx, dword [esp + 0x10]
mov eax, 1
mov esi, dword [esp + 0x24]
add edx, 0x14
mov ecx, dword [esp + 0x88]
mov word [edi + 0x10], ax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov esi, dword [esi + 0x2c]
mov ecx, esi
call fcn.0041fde0
mov edx, dword [esi + 0x20]
mov dword [esp + 0xa8], edx
mov eax, dword [esi + 0x24]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x24]
mov dword [esp + 0xac], eax
mov dword [ecx], edx
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x10]
mov dword [ecx + 4], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov edx, dword [edx + 4]
mov eax, dword [eax + edx*4]
test eax, eax
jne 0x437411
push 3
push 1
mov ecx, edi
call fcn.00432670
add esp, 8
test eax, eax
je 0x434c5f
or dword [eax + 8], 8
mov dword [eax + 0x24], 0
mov byte [eax + 4], 1
mov dword [eax + 0x2c], 0x6073b0
cmp byte [eax], 0
mov byte [eax + 2], 1
mov dword [eax + 0x20], 0
jne 0x4396ca
mov ecx, dword [eax + 0x2c]
call fcn.0041bc10
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
cmp byte [esp + 0x3b], 0x89
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov dword [esp + 0x5c], 0
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
jne 0x437473
mov dword [esi + 0x24], 0xffffffff
cmp byte [ecx], 0
je 0x4396ca
cmp byte [ecx], 0
jne 0x437484
test byte [ecx + 1], 8
je 0x437484
xor eax, eax
xor edx, edx
jmp 0x437493
lea edx, [esp + 0x5c]
call fcn.004207d0
mov edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], edx
mov byte [esi + 2], al
mov byte [esi + 3], 0
mov dword [esi + 0x20], 0
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
cmp dword [edx + 8], 0
jle 0x432e07
test eax, eax
jne 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0xbc]
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.004207a0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
cmp dword [esp + 0xbc], eax
jne 0x4365d9
mov ecx, esi
call fcn.00420f30
test edx, edx
jl 0x4396ca
jg 0x43752c
test eax, eax
jb 0x4396ca
push edx
push eax
call fcn.0040b0e0
mov edx, dword [esp + 0x18]
add esp, 8
cwde
cmp eax, dword [edx + 0xc]
jge 0x432e07
mov dword [esp + 0xbc], 1
jmp 0x4365dd
inc dword [edi + 0xac]
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov eax, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
cmp byte [edi], al
jne 0x4375ed
mov esi, dword [edi + 0x2c]
mov dword [esp + 0x1c], 0
cmp byte [esi + 0x38], 0
jne 0x4375b4
cmp dword [esi + 0x24], 0
lea edx, [esi + 0x24]
je 0x4375aa
xor eax, eax
lea ecx, [esi + 0x40]
call fcn.0043c590
mov esi, dword [esp + 0x24]
mov edx, eax
mov dword [esp + 0x1c], edx
xor eax, eax
jmp 0x43760e
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
jmp 0x43760e
mov ecx, esi
call fcn.0043cce0
mov edx, eax
mov ecx, esi
call fcn.0043bf30
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x4375e3
mov ecx, esi
call fcn.0043db10
mov esi, dword [esp + 0x24]
mov edx, eax
mov dword [esp + 0x1c], edx
xor eax, eax
jmp 0x43760e
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
jmp 0x43760e
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x30]
call fcn.004207a0
mov edx, eax
mov byte [edi + 3], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], edx
mov dword [edi + 0x20], 0
test edx, edx
jne 0x436ced
mov edx, dword [esp + 0x10]
mov byte [edi + 2], al
mov edi, dword [esp + 0x18]
cmp dword [edx + 8], 0
jle 0x432e07
test eax, eax
jne 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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.0043dd00
jmp 0x43768c
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.004212b0
jmp 0x43768c
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esi + 0x2c]
call fcn.00421150
mov edx, eax
mov dword [esp + 0x1c], edx
mov dword [esi + 0x20], 0
test edx, edx
jne 0x4376b4
mov byte [esi + 2], al
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
inc dword [edi + eax*4 + 0xa4]
jmp case.0x432cc5.9
cmp edx, 0x65
jne 0x436cf1
mov dword [esp + 0x1c], 0
mov byte [esi + 2], 1
jmp 0x43964a
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x10]
test byte [ecx + 2], 1
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
je 0x4376fa
mov eax, dword [esp + 0x18]
add dword [eax + 0x28], 1
adc dword [eax + 0x2c], 0
mov eax, 0x400
test word [esi + 0x10], ax
je 0x43771e
mov ecx, esi
call fcn.00428bb0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 0xc]
cdq
mov dword [esp + 0x2e0], eax
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x2d8], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x2e4], edx
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
mov dword [esp + 0x2ec], eax
mov ax, word [ecx + 0x10]
mov word [esp + 0x2f0], ax
movzx eax, word [ecx + 2]
test al, 0x10
je 0x437767
mov ecx, dword [edi + 0x24]
jmp 0x437769
xor ecx, ecx
push ecx
mov ecx, dword [edi + 0x2c]
lea edx, [esp + 0x2dc]
and eax, 0x8a
push eax
call fcn.00424d80
mov edx, eax
mov dword [edi + 0x20], 0
mov edi, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
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 0x4377e8
mov ecx, esi
call fcn.00428bb0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov edx, esi
mov ecx, edi
call fcn.0043ce40
mov edi, dword [esp + 0x18]
mov edx, eax
mov dword [esp + 0x1c], edx
jmp 0x43978d
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [edx + 4]
mov esi, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
mov eax, dword [esi + 0x30]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x278], eax
mov ax, word [edx + 0xc]
mov word [esp + 0x28c], ax
mov eax, dword [edx + 8]
lea edx, [esp + 0x278]
mov byte [esp + 0x28e], 0
lea eax, [eax + eax*4]
lea eax, [ecx + eax*8]
mov ecx, edi
mov dword [esp + 0x27c], eax
lea eax, [esp + 0xd4]
push eax
call fcn.00420bb0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
cmp dword [esp + 0xd4], eax
jne 0x4378ae
mov dl, 4
mov ecx, edi
call fcn.004257a0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov ecx, dword [esp + 0x88]
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edx, dword [esp + 0x10]
cmp word [edx + 2], 0
je 0x4378ca
mov ecx, dword [esp + 0x14]
call fcn.00451ac0
test eax, eax
je 0x43a01d
mov edi, dword [esp + 0x18]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov esi, dword [esp + 0x24]
jmp 0x432c97
mov edx, dword [esp + 0x10]
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 0x437923
mov ecx, esi
call fcn.0042d9d0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
jmp 0x43792b
mov dword [esp + 0x1c], 0
cmp byte [esi + 2], 0
jne 0x437a40
mov edx, dword [esi + 0x2c]
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x14]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0x9c], xmm0
call fcn.0042ef40
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov eax, dword [esp + 0x10]
cmp byte [eax], 0x8d
jne 0x4379bd
mov ecx, dword [eax + 0xc]
mov eax, dword [edi + 0x60]
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x98]
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 0x44], eax
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x20], edx
mov edx, dword [esp + 0x10]
mov word [ecx + 2], 0x100
add edx, 0x14
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 0x28], esi
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
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 0x437a09
call fcn.00432a80
mov edx, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x98]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, 4
mov esi, dword [esp + 0x24]
add edx, 0x14
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x98]
mov dword [ecx], eax
mov eax, dword [esp + 0x9c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [edx + 8]
mov esi, dword [esp + 0x24]
lea eax, [eax + eax*4]
lea ecx, [esi + eax*8]
call fcn.00429330
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 3], 0
je 0x432f15
call fcn.0042d960
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
cmp byte [esp + 0x3b], 0x2a
mov ecx, dword [edx + 4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x2b8], eax
mov ax, word [edx + 0x10]
mov word [esp + 0x2cc], ax
sbb al, al
mov byte [esp + 0x2ce], 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 + 0x2bc], eax
call fcn.0041fde0
xor eax, eax
mov edx, dword [esi + 0x2c]
jl 0x43a048
jg 0x437b0a
test edx, edx
je 0x43a048
test eax, eax
jg 0x43a048
jl 0x437b20
cmp edx, 0x7fffffff
ja 0x43a048
xor eax, eax
mov dword [esp + 0x200], 0
mov word [esp + 0x1f8], ax
mov ecx, esi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1fc], eax
lea eax, [esp + 0x1e8]
push eax
call fcn.00429a50
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x1f0]
mov ecx, dword [esp + 0x1f4]
push eax
lea eax, [esp + 0x2bc]
push eax
call fcn.0042e4b0
add esp, 8
mov esi, eax
cmp dword [esp + 0x200], 0
je 0x437b97
lea ecx, [esp + 0x1e8]
call fcn.00428dc0
mov edx, dword [esp + 0x10]
test byte [edx], 1
jne 0x437ba4
neg esi
jmp 0x437ba5
inc esi
test esi, esi
jg 0x4365dd
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
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 0x437bee
mov ecx, edi
call fcn.00432a80
mov edx, dword [esp + 0x10]
mov edi, eax
jmp 0x437bf7
mov eax, 4
mov word [edi + 0x10], ax
mov esi, 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 [esi + 0xc0], eax
jg 0x43a05d
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x28], eax
mov eax, esi
mov dword [esp + 0x58], ecx
shl ecx, 4
mov dword [esp + 0x48], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x34], ecx
mov esi, dword [eax + ecx + 4]
cmp byte [esi + 9], 0
je 0x437c57
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x437c57
mov ecx, esi
call fcn.0041b710
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x48]
push eax
mov ecx, esi
call fcn.004261e0
add esp, 4
mov dword [esp + 0x1c], eax
cmp byte [esi + 9], 0
je 0x437c81
add dword [esi + 0xc], 0xffffffff
jne 0x437c81
mov ecx, esi
call fcn.0041b6a0
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 + 0x1c]
mov dword [edi], eax
test edx, edx
jne 0x436ced
test esi, esi
je 0x4331ee
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x10]
add edi, dword [esp + 0x34]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x437cd7
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x14], esi
jne 0x437cd1
mov dword [ecx + 0x14], edx
mov eax, dword [eax]
test eax, eax
jne 0x437cc6
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x437cf2
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x2c], esi
jne 0x437cec
mov dword [ecx + 0x2c], edx
mov eax, dword [eax]
test eax, eax
jne 0x437ce1
mov al, byte [esp + 0x58]
mov edx, dword [esp + 0x10]
inc al
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x88]
mov byte [esp + 0x6b], al
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edx, dword [esp + 0x10]
lea eax, [esp + 0xc0]
mov ecx, dword [esp + 0x14]
xorps xmm0, xmm0
push eax
movlpd qword [esp + 0xc4], 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.00426120
mov edi, dword [esp + 0x14]
add esp, 4
mov edx, eax
mov dword [esp + 0x1c], edx
cmp dword [edi + 0xc], 0
mov edi, dword [esp + 0x18]
je 0x437d98
mov edx, dword [esp + 0xc0]
add dword [edi + 0x28], edx
mov eax, dword [esp + 0xc4]
adc dword [edi + 0x2c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
test eax, eax
jle 0x437d94
lea eax, [eax + eax*4]
add dword [esi + eax*8], edx
lea ecx, [esi + eax*8]
mov eax, dword [esp + 0xc4]
adc dword [ecx + 4], eax
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx], 1
jne 0x437dec
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x14]
call fcn.0043c1e0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [ecx + 0x2c]
push 0
mov edx, dword [ecx + 0x40]
mov ecx, dword [ecx + 8]
call fcn.00426120
jmp 0x436246
mov ecx, dword [esp + 0x10]
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 0x437e27
mov ecx, edi
call fcn.00432a80
mov edi, eax
jmp 0x437e30
mov eax, 4
mov word [edi + 0x10], ax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], 0
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x28], 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 0x437e69
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x437e69
mov ecx, esi
call fcn.0041b710
push dword [esp + 0x28]
lea edx, [esp + 0x48]
mov ecx, esi
call fcn.00425c60
add esp, 4
mov edx, eax
cmp byte [esi + 9], 0
mov dword [esp + 0x1c], edx
je 0x437e98
add dword [esi + 0xc], 0xffffffff
jne 0x437e98
mov ecx, esi
call fcn.0041b6a0
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436ced
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x88]
mov dword [edi + 4], edx
mov edx, dword [esp + 0x10]
mov dword [edi], eax
add edx, 0x14
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push 0
push 0
inc byte [eax + 0x60]
push 0
push dword [ecx + 0x10]
push eax
call fcn.00464c90
mov esi, dword [esp + 0x28]
mov edx, eax
add esp, 0x14
mov dword [esp + 0x1c], edx
dec byte [esi + 0x60]
test edx, edx
jne 0x436cf5
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x10]
mov esi, dword [ecx + 4]
test edx, edx
jne 0x437f74
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.004587f0
mov ecx, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x10]
mov edx, esi
and dword [ecx + 0x18], 0xffffffef
movzx eax, word [eax + 2]
push eax
lea eax, [edi + 0x7c]
push eax
call fcn.0046a430
mov ecx, dword [esp + 0x1c]
mov edx, eax
add esp, 8
mov dword [esp + 0x1c], edx
or dword [ecx + 0x18], 1
and dword [edi + 0x98], 0xfffffffc
jmp 0x438058
mov ecx, dword [esp + 0x14]
lea eax, [edi + 0x7c]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xec], esi
add esi, esi
mov dword [esp + 0xe8], eax
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0xf4], 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 + 0x104], 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.004087c0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x43a076
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0xe4]
push 0
push ecx
push fcn.0046a240
push esi
push eax
mov byte [eax + 0xb1], 1
mov dword [esp + 0x104], 0
mov dword [esp + 0x10c], 0
call fcn.00464c90
add esp, 0x14
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43803e
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43803e
cmp dword [esp + 0xf8], eax
jne 0x43803e
mov ecx, 0x17d50
call fcn.0049dc10
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.004059a0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov byte [ecx + 0xb1], 0
test edx, edx
jne 0x43a07e
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
call fcn.0044f540
jmp 0x436249
mov edx, dword [esp + 0x10]
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 + 0xd0]
push eax
lea ecx, [edi + 8]
call fcn.0040b640
add esp, 4
mov esi, dword [eax + 8]
test esi, esi
je 0x43813d
push dword [esp + 0xd0]
mov edx, eax
lea ecx, [edi + 8]
call fcn.0040b6d0
add esp, 4
test esi, esi
je 0x43813d
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x210], 0
jne 0x4380ec
add dword [esi + 0x18], 0xffffffff
jne 0x438118
mov edx, esi
mov esi, ecx
call fcn.00451760
or dword [esi + 0x18], 1
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov esi, ecx
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
or dword [esi + 0x18], 1
add edx, 0x14
mov esi, dword [esp + 0x24]
jmp 0x432c97
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
or dword [esi + 0x18], 1
add edx, 0x14
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.00451220
mov edx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x18]
call fcn.00478990
mov edx, dword [esp + 0x14]
add esp, 4
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
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 + 0x8c]
push eax
lea eax, [esp + 0xe4]
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.00427100
add esp, 0x14
mov dword [esp + 0x1c], eax
mov ecx, edi
call fcn.00429330
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x438253
cmp dword [esp + 0x1c], 0
jne 0x43a099
dec eax
mov ecx, edi
cdq
sub dword [esi], eax
push fcn.004058e0
sbb dword [esi + 4], edx
mov edx, dword [esp + 0x90]
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
call fcn.004296a0
add esp, 0x10
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.00428950
mov edi, dword [esp + 0x18]
jmp 0x43964a
mov ecx, dword [esp + 0x10]
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 0x438291
mov ecx, esi
call fcn.004294e0
test eax, eax
jne 0x434c5b
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + edi*8 + 4]
push eax
mov eax, dword [ecx + edi*8]
mov ecx, dword [esi + 8]
push eax
call fcn.004127a0
mov edx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 0x10
lea edi, [esi + eax*8]
je 0x438344
mov esi, dword [edi + 8]
movzx eax, word [esi + 0x1a]
test al, 2
jne 0x4382fb
test al, 1
jne 0x4382f6
mov ecx, dword [esi + 8]
call fcn.00412890
mov dword [esi + 8], eax
or word [esi + 0x1a], 3
mov eax, dword [esi + 8]
test eax, eax
je 0x438344
mov ecx, dword [eax + 4]
mov edi, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x28], ecx
mov dword [esi + 8], eax
test eax, eax
jne 0x438320
mov ecx, esi
call fcn.00412720
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x28]
push edi
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
call fcn.004293e0
mov edi, dword [esp + 0x20]
add esp, 8
jmp 0x43964a
mov ecx, edi
call fcn.00429330
mov edi, dword [esp + 0x18]
jmp case.0x432cc5.9
mov ecx, dword [esp + 0x10]
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 + 0x28], ecx
lea edi, [eax + eax*4]
jne 0x438388
mov ecx, esi
call fcn.004294e0
test eax, eax
jne 0x434c5b
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4383b4
mov edx, dword [esp + 0x24]
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.00412ab0
add esp, 8
test eax, eax
jne 0x4365d5
mov ecx, dword [esp + 0x28]
test ecx, ecx
js 0x4331ee
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + edi*8 + 4]
push eax
mov eax, dword [ecx + edi*8]
mov ecx, dword [esi + 8]
push eax
call fcn.004127a0
mov edx, dword [esp + 0x18]
add esp, 8
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x10]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], esi
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], ecx
cmp word [eax + 2], 0
je 0x438439
mov eax, dword [edi + 0xd0]
mov ecx, dword [esi + 0x14]
test eax, eax
je 0x438435
cmp dword [eax + 0x18], ecx
je 0x4332d6
mov eax, dword [eax + 4]
test eax, eax
jne 0x438425
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0xd8]
cmp eax, dword [edx + 0xa0]
jge 0x43a0b1
test byte [ecx + 0x10], 0x10
jne 0x43861d
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 + 0x3c]
mov eax, dword [eax + 4]
add eax, 7
mov eax, eax
test eax, eax
jns 0x438482
add eax, 7
sar eax, 3
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
add eax, 0x58
mov dword [esp + 0x28], eax
cdq
push edx
push eax
call fcn.00405c90
mov edi, eax
add esp, 8
test edi, edi
je 0x434c5b
mov ecx, dword [esp + 0x2c]
call fcn.00428e00
mov ecx, dword [esp + 0x2c]
mov eax, 0x1010
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 0x54]
mov word [ecx + 0x10], ax
mov eax, dword [esp + 0x28]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 8], edi
mov dword [ecx + 0x24], 0x42baa0
mov ecx, dword [esp + 0x3c]
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 + 0x18]
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 0x438557
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 0x438543
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x3c]
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 + 0x24], 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.00563230
mov ecx, dword [esi]
add esp, 0xc
mov edi, dword [esp + 0x18]
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 0x439646
mov edi, dword [ecx + 8]
mov edx, dword [esp + 0x18]
jmp 0x43855b
mov ecx, dword [esp + 0x10]
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 0x43864f
mov ecx, esi
call fcn.00432a80
mov esi, eax
jmp 0x438658
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 + 0x14]
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.004295e0
mov edx, dword [esp + 0x14]
add esp, 4
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
and eax, 0x80000
or eax, 0
mov eax, dword [esp + 0x10]
je 0x4386e5
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x14]
cdq
add dword [ecx + 0x208], eax
mov eax, dword [esp + 0x20]
adc dword [ecx + 0x20c], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
cmp dword [eax + 4], 0
mov eax, dword [eax + 8]
cdq
je 0x438716
mov ecx, dword [esp + 0x14]
add dword [ecx + 0x200], eax
mov eax, dword [esp + 0x20]
adc dword [ecx + 0x204], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
add dword [edi + 0x40], eax
mov eax, dword [esp + 0x20]
adc dword [edi + 0x44], edx
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
mov edx, dword [esp + 0x10]
cmp dword [edx + 4], 0
je 0x43877e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x200]
or eax, dword [ecx + 0x204]
jne 0x432e0b
mov eax, ecx
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
je 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [edi + 0x40]
or eax, dword [edi + 0x44]
jne 0x432e0b
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x208]
or eax, dword [ecx + 0x20c]
je 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [edi + 0xd0]
test edx, edx
je 0x4387e3
mov eax, dword [edx + 4]
test eax, eax
je 0x4387d1
mov edx, eax
mov eax, dword [edx + 4]
test eax, eax
jne 0x4387c8
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0xc]
lea edi, [eax + ecx*8]
jmp 0x4387f0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
mov ecx, edi
call fcn.00428fe0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov ecx, esi
call fcn.00428fe0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
cmp dword [edi + 4], ecx
jg 0x4331ee
jl 0x438823
cmp dword [edi], eax
jae 0x4331ee
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov dword [edi], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 4], ecx
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov edi, dword [eax + esi*8 + 4]
mov ecx, dword [eax + esi*8]
test edi, edi
jl 0x4331ee
jg 0x43886e
test ecx, ecx
je 0x4331ee
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
cdq
sub ecx, eax
mov eax, dword [esp + 0x24]
sbb edi, edx
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edi
jmp 0x4365d5
mov ecx, dword [esp + 0x10]
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 + 0x28], edx
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
test word [esi + 0x10], ax
je 0x4388c8
mov ecx, esi
call fcn.00432a80
mov edx, dword [esp + 0x28]
mov esi, eax
jmp 0x4388d1
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + edi*8]
mov eax, dword [eax + edi*8 + 4]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
test eax, eax
jl 0x43896a
jg 0x4388f4
test ecx, ecx
je 0x43896a
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
test ecx, ecx
jl 0x438909
jg 0x438923
test eax, eax
jne 0x438923
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 + 0xd0]
call fcn.0040aea0
add esp, 8
test eax, eax
jne 0x43896a
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov ecx, dword [esp + 0x88]
mov dword [esi], eax
mov eax, dword [esp + 0xcc]
mov dword [esi + 4], eax
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov esi, dword [esp + 0x24]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + esi*8]
mov edx, dword [eax + esi*8 + 4]
mov eax, ecx
or eax, edx
je 0x4332d6
test edx, edx
jl 0x4365d9
jg 0x4389c7
test ecx, ecx
je 0x4365d9
mov eax, dword [esp + 0x24]
sub ecx, 1
sbb edx, 0
mov dword [eax + esi*8], ecx
mov dword [eax + esi*8 + 4], edx
jmp 0x4365d9
mov ecx, dword [esp + 0x10]
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 0x438a09
jg 0x4389fe
test eax, eax
je 0x438a09
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 + 0x10]
je 0x4365dd
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
push 0
movzx eax, word [ecx + 2]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
lea eax, [eax*4 + 0x44]
push eax
call fcn.00405d00
mov esi, eax
add esp, 8
test esi, esi
je 0x434c5f
mov eax, dword [esp + 0x28]
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 + 0x10]
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 + 0x10]
mov dword [esi + 0x10], eax
mov al, byte [esp + 0x50]
mov byte [esi + 0x18], al
mov eax, dword [esp + 0x28]
mov byte [esi + 0x1a], al
mov dword [edx + 0x10], esi
mov esi, dword [esp + 0x24]
mov word [edx], 0xf1a3
jmp 0x438ad5
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xc]
mov edi, dword [edx + 0x10]
mov dword [esp + 0x28], edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x34], esi
cmp dword [edi + 8], esi
je 0x438b2a
movzx ecx, byte [edi + 0x1a]
sub ecx, 1
mov dword [edi + 8], esi
js 0x438b2a
mov esi, dword [esp + 0x10]
lea edx, [edi + 0x1c]
mov edi, dword [esp + 0x24]
lea edx, [edx + ecx*4]
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 0x438b08
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
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 0x438b45
mov esi, dword [esi + 0x1c]
jmp 0x438b48
mov esi, dword [esi + 0x10]
mov ecx, esi
call dword [0x59a43c]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x4331ee
jle 0x438b85
push dword [edi]
call fcn.0042f9f0
add esp, 4
push eax
push 0x5cc8fc
push dword [esp + 0x20]
call fcn.0042a1a0
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [esp + 0x1c], eax
cmp byte [edi + 0x19], 0
je 0x438bb0
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0x10]
test eax, eax
je 0x438bac
mov ecx, dword [esp + 0x24]
lea eax, [eax + eax*4]
push 0
push 1
lea ecx, [ecx + eax*8]
call fcn.004293e0
add esp, 8
mov byte [edi + 0x19], 0
mov ecx, dword [edi]
call fcn.00428e00
mov eax, dword [edi]
mov ecx, 1
mov edx, dword [esp + 0x1c]
mov word [eax + 0x10], cx
mov dword [edi + 0x14], 0
mov edi, dword [esp + 0x18]
jmp 0x43978d
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x438c87
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x10]
lea edi, [edx + eax*8]
xorps xmm0, xmm0
mov dword [esp + 0x28], ecx
mov eax, 0x9000
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x130], xmm0
test word [edi + 0x10], ax
je 0x438c2a
mov ecx, edi
call fcn.00428d60
mov ecx, dword [esp + 0x28]
jmp 0x438c33
mov eax, 1
mov word [edi + 0x10], ax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], esi
mov esi, dword [ecx + 0x18]
mov ecx, esi
mov dword [esp + 0x120], edi
mov al, byte [eax + 0x54]
mov byte [esp + 0x138], al
lea eax, [esp + 0x120]
push eax
call dword [0x59a43c]
call esi
mov eax, dword [esp + 0x14]
add esp, 4
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x134]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea esi, [ecx + eax*8]
jmp 0x438c93
mov edx, dword [ecx + 0x10]
mov ecx, esi
call fcn.00428ca0
mov edi, eax
mov dword [esp + 0x1c], edi
test edi, edi
jne 0x43a0d1
movzx edx, byte [esp + 0x50]
mov ecx, esi
call fcn.00428950
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x308]
push eax
lea eax, [esp + 0x308]
mov dword [esp + 0x304], 0
push eax
push dword [ecx + 8]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x314], 0xffffffff
mov dword [esp + 0x310], 0xffffffff
call fcn.0049c4d0
mov edx, eax
add esp, 0xc
mov dword [esp + 0x1c], edx
test edx, edx
je 0x438d37
cmp edx, 5
jne 0x436cf1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x300], 1
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea edi, [esi + eax*8]
xor esi, esi
mov eax, dword [esp + esi*4 + 0x300]
mov ecx, edi
cdq
push edx
push eax
call fcn.004293e0
inc esi
add esp, 8
add edi, 0x28
cmp esi, 3
jl 0x438d46
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x58]
lea esi, [eax + ecx*8]
mov eax, 0x9000
mov dword [esp + 0x28], esi
test word [esi + 0x10], ax
je 0x438dae
mov ecx, esi
call fcn.00432a80
mov dword [esp + 0x28], eax
jmp 0x438db7
mov eax, 4
mov word [esi + 0x10], ax
mov eax, dword [esp + 0x10]
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 + 0x34], eax
mov eax, dword [eax + 4]
mov edi, dword [eax]
movzx ecx, byte [edi + 5]
cmove edx, ecx
mov dword [esp + 0x30], ecx
cmp byte [edi + 0x11], 3
jb 0x438def
xor eax, eax
jmp 0x438e0e
mov eax, dword [edi + 0x44]
cmp dword [eax], 0
je 0x438e09
cmp dword [edi + 0x54], 0
jl 0x438e09
jg 0x438e05
cmp dword [edi + 0x50], 0
jbe 0x438e09
xor eax, eax
jmp 0x438e0e
mov eax, 1
test eax, eax
mov esi, ecx
cmovne esi, edx
cmp byte [edi + 0xf], 0
jne 0x438e2b
cmp dword [edi], 0x5ffd88
je 0x438e2b
mov eax, dword [edi + 0xb8]
jmp 0x438e30
mov eax, 0x5d2978
cmp esi, 5
jne 0x438e65
mov ecx, eax
call fcn.00409890
test eax, eax
je 0x438eb5
cmp byte [edi + 0xd], 0
mov eax, dword [edi + 0x40]
mov eax, dword [eax]
jne 0x438eb5
cmp byte [edi + 4], 0
jne 0x438e5c
cmp dword [eax], 2
jl 0x438eb5
cmp dword [eax + 0x34], 0
je 0x438eb5
mov ecx, dword [esp + 0x30]
mov esi, 5
cmp esi, ecx
je 0x438eee
cmp ecx, 5
je 0x438e77
cmp esi, 5
jne 0x438eee
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x55], 0
je 0x43a0f6
cmp dword [eax + 0xc0], 1
jg 0x43a0f6
cmp ecx, 5
jne 0x438ec1
mov edx, eax
mov ecx, edi
call fcn.004183c0
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x438eee
mov edx, esi
mov ecx, edi
call fcn.00418010
jmp 0x438ed8
mov edx, dword [esp + 0x30]
mov esi, edx
mov eax, dword [esp + 0x1c]
jmp 0x438ef6
cmp ecx, 4
jne 0x438ed0
lea edx, [ecx - 2]
mov ecx, edi
call fcn.00418010
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x438ef2
mov ecx, dword [esp + 0x34]
xor edx, edx
cmp esi, 5
sete dl
inc edx
call fcn.004277e0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
test eax, eax
mov ecx, edi
cmove edx, esi
call fcn.00418010
mov esi, dword [esp + 0x28]
mov ecx, 0x2202
mov word [esi + 0x10], cx
cmp eax, 6
jne 0x438f18
xor ecx, ecx
jmp 0x438f1f
mov ecx, dword [eax*4 + 0x5d2fdc]
mov dword [esi + 8], ecx
call fcn.00409890
movzx edx, byte [esp + 0x50]
mov ecx, esi
mov dword [esi + 0xc], eax
mov byte [esi + 0x12], 1
call fcn.00428950
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jmp 0x43978d
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
test eax, eax
je 0x438f5a
lea eax, [eax + eax*4]
lea eax, [esi + eax*8]
jmp 0x438f5c
xor eax, eax
mov edx, dword [esp + 0x14]
push eax
push dword [ecx + 4]
lea ecx, [edi + 0x7c]
call fcn.0047dcc0
add esp, 8
jmp 0x436249
mov ecx, dword [esp + 0x10]
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.0041f370
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
je 0x4396ca
cmp edx, 0x65
jne 0x436cf1
mov dword [esp + 0x1c], 0
jmp 0x4365d9
mov edx, dword [esp + 0x10]
cmp dword [edx + 4], 0
jne 0x438fde
mov edx, dword [edx + 8]
mov ecx, dword [esp + 0x14]
call fcn.0042f140
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x88]
inc eax
xor eax, dword [edi + 0x98]
and eax, 3
xor dword [edi + 0x98], eax
add edx, 0x14
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x88]
mov eax, dword [eax + 0x2c]
or byte [eax + 1], 0x40
add edx, 0x14
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov edx, dword [esp + 0x10]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x88]
mov eax, dword [eax + 0x2c]
and byte [eax + 1], 0xbf
add edx, 0x14
mov eax, dword [esp + 0x20]
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov al, byte [edx + 0xc]
mov byte [esp + 0xa0], al
test al, al
jne 0x439086
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x24]
and eax, 4
xor ecx, ecx
jne 0x432e0b
test eax, eax
jne 0x432e0b
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push dword [esp + 0xa0]
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.004276b0
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
test edx, edx
je 0x433502
cmp dl, 6
jne 0x436cf1
mov eax, dword [esp + 0x10]
push dword [eax + 0x10]
push str.database_table_is_locked:__s
push edi
call fcn.0042a1a0
mov edx, dword [esp + 0x28]
add esp, 0xc
jmp 0x436cf1
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x10]
mov edx, esi
mov ecx, dword [esp + 0x14]
call fcn.0047f890
mov edx, eax
mov dword [esp + 0x1c], edx
test esi, esi
je 0x43978d
mov edx, dword [esi + 8]
mov ecx, edi
call fcn.0042f2b0
jmp 0x439789
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x240]
xorps xmm0, xmm0
movaps xmmword [esp + 0x250], xmm0
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x10]
movaps xmmword [esp + 0x240], xmm0
movq qword [esp + 0x260], xmm0
mov eax, dword [eax + 8]
lea eax, [eax + eax*4]
lea edx, [esi + eax*8]
call fcn.00429630
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x240]
push eax
call fcn.0042f9f0
add esp, 4
test eax, eax
je 0x439188
lea ecx, [edi + 0x7c]
push ecx
mov ecx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
call fcn.0047f210
add esp, 8
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x240]
call fcn.00428e00
mov edx, dword [esp + 0x1c]
jmp 0x43624f
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc dword [eax + 0xcc]
push dword [ecx + 0x10]
mov edx, dword [ecx + 4]
mov ecx, eax
call fcn.0047f610
mov esi, dword [esp + 0x18]
mov edx, eax
add esp, 4
mov dword [esp + 0x1c], edx
dec dword [esi + 0xcc]
test edx, edx
jne 0x436cf5
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x2c], 0
mov eax, dword [ecx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x43a148
mov eax, dword [edi]
mov dword [esp + 0x28], eax
test eax, eax
je 0x43a148
mov esi, dword [eax + 0x18]
lea ecx, [esp + 0x2c]
push ecx
push edi
mov ecx, esi
call dword [0x59a43c]
call esi
mov esi, dword [esp + 0x20]
add esp, 8
mov edx, edi
mov dword [esp + 0x1c], eax
mov ecx, esi
call fcn.0042f2b0
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436ced
mov eax, dword [esp + 0x2c]
mov ecx, esi
push 2
push edx
mov dword [eax], edi
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 4]
call fcn.00432670
add esp, 8
test eax, eax
je 0x43a12b
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x2c], ecx
inc dword [edi + 4]
mov edi, esi
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
push 0
push 8
mov ecx, dword [ecx + 4]
mov edi, dword [eax + ecx*4]
call fcn.004057a0
mov esi, eax
add esp, 8
test esi, esi
je 0x434c5b
mov eax, dword [esp + 0x10]
mov ecx, dword [edi + 0x2c]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
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 0x4392f2
mov ecx, eax
call fcn.00432a80
jmp 0x4392fb
mov ecx, 4
mov word [eax + 0x10], cx
mov ecx, 1
mov edx, esi
mov word [eax + 0x10], cx
mov ecx, eax
push 0x4307c0
push str.ValueList
call fcn.00429420
mov edx, dword [esp + 0x18]
add esp, 8
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x18]
lea edi, [edx + 5]
lea edi, [esi + edi*8]
mov esi, dword [edi]
mov eax, dword [eax + 0x60]
movd xmm0, edi
mov dword [esp + 0x34], edi
pshufd xmm3, xmm0, 0
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx*8]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x5c]
test esi, esi
jle 0x439433
cmp esi, 8
jb 0x43941b
cmp dword [0x606370], 2
jl 0x43941b
movaps xmm2, xmmword [0x5e67c0]
mov eax, esi
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x4393bb
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm1, xmmword [str.____]
mov edi, esi
sub edi, eax
nop word [eax + eax]
movd xmm0, ecx
lea eax, [ecx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4], xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm0, xmm2
pmulld xmm0, xmm1
paddd xmm0, xmm3
paddd xmm0, xmm1
movups xmmword [edx + ecx*4 + 0x10], xmm0
add ecx, 8
cmp ecx, edi
jl 0x4393d0
mov edi, dword [esp + 0x34]
cmp ecx, esi
jge 0x439433
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 0x439428
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
push edx
push esi
push dword [eax + 0x10]
mov esi, dword [esp + 0x34]
push dword [esp + 0x64]
push edi
mov esi, dword [esi + 0x20]
mov ecx, esi
call dword [0x59a43c]
call esi
mov edx, dword [esp + 0x50]
add esp, 0x14
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
call fcn.0042f2b0
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436ced
mov eax, dword [esp + 0x28]
push edi
mov esi, dword [eax + 0x28]
mov ecx, esi
call dword [0x59a43c]
call esi
mov ecx, dword [esp + 0x50]
add esp, 4
mov byte [ecx + 2], 0
test eax, eax
je 0x4331ee
jmp 0x4365d5
mov edx, dword [esp + 0x10]
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 + 0x24]
cmp byte [esi + 2], 0
lea eax, [eax + eax*4]
lea edi, [ecx + eax*8]
jne 0x43357f
test byte [edx + 2], 1
xorps xmm0, xmm0
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x50]
movaps xmmword [esp + 0x1c0], xmm0
movaps xmmword [esp + 0x1d0], xmm0
mov dword [esp + 0x1c0], edi
mov byte [esp + 0x1d8], al
je 0x439516
mov ecx, edi
call fcn.00429330
mov edx, dword [esp + 0x10]
mov eax, 0x401
mov dword [edi], 0
jmp 0x439526
mov ax, word [edi + 0x10]
mov ecx, 0xf241
and ax, cx
or ax, 1
mov word [edi + 0x10], ax
lea eax, [esp + 0x1c0]
push dword [edx + 8]
push eax
push dword [esi + 0x2c]
mov esi, dword [esp + 0x34]
mov esi, dword [esi + 0x2c]
mov ecx, esi
call dword [0x59a43c]
call esi
mov esi, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x34]
mov ecx, esi
mov dword [esp + 0x1c], eax
call fcn.0042f2b0
cmp dword [esp + 0x1d4], 0
jle 0x43958c
push edi
call fcn.0042f9f0
add esp, 4
push eax
push 0x5cc8fc
push esi
call fcn.0042a1a0
mov eax, dword [esp + 0x1e0]
add esp, 0xc
mov dword [esp + 0x1c], eax
movzx edx, byte [esp + 0x50]
mov ecx, edi
call fcn.00428950
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436ced
mov edx, dword [esp + 0x10]
mov edi, esi
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x60]
mov ecx, dword [ecx + 4]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x28], eax
cmp byte [eax + 2], 0
jne 0x432f15
mov eax, dword [eax + 0x2c]
push eax
mov edi, dword [eax]
mov ecx, dword [edi]
mov dword [esp + 0x38], ecx
mov esi, dword [ecx + 0x24]
mov ecx, esi
call dword [0x59a43c]
call esi
add esp, 4
mov dword [esp + 0x1c], eax
mov edx, edi
mov edi, dword [esp + 0x18]
mov ecx, edi
call fcn.0042f2b0
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436cf1
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
push dword [eax + 0x2c]
mov esi, dword [esi + 0x28]
mov ecx, esi
call dword [0x59a43c]
call esi
add esp, 4
test eax, eax
jne 0x43964a
mov ecx, dword [esp + 0x10]
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 + 0x10], edx
mov edx, dword [esp + 0x14]
cmp dword [edx + 0x128], 0
jne 0x43a330
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x88], ecx
jb 0x4396ca
mov eax, dword [esp + 0x6c]
ja 0x439674
cmp dword [esp + 0x20], eax
jb 0x4396ca
mov esi, dword [edx + 0x174]
test esi, esi
je 0x4396ca
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 [0x59a43c]
call esi
add esp, 4
test eax, eax
jne 0x43a152
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x88], ecx
ja 0x439674
jb 0x4396ca
cmp dword [esp + 0x20], eax
jae 0x439674
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
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 + 0x28], ecx
lea eax, [eax + eax*4]
test byte [esi + eax*8 + 0x10], 2
lea esi, [esi + eax*8]
jne 0x439723
mov byte [esi + 0x12], 1
jmp 0x439744
cmp byte [esi + 0x12], 1
je 0x439744
mov dl, 1
mov ecx, esi
call fcn.00409190
mov edx, eax
mov dword [esp + 0x1c], edx
test edx, edx
jne 0x436ced
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
push dword [esi + 8]
push ecx
mov esi, dword [eax + 0x4c]
mov ecx, esi
call dword [0x59a43c]
call esi
add esp, 8
mov dword [esp + 0x1c], eax
test edi, edi
jne 0x439773
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x24]
and dword [ecx + 0x20], 0xfbffffff
mov dword [ecx + 0x24], eax
mov edi, dword [esp + 0x18]
mov ecx, edi
mov edx, dword [esp + 0x28]
call fcn.0042f2b0
and dword [edi + 0x98], 0xfffffffc
mov edx, dword [esp + 0x1c]
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [esp + 0x14]
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
cmp byte [eax + 0x57], 0
jne 0x434c63
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x43a148
mov eax, dword [edi]
mov dword [esp + 0x28], eax
test eax, eax
je 0x43a148
cmp dword [eax + 0x34], 0
mov edx, dword [edx + 8]
je 0x433984
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
mov al, byte [eax + 0x5c]
mov byte [esp + 0x3b], al
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x5c]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*8]
xor eax, eax
test edx, edx
jle 0x43982b
mov dword [esi + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, edx
jl 0x439820
mov eax, dword [esp + 0x10]
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 + 0x30]
push edx
push edi
mov esi, dword [esi + 0x34]
mov ecx, esi
call dword [0x59a43c]
call esi
mov ecx, dword [esp + 0x24]
add esp, 0x10
mov dword [esp + 0x1c], eax
mov edx, edi
mov al, byte [esp + 0x3b]
mov edi, dword [esp + 0x18]
mov byte [ecx + 0x5c], al
mov ecx, edi
call fcn.0042f2b0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test edx, edx
jne 0x4398a1
cmp dword [eax + 4], edx
je 0x4398a1
mov eax, dword [esp + 0x80]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x84]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x10]
cmp dl, 0x13
jne 0x4398f1
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x10], 0
je 0x4398f1
mov eax, dword [esp + 0x10]
movzx eax, word [eax + 2]
cmp eax, 4
jne 0x4398df
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x1c], 0
jmp 0x432c97
cmp eax, 5
jne 0x4398e9
mov eax, 2
mov byte [edi + 0x92], al
jmp 0x4398f9
add dword [edi + 0x28], 1
adc dword [edi + 0x2c], 0
test edx, edx
jne 0x436cf5
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 0x439942
mov ecx, edx
call fcn.00432a80
mov edx, eax
jmp 0x43994b
mov eax, 4
mov word [edx + 0x10], ax
mov eax, dword [esp + 0x10]
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 + 0x88]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x30]
mov dword [edx], eax
mov eax, dword [esp + 0x20]
mov dword [edx + 4], 0
mov edx, dword [esp + 0x10]
add edx, 0x14
jmp 0x432c97
mov ecx, dword [esp + 0x10]
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 + 0x28], edx
test word [edx + 0x10], ax
je 0x4399b1
mov ecx, edx
call fcn.00432a80
mov dword [esp + 0x28], eax
jmp 0x4399ba
mov eax, 4
mov word [edx + 0x10], ax
mov edx, dword [esp + 0x10]
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 0x4399e2
mov eax, dword [esi + 4]
mov edi, dword [eax + 0x30]
cmp edi, ecx
cmovb edi, ecx
cmp byte [esi + 9], 0
je 0x4399f8
inc dword [esi + 0xc]
cmp byte [esi + 0xa], 0
jne 0x4399f8
mov ecx, esi
call fcn.0041b710
mov eax, dword [esi + 4]
mov eax, dword [eax]
test edi, edi
je 0x439a07
mov dword [eax + 0xa0], edi
cmp byte [esi + 9], 0
mov edi, dword [eax + 0xa0]
je 0x439a20
add dword [esi + 0xc], 0xffffffff
jne 0x439a20
mov ecx, esi
call fcn.0041b6a0
mov eax, dword [esp + 0x28]
mov dword [eax], edi
mov dword [eax + 4], 0
jmp 0x4331ee
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 0x10]
mov dword [esp + 0x34], edi
lea eax, [eax + eax*4]
lea esi, [esi + eax*8]
mov dword [esp + 0x28], esi
cmp dword [edi], esi
je 0x439a93
mov eax, dword [esp + 0x18]
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 0x439a93
mov esi, dword [esp + 0x10]
lea edx, [edi + 0x1c]
mov edi, dword [esp + 0x24]
lea edx, [edx + ecx*4]
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 0x439a75
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x28]
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 [0x59a43c]
call esi
mov eax, dword [edi + 0x14]
add esp, 0xc
test eax, eax
je 0x4331ee
jle 0x439af6
push dword [esp + 0x28]
call fcn.0042f9f0
add esp, 4
push eax
push 0x5cc8fc
push dword [esp + 0x20]
call fcn.0042a1a0
mov eax, dword [edi + 0x14]
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push dword [eax + 4]
lea edx, [edx + 0xe4]
push dword [edi + 0x10]
call fcn.0042d630
mov edx, dword [esp + 0x24]
add esp, 8
mov dword [edi + 0x14], 0
mov edi, dword [esp + 0x18]
test edx, edx
jne 0x436cf1
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
add edx, 0x14
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov edx, dword [esp + 0x10]
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 + 0x20]
add edx, 0x14
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
mov dword [esp + 0x28], edi
call fcn.00432ac0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.00589cf0
mov ecx, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0x24]
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 0x4331ee
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov eax, dword [ecx + 4]
mov ecx, esi
lea edi, [eax + eax*4]
mov dword [esp + 0x28], edi
call fcn.00432ac0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edi*8 + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.00589cf0
mov ecx, dword [esp + 0x28]
mov edi, eax
mov eax, dword [esp + 0x24]
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 + 0x18]
shl eax, cl
test eax, edx
mov edx, dword [esp + 0x10]
jne 0x439c33
inc dword [edi + 0xc4]
jmp 0x4365dd
inc dword [edi + 0xc0]
add edx, 0x14
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x88]
jmp 0x432c97
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x5e]
test cl, 0x41
je 0x439d3a
cmp byte [edi + 0x93], 0xfe
je 0x439d3a
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x439c86
mov eax, dword [edi + 0xc8]
test eax, eax
je 0x439d3a
test cl, 0x40
je 0x439cc3
mov edx, eax
mov ecx, edi
call fcn.004321c0
mov edi, eax
mov eax, dword [esp + 0x14]
push edi
mov esi, dword [eax + 0xd8]
mov ecx, esi
push dword [eax + 0xdc]
call dword [0x59a43c]
call esi
push edi
call fcn.004058e0
add esp, 0xc
mov edi, dword [esp + 0x18]
jmp 0x439d36
mov ecx, dword [esp + 0x14]
push eax
cmp dword [ecx + 0xc8], 1
jle 0x439d1a
push str.____s
push ecx
call fcn.004087c0
add esp, 0xc
mov edi, eax
mov eax, dword [esp + 0x14]
push edi
push dword [esp + 0x1c]
mov esi, dword [eax + 0xd8]
mov ecx, esi
push dword [eax + 0xdc]
push 1
call dword [0x59a43c]
call esi
add esp, 0x10
test edi, edi
je 0x439cba
mov ecx, dword [esp + 0x14]
mov edx, edi
call fcn.004059a0
mov edi, dword [esp + 0x18]
jmp 0x439d36
mov esi, dword [ecx + 0xd8]
push edi
push dword [ecx + 0xdc]
mov ecx, esi
push 1
call dword [0x59a43c]
call esi
add esp, 0x10
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 4]
cmp eax, dword [0x600b34]
jl 0x439d8a
cmp byte [edx], 0xb5
je 0x432e0b
mov edx, 1
cmp dword [edi + 0x6c], edx
jle 0x439d7f
mov eax, 0x14
mov ecx, dword [edi + 0x68]
cmp byte [eax + ecx], 0xf
jne 0x439d76
mov dword [eax + ecx + 4], 0
inc edx
add eax, 0x14
cmp edx, dword [edi + 0x6c]
jl 0x439d65
mov edx, dword [esp + 0x10]
mov dword [edx + 4], 0
inc dword [edx + 4]
inc dword [edi + 0xbc]
jmp 0x4365dd
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x88]
add edx, 0x14
jmp 0x432c97
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov dword [edi + 0x24], ecx
mov al, byte [edx + 8]
mov byte [edi + 0x92], al
test ecx, ecx
je 0x439e4f
movzx eax, word [edx + 2]
test ax, ax
je 0x439e09
push dword [eax*4 + 0x5d2830]
push str._s_constraint_failed
push edi
call fcn.0042a1a0
mov esi, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esi + 0x10]
test eax, eax
je 0x439e1e
push eax
push dword [edi + 0x7c]
push str._z:__s
push dword [esp + 0x20]
call fcn.004087c0
add esp, 0x10
mov dword [edi + 0x7c], eax
jmp 0x439e1e
push dword [edx + 0x10]
push 0x5cc8fc
push edi
call fcn.0042a1a0
mov esi, dword [esp + 0x1c]
add esp, 0xc
push dword [edi + 0x7c]
mov ecx, esi
mov eax, 0x66666667
sub ecx, dword [esp + 0x58]
push dword [edi + 0xc8]
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 [esi + 4]
call fcn.00408a80
add esp, 0x14
mov ecx, edi
call fcn.0042d110
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
cmp eax, 5
jne 0x439e6b
mov dword [edi + 0x24], eax
jmp 0x43a520
cmp dword [edi + 0x24], 0
mov eax, 0x65
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x43a520
mov ecx, 0x16e90
call fcn.0049dc10
mov edx, eax
jmp 0x436ce9
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x58]
add ecx, ecx
mov edi, dword [esp + 0x18]
mov eax, dword [edx + ecx*8]
push eax
mov eax, dword [esp + 0x2c]
push dword [eax]
mov eax, dword [edx + ecx*8 + 4]
shr eax, 4
and eax, 0xf
push dword [eax*4 + 0x600a0c]
movzx eax, word [esi + 0x10]
and eax, 0x3f
movzx eax, byte [eax + 0x5d6ed0]
push dword [eax*4 + 0x5d5be4]
push str.cannot_store__s_value_in__s_column__s._s
push edi
call fcn.0042a1a0
mov edx, 0xc13
add esp, 0x18
mov dword [esp + 0x1c], edx
jmp 0x436cf1
push str.cannot_open_savepoint___SQL_statements_in_progress
push edi
call fcn.0042a1a0
mov edx, 5
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov edi, dword [esp + 0x18]
push str.cannot_release_savepoint___SQL_statements_in_progress
jmp 0x439ef5
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x18]
imul ecx
mov dword [esp + 0x1c], 5
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [edi + 0x20], eax
mov byte [edx + 0x55], 0
mov dword [edi + 0x24], 5
jmp 0x43a520
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0x65
jmp 0x43a520
mov edi, dword [esp + 0x18]
push eax
push str.no_such_savepoint:__s
push edi
call fcn.0042a1a0
mov edx, 1
add esp, 0xc
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x14]
mov eax, dword [eax + 0x20]
and eax, 0x100000
or eax, 0
je 0x439fa8
mov edx, 8
mov dword [esp + 0x1c], edx
jmp 0x436cf5
mov edx, 0xb
mov dword [esp + 0x1c], edx
jmp 0x436cf5
mov edi, dword [esp + 0x18]
cmp dl, 5
jne 0x436cf1
mov ecx, dword [esp + 0x10]
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 eax, dword [esp + 0x1c]
mov dword [edi + 0x24], eax
jmp 0x43a520
mov edx, 0x204
mov dword [esp + 0x1c], edx
jmp 0x436cf5
mov edi, dword [esp + 0x18]
push str.string_or_blob_too_big
push edi
call fcn.0042a1a0
mov edx, 0x12
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x436cf1
push 0x5d22ac
push 0x17b87
push str.index_corruption
push str._s_at_line__d_of___.10s_
push 0x30b
call fcn.00408a80
add esp, 0x14
mov edx, 0x30b
jmp 0x436ce9
mov ecx, 0x17c54
call fcn.0049dc10
mov edx, eax
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov edi, dword [esp + 0x18]
mov edx, 6
mov dword [esp + 0x1c], edx
mov byte [edi + 0x92], 2
jmp 0x436cf5
mov dword [esp + 0x1c], 7
mov ecx, dword [esp + 0x14]
call fcn.00451400
mov edx, dword [esp + 0x1c]
cmp edx, 7
je 0x434c5f
jmp 0x436cf1
push dword [esp + 0x8c]
call fcn.004058e0
mov edx, dword [esp + 0x20]
add esp, 4
jmp 0x436ced
push str.too_many_levels_of_trigger_recursion
push edi
mov dword [esp + 0x24], 1
call fcn.0042a1a0
add esp, 8
mov edx, 1
jmp 0x436cf1
push esi
call fcn.0042f9f0
mov edi, dword [esp + 0x1c]
add esp, 4
push eax
push 0x5cc8fc
push edi
call fcn.0042a1a0
mov edx, dword [esp + 0x28]
add esp, 0xc
jmp 0x436cf1
mov edi, dword [esp + 0x18]
mov ecx, str.out_of
cmp esi, 5
mov dword [esp + 0x1c], 1
mov eax, str.into
cmovne eax, ecx
push eax
push str.cannot_change__s_wal_mode_from_within_a_transaction
push edi
call fcn.0042a1a0
add esp, 0xc
mov edx, 1
jmp 0x436cf1
mov esi, dword [esp + 0x28]
push dword [esp + 0x2c]
mov esi, dword [esi + 0x1c]
mov ecx, esi
call dword [0x59a43c]
call esi
add esp, 4
jmp 0x434c5b
mov edx, 6
jmp 0x436ce9
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov eax, dword [edi + 0x1c]
add eax, 2
or eax, 1
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x10]
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 0x434c63
test byte [eax + 0x5e], 4
je 0x43a1bc
mov esi, dword [eax + 0xd8]
mov ecx, esi
push 0
push edi
push dword [eax + 0xdc]
push 4
call dword [0x59a43c]
call esi
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
imul ecx
mov dword [esp + 0x1c], 0x64
sar edx, 3
mov eax, edx
inc edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x20], eax
mov edx, dword [esp + 0x14]
jmp 0x43a520
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 4]
mov esi, dword [edx + 8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x8c], ecx
movzx eax, byte [edx + 0x55]
cmp ecx, eax
je 0x43a2cf
test esi, esi
je 0x43a225
mov esi, dword [esp + 0x14]
mov edx, 0x204
mov ecx, esi
call fcn.0049b450
mov byte [esi + 0x55], 1
jmp 0x43a25e
test ecx, ecx
je 0x43a23c
cmp dword [edx + 0xc4], 0
jle 0x43a23c
push str.cannot_commit_transaction___SQL_statements_in_progress
jmp 0x439ef5
mov edx, 1
mov ecx, edi
call fcn.0042d0a0
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x43a1e1
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x8c]
mov byte [esi + 0x55], al
mov ecx, edi
call fcn.0042d110
cmp eax, 5
jne 0x43a2aa
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
imul ecx
mov dword [esp + 0x1c], 5
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 + 0x8c]
mov byte [edx + 0x55], al
mov dword [edi + 0x24], 5
jmp 0x43a520
mov ecx, esi
call fcn.0049ac90
cmp dword [edi + 0x24], 0
mov eax, 0x65
mov edx, dword [esp + 0x14]
mov ecx, 1
cmovne eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x43a520
test ecx, ecx
jne 0x43a2f0
mov eax, str.cannot_start_a_transaction_within_a_transaction
push eax
push edi
call fcn.0042a1a0
mov edx, 1
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x436cf1
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.0042a1a0
mov edx, 1
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
mov edx, 9
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
jmp 0x434c5f
cmp edx, 0x210a
jne 0x43a38b
push 0x5d22ac
push 0x184e6
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00408a80
add esp, 0x14
mov edx, 0xb
mov dword [esp + 0x1c], edx
cmp dword [edi + 0x7c], 0
jne 0x43a3ea
cmp edx, 0xc0a
je 0x43a3ea
mov eax, edx
mov ecx, str.unknown_error
sub eax, 0x64
je 0x43a3d6
sub eax, 1
je 0x43a3cf
sub eax, 0x19f
je 0x43a3c8
movzx eax, dl
cmp eax, 0x1d
jae 0x43a3db
mov eax, dword [eax*4 + 0x5d2360]
test eax, eax
je 0x43a3db
mov ecx, eax
jmp 0x43a3db
mov ecx, str.abort_due_to_ROLLBACK
jmp 0x43a3db
mov ecx, str.no_more_rows_available
jmp 0x43a3db
mov ecx, str.another_row_available
push ecx
push 0x5cc8fc
push edi
call fcn.0042a1a0
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x24], eax
cmp eax, 0xc0a
je 0x43a42f
movzx eax, al
cmp eax, 0xe
je 0x43a405
cmp eax, 0xa
jne 0x43a42f
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov esi, dword [eax + 0x44]
test esi, esi
je 0x43a426
push 0
push 0
push eax
mov ecx, esi
call dword [0x59a43c]
call esi
add esp, 0xc
jmp 0x43a428
xor eax, eax
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x4c], eax
mov ecx, dword [esp + 0x10]
mov eax, 0x66666667
sub ecx, dword [esp + 0x54]
push dword [edi + 0x7c]
mov esi, dword [esp + 0x20]
push dword [edi + 0xc8]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.statement_aborts_at__d:___s___s
push esi
call fcn.00408a80
add esp, 0x14
cmp byte [edi + 0x95], 2
jne 0x43a474
mov ecx, edi
call fcn.0042d110
cmp esi, 0xc0a
jne 0x43a4fa
mov ecx, dword [esp + 0x14]
call fcn.004060e0
mov edx, dword [esp + 0x14]
mov al, byte [esp + 0x6b]
mov dword [esp + 0x1c], 1
test al, al
je 0x43a520
movzx ecx, al
sub ecx, 1
js 0x43a4c6
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 0x43a520
xor edi, edi
cmp dword [edx + 0x14], edi
jle 0x43a51c
xor esi, esi
mov eax, dword [edx + 0x10]
mov eax, dword [eax + esi + 0xc]
test byte [eax + 0x4e], 8
je 0x43a4ef
push eax
call fcn.004587f0
mov edx, dword [esp + 0x18]
add esp, 4
inc edi
add esi, 0x10
cmp edi, dword [edx + 0x14]
jl 0x43a4d5
jmp 0x43a51c
cmp esi, 0xb
jne 0x43a489
mov edx, dword [esp + 0x14]
cmp byte [edx + 0x55], 0
jne 0x43a48d
mov eax, dword [edx + 0x20]
or dword [edx + 0x24], 2
mov dword [edx + 0x20], eax
jmp 0x43a48d
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x88], ecx
jb 0x43a58e
mov eax, dword [esp + 0x6c]
ja 0x43a539
cmp dword [esp + 0x20], eax
jb 0x43a58e
mov esi, dword [edx + 0x174]
test esi, esi
je 0x43a58e
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 [0x59a43c]
call esi
mov edx, dword [esp + 0x18]
add esp, 4
test eax, eax
je 0x43a520
or ecx, 0xffffffff
mov edx, 9
or eax, 0xffffffff
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x1c], edx
jmp 0x436cf1
mov eax, dword [esp + 0x20]
add dword [edi + 0xb4], eax
cmp dword [edi + 0xa0], 0
je 0x43a5a8
mov ecx, edi
call fcn.0042b9a0
mov ecx, dword [esp + 0x30c]
mov eax, dword [esp + 0x1c]
pop edi
pop esi
xor ecx, esp
call fcn.00533fc6
mov esp, ebp
pop ebp
ret