Function at 0x434f70
Capabilities:
Encrypt data using speck
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x110
mov eax, dword [0x5599f4]
mov edi, dword [ebp + 8]
xor eax, ebp
lea esi, [edi + 1]
mov dword [esp + 0x108], eax
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xc], edi
jmp 0x434fb1
inc esi
movzx ecx, byte [esi - 1]
movsx eax, cl
lea edx, [eax - 9]
cmp edx, 5
jb 0x434fb0
cmp eax, 0x2a
jg 0x434fd4
cmp eax, 0x20
je 0x434fb0
test eax, eax
je case.0x4355c2.74
jmp 0x434ff2
cmp eax, 0x2d
je 0x434fe2
cmp eax, 0x2b
jne 0x434ff2
xor ebx, ebx
jmp 0x434fe7
mov ebx, 1
mov cl, byte [esi]
test cl, cl
jne 0x434ff5
jmp case.0x4355c2.74
dec esi
xor ebx, ebx
xor edx, edx
cmp cl, 0x30
jne 0x43501d
mov edi, dword [ebp + 0xc]
nop
movzx ecx, byte [esi + 1]
inc esi
cmp cl, 0x30
je 0x435000
test cl, cl
jne 0x435027
mov eax, esi
test edi, edi
jne 0x4354ca
jmp 0x4354cc
mov dword [esp + 0x1c], 0
jmp 0x43502f
mov dword [esp + 0x1c], 1
movsx eax, cl
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x10], eax
mov ah, cl
add ah, 0xd0
cmp ah, 9
ja 0x4350d3
xor ebx, ebx
xor edi, edi
xor edx, edx
nop word cs:[eax + eax]
cmp edx, 8
ja 0x435080
mov ecx, dword [esp + 0x10]
lea eax, [edi + edi*4]
lea edi, [ecx + eax*2 - 0x30]
jmp 0x435090
cmp edx, 0x10
ja 0x435090
mov ecx, dword [esp + 0x10]
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*2 - 0x30]
movzx ecx, byte [esi + edx + 1]
inc edx
movsx eax, cl
mov dword [esp + 0x10], eax
mov ah, cl
add ah, 0xd0
cmp ah, 0xa
jb 0x435060
mov eax, esi
lea esi, [eax + edx]
cmp esi, eax
jbe 0x4350e3
mov eax, esi
mov dword [esp + 4], 0
nop word [eax + eax]
cmp byte [eax - 1], 0x30
jne 0x4350eb
dec eax
inc dword [esp + 4]
cmp eax, dword [esp + 0x30]
ja 0x4350c0
jmp 0x4350eb
mov eax, esi
xor ebx, ebx
xor edi, edi
mov dword [esp + 4], 0
jmp 0x4350ed
mov dword [esp + 4], 0
mov eax, esi
cmp cl, 0x2e
mov dword [esp + 0x48], 0
jne 0x43513c
lea eax, [esi + 1]
mov dword [esp + 8], edx
movsx edx, byte [esi + 1]
mov dword [esp + 0x24], esi
mov esi, eax
sub esi, dword [esp + 0x30]
mov ecx, esi
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 8]
sub esi, ecx
test ecx, ecx
mov dword [esp + 0x44], esi
je 0x435167
mov dword [esp + 0x28], ecx
mov esi, ecx
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov dword [esp + 0x20], 0
jmp 0x4351ed
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x30]
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [esp + 0x44], 0
mov dword [esp + 0x5c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], 0
jmp 0x4352ce
cmp dl, 0x30
mov dword [esp + 0x54], 0
mov dword [esp + 0x10], edx
jne 0x43519b
xor esi, esi
mov edx, ecx
nop dword [eax]
mov ecx, dword [esp + 0x24]
movsx ecx, byte [ecx + esi + 2]
inc esi
cmp ecx, 0x30
je 0x435180
add eax, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x3c], eax
jmp 0x4351a3
mov dword [esp + 0x3c], eax
xor esi, esi
mov edx, ecx
mov eax, dword [esp + 0x10]
lea eax, [eax - 0x31]
cmp eax, 8
mov eax, dword [esp + 0x30]
ja 0x4351e0
mov edx, eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x20], esi
xor esi, esi
mov dword [esp + 0x24], 0
sub edx, eax
lea ecx, [edx + ecx]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
jmp 0x435201
mov dword [esp + 0x24], 0
jmp 0x43515a
mov dword [esp + 0x3c], eax
lea eax, [edx - 0x30]
cmp eax, 9
mov eax, dword [esp + 0x30]
ja 0x4352b4
mov dword [esp + 0x30], eax
lea eax, [ecx + 1]
add edx, 0xffffffd0
mov dword [esp + 8], esi
je 0x435273
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], edx
cmp eax, 9
setl dl
test ecx, ecx
jle 0x43527b
lea esi, [eax + ecx]
mov dword [esp + 4], esi
nop
lea esi, [eax + 1]
test dl, 1
je 0x435240
add edi, edi
lea edi, [edi + edi*4]
jmp 0x43524c
lea edx, [ebx + ebx]
cmp eax, 0x11
lea edx, [edx + edx*4]
cmovl ebx, edx
cmp esi, 9
mov eax, esi
setl dl
dec ecx
jne 0x435230
mov edx, dword [esp + 4]
cmp esi, 9
lea eax, [edx + 1]
mov esi, eax
jge 0x435285
mov ecx, dword [esp + 0x10]
lea eax, [edi + edi*4]
lea edi, [ecx + eax*2]
xor ecx, ecx
jmp 0x435296
mov esi, dword [esp + 0x24]
mov ecx, eax
jmp 0x43529e
lea esi, [eax + 1]
cmp eax, 8
mov edx, eax
jle 0x435265
xor ecx, ecx
cmp edx, 0x10
jg 0x435296
mov edx, dword [esp + 0x10]
lea eax, [ebx + ebx*4]
lea ebx, [edx + eax*2]
mov dword [esp + 4], 0
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 8]
movsx edx, byte [eax + 1]
inc eax
jmp 0x4351ed
mov dword [esp + 0x54], esi
mov esi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, esi
mov esi, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
or ecx, 0x20
cmp ecx, 0x65
jne 0x43531f
mov eax, esi
or eax, dword [esp + 0x1c]
or eax, dword [esp + 0x24]
je case.0x4355c2.74
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
movsx ecx, byte [eax + 1]
cmp ecx, 0x2b
je 0x435316
mov edx, ecx
cmp ecx, 0x2d
jne 0x43532c
mov dword [esp + 0xc], 1
movsx edx, byte [eax + 2]
lea ecx, [eax + 2]
jmp 0x43532f
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], esi
jmp 0x43540e
lea ecx, [eax + 1]
lea eax, [edx - 0x30]
mov dword [esp + 0x48], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], esi
cmp eax, 9
ja 0x4353f6
cmp edx, 0x30
jne 0x43535e
movsx eax, byte [ecx + 1]
inc ecx
cmp eax, 0x30
je 0x435350
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
lea eax, [edx - 0x31]
cmp eax, 8
ja 0x435400
movsx eax, byte [ecx + 1]
add edx, 0xffffffd0
lea esi, [ecx + 1]
mov dword [esp + 0x10], edx
mov edx, eax
add al, 0xd0
cmp al, 9
ja 0x4353b3
nop word cs:[eax + eax]
mov eax, dword [esp + 0x10]
cmp eax, 0xcccccca
jg 0x4353a6
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
mov dword [esp + 0x10], eax
movsx eax, byte [esi + 1]
inc esi
mov edx, eax
add al, 0xd0
cmp al, 0xa
jb 0x435390
mov eax, esi
sub eax, ecx
mov ecx, dword [esp + 0x10]
cmp eax, 8
mov eax, 0x4e1f
cmovg ecx, eax
cmp dword [esp + 0x10], 0x4e1f
mov eax, 0x4e1f
mov dword [esp + 0x10], edx
cmovg ecx, eax
mov eax, ecx
neg eax
cmp dword [esp + 0xc], 0
cmove eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, esi
jmp 0x43540a
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
jmp 0x43540a
mov eax, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov eax, ecx
mov edx, dword [esp + 8]
mov esi, dword [esp + 0x24]
test esi, esi
je 0x4354a4
mov ecx, dword [esp + 0x54]
movq xmm2, qword [0x50fc68]
movd xmm0, edi
mov dword [esp + 8], edx
mov edx, 0x11
test ecx, ecx
por xmm0, xmm2
cmove ecx, esi
cmp esi, 0x12
subsd xmm0, xmm2
cmovl edx, esi
mov dword [esp + 0x54], ecx
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xc8], xmm0
cmp edx, 0xa
jl 0x43550e
mulsd xmm0, qword [edx*8 + 0x511490]
movd xmm1, ebx
por xmm1, xmm2
subsd xmm1, xmm2
addsd xmm0, xmm1
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xc0], xmm0
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0xc4]
jmp 0x435520
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x1c]
jne 0x4356c5
cmp dword [esp + 0x44], 0
je 0x4355b0
mov eax, dword [esp + 0xc]
mov edi, dword [ebp + 0xc]
xor ebx, ebx
test edi, edi
je 0x4354cc
mov dword [edi], eax
movsd xmm0, qword [esp + 0xf0]
test ebx, ebx
je 0x4354e0
xorps xmm0, xmmword [0x511450]
movsd qword [esp + 0xd0], xmm0
fld qword [esp + 0xd0]
fstp xword [esp + 0x10]
mov ecx, dword [esp + 0x108]
xor ecx, ebp
call fcn.004d4bc8
fld xword [esp + 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0xcc]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
sub ebx, dword [esp + 0x28]
cmp dword [esp + 0x24], 0xf
jg 0x4356d9
fnstcw word [esp + 0x74]
movzx eax, word [esp + 0x74]
mov ecx, eax
shr eax, 0xb
shr ecx, 9
and eax, 1
and ecx, 2
lea eax, [eax + ecx + 1]
and eax, 3
cmp eax, 1
mov eax, dword [esp + 0x3c]
jne 0x4356d9
mov ecx, ebx
test ebx, ebx
je 0x4356c5
jle 0x4356a3
mov ebx, ecx
cmp ebx, 0x16
jle 0x4355a2
mov eax, 0x25
sub eax, dword [esp + 0x24]
cmp ebx, eax
jg 0x4356d9
mov eax, 0xf
sub eax, dword [esp + 0x24]
sub ebx, eax
mulsd xmm0, qword [eax*8 + 0x5114d8]
mov eax, dword [esp + 0x3c]
mulsd xmm0, qword [ebx*8 + 0x5114d8]
jmp 0x4356bc
mov ecx, dword [esp + 0x10]
add ecx, 0xffffffb7
cmp ecx, 0x25
ja case.0x4355c2.74
mov esi, eax
jmp dword [ecx*4 + 0x5116ec]
mov edi, esi
movsx eax, byte [edi + 1]
mov ecx, eax
lea edx, [eax + 0x20]
add cl, 0xbf
cmp cl, 0x1a
cmovae edx, eax
cmp edx, 0x6e
jne case.0x4355c2.74
movsx eax, byte [edi + 2]
mov ecx, eax
lea edx, [eax + 0x20]
add cl, 0xbf
cmp cl, 0x1a
cmovae edx, eax
cmp edx, 0x66
jne case.0x4355c2.74
mov eax, esi
lea ecx, [eax + 3]
mov dword [esp + 0x10], ecx
movsx ecx, byte [eax + 3]
mov edx, ecx
lea esi, [ecx + 0x20]
add dl, 0xbf
cmp dl, 0x1a
cmovae esi, ecx
cmp esi, 0x69
jne 0x438aec
movsx ecx, byte [eax + 4]
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
mov edx, ecx
lea esi, [ecx + 0x20]
add dl, 0xbf
cmp dl, 0x1a
cmovae esi, ecx
cmp esi, 0x6e
jne 0x438af3
movsx ecx, byte [eax + 5]
mov edx, ecx
lea esi, [ecx + 0x20]
add dl, 0xbf
cmp dl, 0x1a
cmovae esi, ecx
cmp esi, 0x69
jne 0x438af3
movsx ecx, byte [eax + 6]
mov edx, ecx
lea esi, [ecx + 0x20]
add dl, 0xbf
cmp dl, 0x1a
cmovae esi, ecx
cmp esi, 0x74
jne 0x438af3
movsx ecx, byte [eax + 7]
mov edx, ecx
lea esi, [ecx + 0x20]
add dl, 0xbf
cmp dl, 0x1a
mov edx, dword [esp + 0x10]
cmovae esi, ecx
add eax, 8
cmp esi, 0x79
cmove edx, eax
mov eax, edx
jmp 0x438af7
mov ebx, ecx
cmp ebx, 0xffffffea
jl 0x4356d9
shl ebx, 3
mov eax, 0x5114d8
sub eax, ebx
divsd xmm0, qword [eax]
mov eax, dword [esp + 0x3c]
movsd qword [esp + 0xf0], xmm0
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
test edi, edi
jne 0x4354ca
jmp 0x4354cc
mov ecx, dword [esp + 0x24]
sub ecx, edx
mov edx, ebx
add ecx, ebx
jle 0x435745
mov eax, ecx
and eax, 0xf
je 0x43570e
mulsd xmm0, qword [eax*8 + 0x5114d8]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xe8], xmm0
mov esi, dword [esp + 0xec]
mov eax, ecx
and eax, 0xfffffff0
je 0x435794
cmp eax, 0x135
jl 0x4357a1
mov ebx, dword [esp + 0x2c]
xor edx, edx
xor esi, esi
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
jmp 0x438c93
test ecx, ecx
mov dword [esp + 0x4c], 0
jns 0x435a7d
mov eax, ecx
neg eax
mov dword [esp + 0x34], eax
and eax, 0xf
je 0x435881
divsd xmm0, qword [eax*8 + 0x5114d8]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xb8], xmm0
mov ebx, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
jmp 0x435885
mov dword [esp + 0x4c], 0
jmp 0x435a7d
cmp ecx, 0x20
mov dword [esp + 0x20], 0
mov dword [esp + 0x68], edx
jb 0x4357f5
shr ecx, 4
xor eax, eax
nop word [eax + eax]
test cl, 1
je 0x4357e7
mulsd xmm0, qword [eax*8 + 0x511590]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xe0], xmm0
mov esi, dword [esp + 0xe4]
mov edx, ecx
inc eax
shr edx, 1
cmp ecx, 3
mov ecx, edx
ja 0x4357c0
jmp 0x4357f7
xor eax, eax
movsd xmm0, qword [eax*8 + 0x511590]
add esi, 0xfcb00000
mov edx, 0
mov dword [esp + 0xf4], esi
mov esi, 0
mulsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xd8], xmm0
mov eax, dword [esp + 0xdc]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], 0
mov ecx, eax
and ecx, 0x7ff00000
cmp ecx, 0x7ca00000
ja 0x438c93
cmp ecx, 0x7c900001
jb 0x4358c1
mov dword [esp + 0xf4], 0x7fefffff
mov dword [esp + 0xf0], 0xffffffff
jmp 0x4358cd
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
sar eax, 4
je 0x435a7d
cmp ecx, 0xfffffe01
mov dword [esp + 0x20], 0
jge 0x4358de
xor esi, esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
jmp 0x437c04
add eax, 0x3500000
mov dword [esp + 0xf4], eax
mov edx, dword [esp + 0x68]
mov dword [esp + 0x4c], 0
jmp 0x435a7d
cmp ecx, 0xfffffff0
jg 0x435919
mov ecx, 0x5115b8
test al, 1
je 0x435910
mulsd xmm0, qword [ecx]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0xb0], xmm0
mov ebx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
shr eax, 1
add ecx, 8
test eax, eax
jne 0x4358e8
mov eax, dword [esp + 0x34]
test ah, 1
je 0x435a32
mov eax, esi
mov ecx, 0x6b
shr eax, 0x14
and eax, 0x7ff
sub ecx, eax
jle 0x435a32
cmp ecx, 0x20
jl 0x435a22
cmp ecx, 0x36
jg 0x4358a2
cmp ecx, 0x35
mov dword [esp + 0xf0], 0
jl 0x4391d7
mov dword [esp + 0xf4], 0x3700000
jmp 0x435a32
mov edi, esi
movsx eax, byte [edi + 1]
mov ecx, eax
lea edx, [eax + 0x20]
add cl, 0xbf
cmp cl, 0x1a
cmovae edx, eax
cmp edx, 0x61
jne case.0x4355c2.74
movsx eax, byte [edi + 2]
mov ecx, eax
lea edx, [eax + 0x20]
add cl, 0xbf
cmp cl, 0x1a
cmovae edx, eax
cmp edx, 0x6e
jne case.0x4355c2.74
mov eax, esi
mov dword [esp + 0xf4], 0x7ff80000
mov dword [esp + 0xf0], 0
cmp byte [eax + 3], 0x28
lea ecx, [eax + 3]
jne 0x438b1a
mov edi, dword [ebp + 0xc]
add eax, 5
mov dword [esp + 0x24], ecx
mov ecx, eax
movzx eax, byte [ecx - 1]
inc ecx
dec al
cmp al, 0x20
mov eax, ecx
jb 0x4359da
mov bl, byte [eax - 2]
lea ecx, [eax - 2]
cmp bl, 0x30
jne 0x435a07
mov edx, eax
mov al, byte [edx - 1]
or al, 0x20
cmp al, 0x78
jne 0x439244
mov bl, byte [edx]
mov ecx, edx
test bl, bl
jne 0x439246
mov ecx, dword [esp + 0x24]
xor esi, esi
mov dword [esp + 0x30], 0
jmp 0x4392dd
mov eax, 0xffffffff
shl eax, cl
and ebx, eax
mov dword [esp + 0xf0], ebx
movsd xmm0, qword [esp + 0xf0]
mov ebx, dword [esp + 0x2c]
xorpd xmm1, xmm1
mov esi, 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
ucomisd xmm0, xmm1
jne 0x435a6c
jnp 0x438c20
mov eax, dword [esp + 0x34]
shl eax, 0x17
sar eax, 0x1f
and eax, 0x6a
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x68], edx
cmp eax, 0x29
jl 0x435b32
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x54], 0x12
mov ecx, 0x12
mov edx, 0x13
lea eax, [eax + 0x12]
cmovl ecx, eax
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
nop word cs:[eax + eax]
cmp ecx, dword [esp + 8]
mov ebx, edx
lea edx, [ecx - 1]
mov esi, edx
cmovg esi, dword [esp + 0x10]
cmp ecx, eax
mov ecx, dword [esp + 0x30]
cmovg esi, edx
mov edx, ebx
dec edx
cmp byte [ecx + esi], 0x30
mov ecx, esi
je 0x435ac0
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x24]
sub eax, dword [esp + 0x28]
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
cmp eax, edx
cmovg eax, edx
cmp edx, 8
mov dword [esp + 0x20], eax
jg 0x435b46
mov esi, dword [esp + 0x30]
test eax, eax
mov dword [esp + 0x28], edx
jle 0x435b4c
mov ebx, dword [esp + 0x20]
xor edi, edi
xor eax, eax
nop dword [eax]
movsx edx, byte [esi + eax]
lea ecx, [edi + edi*4]
inc eax
cmp eax, ebx
lea edi, [edx + ecx*2 - 0x30]
jl 0x435b20
jmp 0x435b50
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], edx
mov edx, eax
mov dword [esp + 0x20], ecx
jmp 0x435b8a
mov esi, dword [esp + 0x30]
jmp 0x435b8a
xor ebx, ebx
xor edi, edi
mov ecx, dword [esp + 0x28]
cmp ebx, ecx
jge 0x435b88
mov eax, dword [esp + 0x5c]
sub ecx, ebx
lea eax, [esi + eax]
nop word cs:[eax + eax]
movsx esi, byte [eax]
lea edx, [edi + edi*4]
inc eax
dec ecx
lea edi, [esi + edx*2 - 0x30]
jne 0x435b70
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
jmp 0x435b8a
mov edx, ecx
mov ecx, edx
lea eax, [edx + 8]
mov ebx, 0x38e38e39
imul ebx
xor ebx, ebx
cmp ecx, 0xa
mov dword [esp + 0x28], ecx
jl 0x435bc7
mov eax, edx
sar edx, 1
xor ebx, ebx
shr eax, 0x1f
add edx, eax
mov eax, 1
nop word cs:[eax + eax]
add eax, eax
inc ebx
cmp edx, eax
jg 0x435bc0
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x435c05
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x435c05
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
cmp ebx, 7
ja 0x435c2f
mov eax, dword [ebx*4 + 0x55b770]
test eax, eax
je 0x437666
mov ecx, dword [eax]
mov dword [ebx*4 + 0x55b770], ecx
jmp 0x435c55
mov esi, 1
mov ecx, ebx
shl esi, cl
lea eax, [esi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [esp + 0x30]
mov ecx, dword [0x55b790]
mov ebx, eax
cmp ecx, 1
ja 0x435c96
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x435c96
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
cmp dword [esp + 0x20], 0xa
mov edx, ebx
mov dword [edx + 0xc], 0
mov dword [edx + 0x14], edi
mov dword [edx + 0x10], 1
jl 0x435fc8
lea eax, [esi + 9]
mov dword [esp + 0xc], 9
mov dword [esp + 8], 1
jmp 0x435cf0
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0xc], esi
inc eax
mov dword [esp + 8], ecx
movsx ebx, byte [eax]
mov edi, dword [esp + 8]
xor ecx, ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], edx
add ebx, 0xffffffd0
mov esi, ebx
sar esi, 0x1f
nop dword [eax]
mov edx, dword [esp + 0x10]
mov eax, 0xa
mul dword [edx + ecx*4 + 0x14]
add eax, ebx
mov ebx, edx
mov edx, dword [esp + 0x10]
adc ebx, esi
mov esi, 0
mov dword [edx + ecx*4 + 0x14], eax
inc ecx
cmp ecx, edi
jl 0x435d10
test ebx, ebx
je 0x435d50
mov eax, dword [esp + 8]
cmp eax, dword [edx + 8]
jge 0x435d70
mov edi, edx
jmp 0x435e90
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0xc]
jmp 0x435f71
mov esi, dword [edx + 4]
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x435db1
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x435db1
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
lea edi, [esi + 1]
call fcn.0042cc40
cmp esi, 6
mov dword [esp + 0x34], edi
jg 0x435de2
mov edi, dword [esi*4 + 0x55b774]
test edi, edi
je 0x435f7c
mov eax, dword [edi]
mov dword [esi*4 + 0x55b774], eax
jmp 0x435e0a
mov ecx, edi
mov esi, 1
shl esi, cl
lea eax, [esi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov dword [edi + 8], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x435e48
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x435e48
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov esi, dword [esp + 0x10]
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
lea eax, [edi + 0xc]
mov edx, dword [esi + 0x10]
lea ecx, [esi + 0xc]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d7b40
add esp, 0xc
cmp dword [esi + 4], 8
jl 0x435ea5
push esi
call fcn.0041dcb0
add esp, 4
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 8]
jmp 0x435f67
mov dword [esp + 0x34], edi
mov eax, dword [0x55b790]
mov esi, dword [esp + 0xc]
cmp eax, 1
ja 0x435eeb
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x435eeb
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edi], ecx
mov dword [eax*4 + 0x55b770], edi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x435f4b
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x435f4b
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x34]
mov dword [edi + edx*4 + 0x14], ebx
inc edx
mov dword [edi + 0x10], edx
mov edx, edi
inc esi
cmp esi, ecx
jne 0x435ce0
jmp 0x435fdb
mov ecx, dword [esp + 0x34]
mov esi, 1
mov edi, dword [0x559034]
shl esi, cl
mov edx, edi
lea eax, [esi*4 + 0x1b]
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x38], ecx
mov ecx, 0x55b7a0
sub edx, ecx
mov ecx, dword [esp + 0x38]
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x435df2
lea eax, [edi + ecx*8]
mov dword [0x559034], eax
jmp 0x435e00
mov eax, dword [esp + 0x44]
mov ecx, 9
lea esi, [esi + eax + 9]
mov eax, dword [esp + 0x24]
jmp 0x435fe6
mov esi, dword [esp + 0x30]
lea esi, [esi + ecx]
add esi, dword [esp + 0x44]
sub eax, dword [esp + 4]
cmp ecx, dword [esp + 0x28]
mov dword [esp + 0x44], eax
jge 0x4362bf
jmp 0x436050
mov ecx, dword [esp + 0xc]
mov esi, 1
mov edx, dword [0x559034]
shl esi, cl
mov dword [esp + 4], edx
lea eax, [esi*4 + 0x1b]
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x1c], ecx
mov ecx, 0x55b7a0
sub edx, ecx
sar edx, 3
add edx, dword [esp + 0x1c]
cmp edx, 0x120
ja 0x436144
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x1c]
lea eax, [ecx + eax*8]
mov dword [0x559034], eax
mov eax, ecx
jmp 0x436150
movsx ebx, byte [esi]
mov eax, dword [edx + 0x10]
mov dword [esp + 8], esi
mov dword [esp + 0x20], ecx
xor ecx, ecx
add ebx, 0xffffffd0
mov dword [esp + 0x10], eax
mov esi, ebx
sar esi, 0x1f
nop dword [eax]
mov eax, 0xa
mov edi, edx
mul dword [edi + ecx*4 + 0x14]
add eax, ebx
mov ebx, edx
mov edx, edi
mov dword [edx + ecx*4 + 0x14], eax
mov eax, dword [esp + 0x10]
adc ebx, esi
inc ecx
mov esi, 0
cmp ecx, eax
jl 0x436070
test ebx, ebx
je 0x4360b0
cmp eax, dword [edx + 8]
jge 0x4360c0
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 8]
jmp 0x4362ab
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 8]
jmp 0x4362b3
mov esi, dword [edx + 4]
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436101
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436101
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
lea eax, [esi + 1]
mov dword [esp + 0xc], eax
mov ecx, dword [0x55b790]
call fcn.0042cc40
cmp esi, 6
jg 0x436132
mov eax, dword [esi*4 + 0x55b774]
test eax, eax
je 0x435ffa
mov ecx, dword [eax]
mov dword [esi*4 + 0x55b774], ecx
jmp 0x43615a
mov ecx, dword [esp + 0xc]
mov esi, 1
shl esi, cl
lea eax, [esi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov ecx, dword [esp + 0xc]
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [esp + 4], eax
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43619c
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43619c
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ecx, dword [esp + 4]
mov esi, edi
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
lea ecx, [esi + 0xc]
mov edx, dword [esi + 0x10]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d7b40
mov eax, esi
add esp, 0xc
cmp dword [eax + 4], 8
jl 0x4361f5
push eax
call fcn.0041dcb0
add esp, 4
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 8]
jmp 0x4362a3
mov eax, dword [0x55b790]
mov esi, dword [esp + 8]
cmp eax, 1
ja 0x436237
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436237
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edi], ecx
mov dword [eax*4 + 0x55b770], edi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436293
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436293
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 4]
mov dword [edx + eax*4 + 0x14], ebx
inc eax
mov dword [edx + 0x10], eax
inc ecx
inc esi
cmp ecx, dword [esp + 0x28]
jne 0x436050
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
lea eax, [edx + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x84], eax
xor eax, eax
mov ecx, edi
neg ecx
test edi, edi
cmovns ecx, eax
cmovs edi, eax
xor esi, dword [esp + 0x28]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x48], edi
lea eax, [edi + ecx]
or esi, ecx
mov dword [esp + 0x7c], eax
sete byte [esp + 0x63]
jmp 0x436320
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov edx, dword [esp + 0x10]
nop word cs:[eax + eax]
mov ebx, dword [edx + 4]
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436361
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436361
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
cmp ebx, 7
jg 0x436390
mov edi, dword [ebx*4 + 0x55b770]
test edi, edi
je 0x4364d8
mov eax, dword [edi]
mov dword [ebx*4 + 0x55b770], eax
jmp 0x4363b4
mov esi, 1
mov ecx, ebx
shl esi, cl
lea eax, [esi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov edi, eax
mov dword [edi + 4], ebx
mov dword [edi + 8], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4363f2
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4363f2
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
lea eax, [edi + 0xc]
mov ecx, dword [ecx + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
push dword [esp + 0x88]
push eax
call fcn.004d7b40
add esp, 0xc
lea eax, [esp + 0xf8]
lea ecx, [esp + 0xf0]
lea edx, [esp + 0xfc]
push eax
call fcn.00439430
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43648e
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43648e
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov esi, dword [0x55b774]
test esi, esi
je 0x4364b0
mov eax, dword [esi]
mov dword [0x55b774], eax
jmp 0x43653c
mov esi, dword [0x559034]
mov ecx, 0x55b7a0
mov eax, esi
sub eax, ecx
sar eax, 3
add eax, 4
cmp eax, 0x120
ja 0x436522
mov eax, esi
add eax, 0x20
mov dword [0x559034], eax
jmp 0x43652e
mov esi, 1
mov ecx, ebx
mov edi, dword [0x559034]
shl esi, cl
lea eax, [esi*4 + 0x1b]
mov ecx, eax
shr ecx, 3
mov edx, edi
mov dword [esp + 8], ecx
mov ecx, 0x55b7a0
sub edx, ecx
mov ecx, dword [esp + 8]
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x4363a0
lea eax, [edi + ecx*8]
mov dword [0x559034], eax
jmp 0x4363ae
push 0x20
call fcn.0041dc70
add esp, 4
mov esi, eax
mov dword [esi + 4], 1
mov dword [esi + 8], 2
mov dword [esp + 0x1c], edi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43657e
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43657e
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], 1
mov dword [esi + 0x10], 1
xor ecx, ecx
mov edi, esi
mov ebx, 0x36
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 1
mov eax, dword [esp + 0xfc]
mov edx, eax
neg edx
test eax, eax
cmovns edx, ecx
mov ecx, dword [esp + 0xf8]
mov esi, edx
mov edx, 0
cmovns edx, eax
sub eax, dword [esp + 0x4c]
sub ebx, ecx
add eax, ecx
mov ecx, edx
mov edx, dword [esp + 0x80]
add ecx, edx
cmp eax, 0xfffffc02
jg 0x436643
mov dword [esp + 4], ecx
mov ecx, 0xfffffc03
mov dword [esp + 8], edi
sub ecx, eax
sub ebx, ecx
cmp ecx, 0x1f
jg 0x436616
mov eax, 1
shl eax, cl
mov dword [esp + 0x40], eax
jmp 0x43663b
cmp ecx, 0x33
jg 0x436633
add ecx, 0xffffffe0
mov eax, 1
mov dword [esp + 0x40], 1
shl eax, cl
mov dword [esp + 0x50], eax
jmp 0x43663b
mov dword [esp + 0x50], 0x7ff00000
mov ecx, dword [esp + 4]
mov edi, dword [esp + 8]
add esi, dword [esp + 0x7c]
add esi, ebx
add ebx, ecx
cmp ebx, esi
mov eax, esi
cmovle eax, ebx
cmp eax, ecx
cmovg eax, ecx
test eax, eax
jle 0x436661
sub esi, eax
sub ebx, eax
sub ecx, eax
mov dword [esp + 0x34], esi
test edx, edx
mov esi, edi
mov dword [esp + 4], ecx
jle 0x436790
mov ecx, esi
call fcn.004397b0
mov esi, dword [esp + 0xc]
mov ecx, eax
mov dword [esp + 8], eax
mov edx, esi
call fcn.00439e10
mov edi, dword [esp + 0x1c]
test esi, esi
mov dword [esp + 0x20], eax
je 0x4366aa
cmp dword [esi + 4], 8
jl 0x4367a9
push esi
call fcn.0041dcb0
add esp, 4
mov esi, dword [esp + 8]
test ebx, ebx
jle 0x4366c1
mov ecx, dword [esp + 0x20]
mov edx, ebx
call fcn.00439f70
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x48]
test edx, edx
jle 0x4366d2
mov ecx, edi
call fcn.004397b0
mov edi, eax
mov edx, dword [esp + 0x34]
test edx, edx
jle 0x4366e3
mov ecx, edi
call fcn.00439f70
mov edi, eax
mov eax, dword [esp + 4]
test eax, eax
jle 0x4366f6
mov edx, eax
mov ecx, esi
call fcn.00439f70
mov esi, eax
mov ecx, dword [esp + 0x20]
mov edx, edi
mov dword [esp + 0x1c], edi
call fcn.0043a150
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 0x38], ecx
mov ecx, dword [eax + 0x10]
mov dword [eax + 0xc], 0
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x34], ecx
sub ecx, ebx
mov eax, ecx
jne 0x436870
mov eax, dword [esp + 0xc]
mov dword [esp + 4], ecx
mov edx, dword [esi + ebx*4 + 0x10]
mov edi, ebx
mov ecx, dword [eax + ebx*4 + 0x10]
cmp ecx, edx
jne 0x436777
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 8]
mov edx, edi
lea eax, [ecx + 0x14]
lea esi, [ecx + edx*4 + 0x10]
lea ebx, [ebx + edx*4 + 0xc]
nop word [eax + eax]
cmp esi, eax
jbe 0x436864
mov ecx, dword [esi - 4]
mov edx, dword [ebx]
add esi, 0xfffffffc
add ebx, 0xfffffffc
cmp ecx, edx
je 0x436760
xor eax, eax
cmp ecx, edx
setae al
lea eax, [eax + eax - 1]
jmp 0x436866
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
test ebx, ebx
jg 0x4366b2
jmp 0x4366c1
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4367e7
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4367e7
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
mov esi, dword [esp + 8]
cmp eax, 1
ja 0x43684b
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43684b
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
test ebx, ebx
jg 0x4366b2
jmp 0x4366c1
xor eax, eax
mov esi, dword [esp + 8]
mov ecx, dword [esp + 4]
mov ebx, edi
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x44], edx
jle 0x4368a0
test eax, eax
jg 0x4368a0
cmp dword [esp + 0x38], 0
je 0x43695f
jmp 0x4376c2
test eax, eax
js 0x436954
je 0x436fbd
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x34]
mov dword [esp + 4], ecx
xor eax, eax
mov edx, dword [ebx + edi*4 + 0x10]
cmp edx, 0x10000
mov ecx, edx
mov dword [esp + 0x40], edx
setb al
shl ecx, 0x10
cmp edx, 0xffff
cmova ecx, edx
shl eax, 4
mov edx, ecx
shl edx, 8
cmp ecx, 0xffffff
cmova edx, ecx
lea ecx, [eax + 8]
cmova ecx, eax
mov eax, edx
shl eax, 4
cmp edx, 0xfffffff
lea esi, [ecx + 4]
cmova eax, edx
cmova esi, ecx
lea ecx, [eax*4]
cmp eax, 0x3fffffff
cmova ecx, eax
lea eax, [esi + 2]
cmova eax, esi
lea esi, [ebx + edi*4 + 0x14]
lea edi, [ebx + edi*4 + 0x10]
test ecx, ecx
lea ebx, [ebx + 0x14]
mov dword [esp + 0x58], ebx
js 0x437036
test ecx, 0x40000000
jne 0x437035
mov eax, 0x20
mov dword [esp + 0x78], 0
jmp 0x437087
cmp dword [esp + 0x38], 0
jne 0x43765c
cmp dword [esp + 0xf0], 0
jne 0x437654
mov eax, dword [esp + 0xf4]
test eax, 0xfffff
jne 0x4376b0
and eax, 0x7ff00000
cmp eax, 0x6b00001
jb 0x4376b0
mov ecx, dword [esp + 0x34]
cmp ecx, 1
jg 0x4369a7
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x437654
mov esi, dword [esp + 0xc]
mov ebx, dword [esi + 4]
mov eax, dword [esi + 8]
cmp ecx, eax
jl 0x4369c7
nop word cs:[eax + eax]
inc ebx
add eax, eax
cmp ecx, eax
jge 0x4369c0
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436a05
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436a05
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
cmp ebx, 7
jg 0x436a2f
mov edi, dword [ebx*4 + 0x55b770]
test edi, edi
je 0x436fed
mov eax, dword [edi]
mov dword [ebx*4 + 0x55b770], eax
jmp 0x436a57
mov esi, 1
mov ecx, ebx
shl esi, cl
lea eax, [esi*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov edi, eax
mov dword [edi + 4], ebx
mov dword [edi + 8], esi
mov esi, dword [esp + 0xc]
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436a95
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436a95
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov dword [edi + 0x10], 0
lea eax, [edi + 0x14]
mov dword [edi + 0xc], 0
lea edx, [esi + 0x18]
mov ecx, 0xffffffeb
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
lea eax, [esi + eax*4 + 0x14]
cmp eax, edx
cmova edx, eax
sub ecx, esi
add ecx, edx
xor edx, edx
shr ecx, 2
mov dword [esp + 0x40], ecx
mov ecx, edi
mov edi, esi
mov esi, 0x14
mov ebx, dword [edi + esi]
add ebx, ebx
or ebx, edx
mov dword [ecx + esi], ebx
lea ebx, [edi + esi + 4]
mov edx, dword [edi + esi]
add esi, 4
shr edx, 0x1f
cmp ebx, eax
jb 0x436ae0
mov eax, dword [esp + 0x40]
cmp edx, 1
mov esi, dword [esp + 8]
mov ebx, ecx
mov dword [ecx + eax*4 + 0x18], edx
mov edx, dword [esp + 0x34]
sbb edx, 0
inc edx
test edi, edi
mov dword [ecx + 0x10], edx
je 0x436bdd
cmp dword [edi + 4], 8
jl 0x436b33
push edi
call fcn.0041dcb0
add esp, 4
jmp 0x436bdd
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436b71
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436b71
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436bd1
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436bd1
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ecx, ebx
mov edx, dword [esi + 0x10]
mov eax, dword [ecx + 0x10]
sub eax, edx
je 0x436bf6
mov edi, dword [esp + 0x20]
test eax, eax
jg 0x436c45
jmp 0x437646
mov ecx, dword [ecx + edx*4 + 0x10]
mov esi, dword [esi + edx*4 + 0x10]
mov edi, dword [esp + 0x20]
cmp ecx, esi
jne 0x436c39
mov ecx, dword [esp + 8]
lea eax, [ebx + edx*4 + 0x10]
lea edx, [ecx + edx*4 + 0xc]
nop word cs:[eax + eax]
cmp eax, dword [esp + 4]
jbe 0x437642
mov ecx, dword [eax - 4]
mov esi, dword [edx]
add eax, 0xfffffffc
add edx, 0xfffffffc
cmp ecx, esi
je 0x436c20
cmp ecx, esi
jb 0x437642
mov esi, dword [esp + 8]
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x4c], 0
mov ecx, 0x7ff00000
je 0x436c71
mov eax, dword [esp + 0xf4]
and eax, ecx
cmp eax, 0x6b00000
jbe 0x437be7
mov eax, dword [esp + 0xf4]
and eax, ecx
add eax, 0xfff00000
or eax, 0xfffff
cmp dword [esp + 0x44], edx
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], 0xffffffff
jle 0x43922f
test edi, edi
je 0x436d62
cmp dword [edi + 4], 8
jl 0x436cbc
push edi
call fcn.0041dcb0
add esp, 4
jmp 0x436d62
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436cfa
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436cfa
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edi], ecx
mov dword [eax*4 + 0x55b770], edi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436d56
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436d56
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov edx, dword [esp + 0x10]
test ebx, ebx
je 0x436e2c
cmp dword [ebx + 4], 8
jl 0x436d82
push ebx
call fcn.0041dcb0
add esp, 4
jmp 0x436e28
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436dc0
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436dc0
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [ebx], ecx
mov dword [eax*4 + 0x55b770], ebx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436e1c
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436e1c
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov edx, dword [esp + 0x10]
test esi, esi
je 0x436ef2
cmp dword [esi + 4], 8
jl 0x436e48
push esi
call fcn.0041dcb0
add esp, 4
jmp 0x436eee
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436e86
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436e86
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [esi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [esi], ecx
mov dword [eax*4 + 0x55b770], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436ee2
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436ee2
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
test esi, esi
je 0x436320
cmp dword [esi + 4], 8
jl 0x436f16
push esi
call fcn.0041dcb0
add esp, 4
mov edx, dword [esp + 0x10]
jmp 0x436320
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436f54
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436f54
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [esi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [esi], ecx
mov dword [eax*4 + 0x55b770], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x436306
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x436306
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
jmp 0x436306
mov eax, dword [esp + 0xf4]
mov ecx, eax
and ecx, 0xfffff
cmp dword [esp + 0x38], 0
jne 0x438a01
or ecx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x1c]
je 0x436c51
jmp 0x438a72
mov edx, dword [0x559034]
mov esi, 1
mov ecx, ebx
mov edi, 0x55b7a0
shl esi, cl
lea eax, [esi*4 + 0x1b]
mov ecx, eax
mov dword [esp + 4], edx
sub edx, edi
shr ecx, 3
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x436a3f
mov edi, dword [esp + 4]
lea eax, [edi + ecx*8]
mov dword [0x559034], eax
jmp 0x436a4d
inc eax
mov ecx, 0x20
sub ecx, eax
cmp eax, 0xa
mov dword [esp + 0x78], ecx
jg 0x437087
mov edx, dword [esp + 0x40]
mov ecx, 0xb
sub ecx, eax
mov dword [esp + 0x34], ecx
shr edx, cl
mov dword [esp + 0x50], edx
xor edx, edx
cmp edi, dword [esp + 0x58]
jbe 0x437066
mov edx, dword [esi - 8]
add eax, 0x15
mov esi, dword [esp + 8]
mov ecx, eax
mov eax, dword [esp + 0x40]
shl eax, cl
mov ecx, dword [esp + 0x34]
shr edx, cl
or edx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x34], edx
jmp 0x4370f0
xor edx, edx
cmp edi, dword [esp + 0x58]
jbe 0x437097
mov edx, dword [esi - 8]
add esi, 0xfffffff8
mov edi, esi
mov ecx, eax
mov dword [esp + 0x34], edx
add ecx, 0xfffffff5
je 0x4370e8
mov esi, ecx
shl dword [esp + 0x40], cl
mov ecx, 0x2b
sub ecx, eax
mov dword [esp + 0x50], esi
xor eax, eax
mov esi, dword [esp + 8]
mov dword [esp + 0x64], ecx
shr edx, cl
cmp edi, dword [esp + 0x58]
jbe 0x4370c8
mov eax, dword [edi - 4]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
or edi, edx
mov edx, dword [esp + 0x34]
shl edx, cl
mov ecx, dword [esp + 0x64]
shr eax, cl
or edx, eax
mov eax, edi
mov dword [esp + 0x34], edx
jmp 0x4370f0
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x6c]
or eax, 0x3ff00000
mov dword [esp + 0x50], eax
xor eax, eax
mov edi, dword [esi + ebx*4 + 0x10]
cmp edi, 0x10000
mov ecx, edi
setb al
shl ecx, 0x10
cmp edi, 0xffff
cmova ecx, edi
shl eax, 4
mov edx, ecx
shl edx, 8
cmp ecx, 0xffffff
cmova edx, ecx
lea ecx, [eax + 8]
cmova ecx, eax
mov eax, edx
shl eax, 4
cmp edx, 0xfffffff
cmova eax, edx
lea edx, [ecx + 4]
cmova edx, ecx
lea ecx, [eax*4]
cmp eax, 0x3fffffff
cmova ecx, eax
lea eax, [edx + 2]
cmova eax, edx
lea edx, [esi + ebx*4 + 0x14]
lea ebx, [esi + ebx*4 + 0x10]
test ecx, ecx
mov dword [esp + 0x64], edx
lea edx, [esi + 0x14]
mov dword [esp + 0x40], edx
js 0x437183
test ecx, 0x40000000
jne 0x437182
mov eax, 0x20
xor ecx, ecx
jmp 0x4371c0
inc eax
mov ecx, 0x20
sub ecx, eax
cmp eax, 0xa
jg 0x4371c0
mov edx, 0xb
mov dword [esp + 0x58], ecx
mov esi, edi
sub edx, eax
mov ecx, edx
shr esi, cl
mov ecx, ebx
xor ebx, ebx
cmp ecx, dword [esp + 0x40]
jbe 0x4371b1
mov ecx, dword [esp + 0x64]
mov ebx, dword [ecx - 8]
add eax, 0x15
mov ecx, eax
shl edi, cl
mov ecx, edx
shr ebx, cl
or ebx, edi
jmp 0x43720f
xor esi, esi
cmp ebx, edx
jbe 0x4371d0
mov ebx, dword [esp + 0x64]
mov esi, dword [ebx - 8]
add ebx, 0xfffffff8
mov edx, eax
add edx, 0xfffffff5
je 0x437215
mov dword [esp + 0x58], ecx
mov ecx, edx
mov dword [esp + 0x6c], esi
shl edi, cl
mov ecx, 0x2b
sub ecx, eax
xor eax, eax
mov dword [esp + 0x64], ecx
shr esi, cl
cmp ebx, dword [esp + 0x40]
jbe 0x4371fb
mov eax, dword [ebx - 4]
mov ebx, dword [esp + 0x6c]
mov ecx, edx
or edi, esi
mov esi, edi
shl ebx, cl
mov ecx, dword [esp + 0x64]
shr eax, cl
or ebx, eax
mov ecx, dword [esp + 0x58]
jmp 0x437219
mov ebx, esi
mov esi, edi
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 4]
mov edx, dword [esp + 0x50]
or esi, 0x3ff00000
movd xmm2, dword [esp + 0x34]
movd xmm1, ebx
sub eax, ecx
shl edi, 5
mov ecx, esi
add edi, eax
mov eax, edi
shl eax, 0x14
sub ecx, eax
add eax, edx
test edi, edi
cmovle eax, edx
cmovg ecx, esi
movd xmm0, ecx
movd xmm3, eax
mov ecx, dword [esp + 0x28]
punpckldq xmm1, xmm0
punpckldq xmm2, xmm3
movsd xmm0, qword [0x511440]
divsd xmm2, xmm1
ucomisd xmm0, xmm2
jae 0x437295
movsd xmm0, qword [0x50fc40]
cmp dword [esp + 0x38], 0
mulsd xmm2, xmm0
je 0x437330
movapd xmm1, xmm2
jmp 0x43733c
movsd xmm0, qword [0x50fc60]
cmp dword [esp + 0x38], 0
mov esi, dword [esp + 8]
movapd xmm1, xmm0
jne 0x43736b
mov eax, dword [esp + 0xf0]
cmp eax, 1
je 0x437509
movsd xmm0, qword [0x50fc60]
movsd xmm1, qword [0x511448]
test eax, eax
jne 0x43736b
test dword [esp + 0xf4], 0xfffff
movsd xmm0, qword [0x50fc60]
movsd xmm1, qword [0x511448]
jne 0x43736b
movsd xmm1, qword [0x50fc40]
movapd xmm0, xmm2
cmpltsd xmm2, qword [0x50fc60]
movapd xmm3, xmm1
movapd xmm1, xmm2
mulsd xmm0, xmm3
andpd xmm1, xmm3
andnpd xmm2, xmm0
orpd xmm2, xmm1
movapd xmm1, xmm2
xorpd xmm1, xmmword [0x511450]
jmp 0x437367
movapd xmm1, xmm2
xorpd xmm1, xmmword [0x511450]
fnstcw word [esp + 0x70]
movzx eax, word [esp + 0x70]
mov ecx, eax
shr eax, 0xb
shr ecx, 9
and eax, 1
and ecx, 2
lea eax, [eax + ecx + 1]
test al, 3
jne 0x437367
movsd xmm0, qword [0x50fc40]
addsd xmm1, xmm0
movapd xmm0, xmm2
mov ecx, dword [esp + 0xf4]
mov eax, ecx
and eax, 0x7ff00000
cmp eax, 0x7fe00000
jne 0x437421
add ecx, 0xfcb00000
mov edx, dword [esp + 0xf0]
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xf4], ecx
and ecx, 0x7ff00000
add ecx, 0xfcc00000
movd xmm2, ecx
pshufd xmm2, xmm2, 0x51
mulsd xmm1, xmm2
addsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0x90], xmm1
mov ecx, dword [esp + 0x94]
mov edi, ecx
and edi, 0x7fe00000
cmp edi, 0x7ca00000
jb 0x4374aa
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
not edx
xor esi, 0x7fefffff
or esi, edx
je 0x4390ca
mov dword [esp + 0xf4], 0x7fefffff
mov dword [esp + 0xf0], 0xffffffff
jmp 0x437612
cmp dword [esp + 0x4c], 0
je 0x4374c0
cmp eax, 0x6a00000
ja 0x4374c0
movsd xmm2, qword [0x50fc48]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
ucomisd xmm2, xmm0
jb 0x437538
movsd xmm2, qword [0x511460]
movapd xmm1, xmm0
cvttsd2si ecx, xmm0
subsd xmm1, xmm2
cvttsd2si edx, xmm1
movq xmm1, qword [0x50fc68]
xor edx, 0x80000000
ucomisd xmm0, xmm2
movsd xmm0, qword [0x50fc60]
cmovae ecx, edx
test ecx, ecx
je 0x437496
movd xmm0, ecx
por xmm0, xmm1
subsd xmm0, xmm1
cmp dword [esp + 0x38], 0
je 0x43752c
movapd xmm1, xmm0
jmp 0x437538
mov edx, dword [esp + 0x90]
add ecx, 0x3500000
mov dword [esp + 0xf4], ecx
jmp 0x4374fc
lea ecx, [eax - 0x3400000]
movd xmm2, ecx
pshufd xmm2, xmm2, 0x51
mulsd xmm1, xmm2
addsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0xa8], xmm1
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
jmp 0x4375ac
cmp dword [esp + 0xf4], 0
movsd xmm0, qword [0x50fc60]
movsd xmm1, qword [0x511448]
jne 0x43736b
jmp 0x439215
movapd xmm1, xmm0
xorpd xmm1, xmmword [0x511450]
mov ecx, 0x6b00000
movsd qword [esp + 0xa0], xmm1
sub ecx, eax
movd xmm2, dword [esp + 0xa0]
add ecx, dword [esp + 0xa4]
movd xmm1, ecx
lea ecx, [eax - 0x3400000]
punpckldq xmm2, xmm1
movd xmm1, ecx
pshufd xmm1, xmm1, 0x51
mulsd xmm1, xmm2
addsd xmm1, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm1
movsd qword [esp + 0x98], xmm1
ucomisd xmm1, qword [0x511488]
jne 0x43759e
jnp 0x4390db
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov esi, ecx
and esi, 0x7ff00000
cmp eax, esi
sete al
and al, byte [esp + 0x63]
cmp al, 1
jne 0x437612
cmp dword [esp + 0x38], 0
mov esi, dword [esp + 8]
cvttsd2si eax, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
subsd xmm0, xmm1
jne 0x4375e5
and ecx, 0xfffff
or edx, ecx
je 0x437623
movsd xmm1, qword [0x511468]
mov dword [esp + 4], 0
ucomisd xmm1, xmm0
ja 0x4376cc
ucomisd xmm0, qword [0x511470]
jbe 0x436ca0
jmp 0x4376cc
mov esi, dword [esp + 8]
test edi, edi
jne 0x436ca8
jmp 0x436d62
movsd xmm1, qword [0x511478]
ucomisd xmm1, xmm0
jbe 0x436ca0
mov dword [esp + 0x38], 0
jmp 0x43922f
mov esi, dword [esp + 8]
mov dword [esp + 4], 0
mov dword [esp + 0xc], ebx
jmp 0x4376c8
mov dword [esp + 0x38], 0
mov dword [esp + 4], 0
jmp 0x4376c8
mov edx, dword [0x559034]
mov esi, 1
mov ecx, ebx
shl esi, cl
mov ecx, 0x55b7a0
lea eax, [esi*4 + 0x1b]
mov dword [esp + 0x10], edx
sub edx, ecx
mov ecx, eax
shr ecx, 3
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x435c3f
mov edx, dword [esp + 0x10]
lea eax, [edx + ecx*8]
mov dword [0x559034], eax
mov eax, edx
jmp 0x435c4b
mov dword [esp + 4], 0
mov dword [esp + 0x38], 0
jmp 0x4376c8
mov al, 1
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x1c]
test edi, edi
je 0x4377a9
cmp dword [edi + 4], 8
jl 0x437703
push edi
call fcn.0041dcb0
add esp, 4
test ebx, ebx
je 0x43785c
cmp dword [ebx + 4], 8
jl 0x4377b6
push ebx
call fcn.0041dcb0
add esp, 4
jmp 0x43785c
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437741
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437741
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edi], ecx
mov dword [eax*4 + 0x55b770], edi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43779d
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43779d
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
test ebx, ebx
jne 0x4376eb
jmp 0x43785c
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4377f4
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4377f4
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [ebx], ecx
mov dword [eax*4 + 0x55b770], ebx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437850
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437850
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 4]
test esi, esi
je 0x43792a
cmp dword [esi + 4], 8
jl 0x437880
push esi
call fcn.0041dcb0
add esp, 4
jmp 0x437926
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4378be
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4378be
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [esi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [esi], ecx
mov dword [eax*4 + 0x55b770], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43791a
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43791a
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
test eax, eax
je 0x437a0f
cmp dword [eax + 4], 8
jl 0x437965
push eax
call fcn.0041dcb0
add esp, 4
test esi, esi
je 0x437ac2
cmp dword [esi + 4], 8
jl 0x437a1c
push esi
call fcn.0041dcb0
add esp, 4
jmp 0x437ac2
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4379a3
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4379a3
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437a03
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437a03
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
test esi, esi
jne 0x43794d
jmp 0x437ac2
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437a5a
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437a5a
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [esi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [esi], ecx
mov dword [eax*4 + 0x55b770], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437ab6
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437ab6
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
test bl, bl
mov ebx, dword [esp + 0x2c]
je 0x438c31
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x68]
movsd xmm0, qword [esp + 0xf0]
xorpd xmm1, xmm1
lea eax, [esi + eax]
ucomisd xmm0, xmm1
mov dword [esp + 4], eax
jne 0x437b51
jp 0x437b51
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437b30
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437b30
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edi, dword [0x55b774]
test edi, edi
je 0x437bbe
mov eax, dword [edi]
mov dword [0x55b774], eax
jmp 0x437c27
lea eax, [esp + 0x104]
lea ecx, [esp + 0xf0]
lea edx, [esp + 0x100]
push eax
call fcn.00439430
add esp, 4
mov edx, dword [esp + 0x4c]
mov edi, 0x35
mov esi, dword [esp + 0x100]
sub edi, dword [esp + 0x104]
mov ecx, edx
neg ecx
lea ecx, [esi + ecx + 0x432]
sub esi, edx
cmp edi, ecx
mov dword [esp + 0x100], esi
cmovg edi, ecx
mov ecx, eax
inc edi
mov edx, edi
call fcn.00439f70
mov dword [esp + 0x10], eax
or byte [eax + 0x14], 1
mov dword [esp + 0x40], 0
jmp 0x437cc2
mov edi, dword [0x559034]
mov eax, 0x55b7a0
mov ecx, edi
sub ecx, eax
sar ecx, 3
add ecx, 4
cmp ecx, 0x120
ja 0x437c0d
mov eax, edi
add eax, 0x20
mov dword [0x559034], eax
jmp 0x437c19
cmp dword [esp + 0x44], edx
mov dword [esp + 4], 0
jg 0x4376cc
cmp eax, 0x3700000
ja 0x4376cc
mov ebx, dword [esp + 0x2c]
jmp 0x438c20
push 0x20
call fcn.0041dc70
add esp, 4
mov edi, eax
mov dword [edi + 4], 1
mov dword [edi + 8], 2
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437c65
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437c65
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov dword [edi + 0xc], 0
mov dword [edi + 0x14], 1
mov dword [edi + 0x10], 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x104], 1
mov dword [esp + 0xf4], 0x3700000
mov dword [esp + 0x100], 0xfffffbcd
mov dword [esp + 0x40], 1
mov dword [esp + 0x38], 0
mov esi, 0xfffffbcd
xor edi, edi
mov ebx, 1
sub ebx, dword [esp + 4]
add esi, ebx
sub esi, edi
mov dword [esp + 0x100], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437d14
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437d14
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edi, dword [0x55b774]
mov esi, dword [esp + 0x68]
test edi, edi
je 0x437d36
mov eax, dword [edi]
mov dword [0x55b774], eax
jmp 0x437d79
mov edi, dword [0x559034]
mov eax, 0x55b7a0
mov ecx, edi
sub ecx, eax
sar ecx, 3
add ecx, 4
cmp ecx, 0x120
ja 0x437d5f
mov eax, edi
add eax, 0x20
mov dword [0x559034], eax
jmp 0x437d6b
push 0x20
call fcn.0041dc70
add esp, 4
mov edi, eax
mov dword [edi + 4], 1
mov dword [edi + 8], 2
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437db7
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437db7
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov eax, dword [esp + 4]
mov dword [edi + 0xc], 0
mov dword [edi + 0x14], 1
mov dword [edi + 0x10], 1
cmp eax, 2
jl 0x437df2
mov eax, dword [esp + 0x24]
mov ecx, edi
lea edx, [esi + eax - 1]
call fcn.004397b0
jmp 0x437e08
cmp eax, 1
je 0x437e06
mov ecx, dword [esp + 0x10]
mov edx, ebx
call fcn.004397b0
mov dword [esp + 0x10], eax
mov eax, edi
mov ecx, dword [esp + 0x100]
xor edx, edx
mov ebx, eax
mov edi, ecx
neg edi
test ecx, ecx
cmovg edi, edx
cmovns edx, ecx
mov ecx, dword [eax + 0x10]
mov ecx, dword [eax + ecx*4 + 0x10]
xor eax, eax
cmp ecx, 0x10000
mov esi, ecx
setb al
shl esi, 0x10
cmp ecx, 0xffff
cmova esi, ecx
shl eax, 4
mov ecx, esi
shl ecx, 8
cmp esi, 0xffffff
cmova ecx, esi
lea esi, [eax + 8]
cmova esi, eax
mov eax, ecx
shl eax, 4
cmp ecx, 0xfffffff
cmova eax, ecx
lea ecx, [esi + 4]
cmova ecx, esi
lea esi, [eax*4]
cmp eax, 0x3fffffff
cmova esi, eax
lea eax, [ecx + 2]
cmova eax, ecx
test esi, esi
js 0x437e91
mov ecx, 0x20
test esi, 0x40000000
je 0x437e93
inc eax
mov ecx, eax
xor eax, eax
test edi, edi
mov esi, 0x1c
cmovns eax, edi
sub esi, eax
add esi, ecx
and esi, 0x1f
add edx, esi
jle 0x437eb7
mov ecx, dword [esp + 0x10]
call fcn.00439f70
mov dword [esp + 0x10], eax
add esi, edi
jle 0x437ecc
mov ecx, ebx
mov edx, esi
call fcn.00439f70
mov esi, dword [esp + 0x30]
mov edi, eax
jmp 0x437ed2
mov esi, dword [esp + 0x30]
mov edi, ebx
mov ebx, dword [esp + 0x10]
mov edx, edi
mov ecx, ebx
call fcn.0043dfc0
test eax, eax
mov dword [esp + 4], edi
jne 0x438134
mov ecx, dword [ebx + 0x10]
xor edi, edi
xor esi, esi
mov dword [esp + 0x24], 0
nop word [eax + eax]
mov eax, 0xa
mul dword [ebx + esi*4 + 0x14]
add eax, edi
mov edi, edx
adc edi, dword [esp + 0x24]
mov dword [ebx + esi*4 + 0x14], eax
inc esi
cmp esi, ecx
jl 0x437f00
test edi, edi
mov dword [esp + 0x24], ecx
je 0x437fa7
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esi + 8]
jl 0x438119
mov esi, dword [esi + 4]
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x437f78
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x437f78
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
lea ebx, [esi + 1]
call fcn.0042cc40
cmp esi, 6
jg 0x437fb4
mov ecx, esi
mov esi, dword [ecx*4 + 0x55b774]
test esi, esi
je 0x438aa6
mov eax, dword [esi]
mov dword [ecx*4 + 0x55b774], eax
jmp 0x437fe0
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x10]
jmp 0x438127
mov eax, 1
mov ecx, ebx
shl eax, cl
mov dword [esp + 0x28], eax
lea eax, [eax*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x28]
mov dword [esi + 4], ebx
mov dword [esi + 8], eax
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43801e
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43801e
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ebx, dword [esp + 0x10]
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
lea eax, [esi + 0xc]
mov edx, dword [ebx + 0x10]
lea ecx, [ebx + 0xc]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d7b40
add esp, 0xc
cmp dword [ebx + 4], 8
jl 0x43806b
push ebx
call fcn.0041dcb0
add esp, 4
jmp 0x438115
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4380a9
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4380a9
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438109
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438109
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ecx, dword [esp + 0x24]
mov dword [esi + ecx*4 + 0x14], edi
inc ecx
mov ebx, esi
mov dword [esi + 0x10], ecx
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 4]
mov ecx, ebx
mov edx, edi
call fcn.0043dfc0
cmp dword [esp + 0x54], 0
jle 0x438448
xor edx, edx
nop word cs:[eax + eax]
mov dword [esp + 0x10], ebx
movsx ebx, byte [esi + edx]
mov ecx, 0xffffffd0
sub ecx, eax
add ebx, ecx
jne 0x43875d
mov ebx, dword [esp + 0x10]
inc edx
mov eax, dword [ebx + 0x14]
mov edi, dword [ebx + 0x10]
test eax, eax
jne 0x43817f
cmp edi, 1
je 0x438772
mov ecx, 0xa
mov dword [esp + 0x24], edx
mul ecx
xor ecx, ecx
cmp edi, 2
mov dword [ebx + 0x14], eax
mov esi, edx
mov eax, edi
jl 0x4381e5
lea edi, [ebx + 0x18]
lea ebx, [eax - 1]
mov dword [esp + 0x28], eax
nop word cs:[eax + eax]
mov eax, 0xa
mul dword [edi]
add eax, esi
mov esi, edx
mov dword [edi], eax
adc esi, ecx
add edi, 4
dec ebx
jne 0x4381b0
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
or ecx, esi
je 0x4383db
cmp eax, dword [ebx + 8]
jge 0x4381f2
mov edi, ebx
jmp 0x4383cd
mov edi, dword [esp + 4]
or ecx, esi
jne 0x4381d9
jmp 0x4383db
mov dword [esp + 0x28], eax
mov edi, dword [ebx + 4]
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438237
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438237
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
lea eax, [edi + 1]
mov dword [esp + 0x48], eax
mov ecx, dword [0x55b790]
call fcn.0042cc40
cmp edi, 6
jg 0x43826a
mov ecx, edi
mov edi, dword [ecx*4 + 0x55b774]
test edi, edi
je 0x4383f8
mov eax, dword [edi]
mov dword [ecx*4 + 0x55b774], eax
jmp 0x43829c
mov ecx, dword [esp + 0x48]
mov eax, 1
shl eax, cl
mov dword [esp + 0x34], eax
lea eax, [eax*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4382da
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4382da
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
lea eax, [edi + 0xc]
lea ecx, [ebx + 0xc]
mov edx, dword [ebx + 0x10]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d7b40
add esp, 0xc
cmp dword [ebx + 4], 8
jl 0x438323
push ebx
call fcn.0041dcb0
add esp, 4
jmp 0x4383c9
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438361
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438361
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [ebx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [ebx], ecx
mov dword [eax*4 + 0x55b770], ebx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4383bd
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4383bd
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov eax, dword [esp + 0x28]
mov dword [edi + eax*4 + 0x14], esi
inc eax
mov ebx, edi
mov dword [edi + 0x10], eax
mov edi, dword [esp + 4]
mov ecx, ebx
mov edx, edi
call fcn.0043dfc0
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
cmp edx, dword [esp + 0x54]
jl 0x438150
jmp 0x43844a
mov ecx, dword [esp + 0x48]
mov eax, 1
mov edi, dword [0x559034]
shl eax, cl
mov edx, edi
mov dword [esp + 0x34], eax
lea eax, [eax*4 + 0x1b]
mov ecx, eax
shr ecx, 3
mov dword [esp + 0x50], ecx
mov ecx, 0x55b7a0
sub edx, ecx
mov ecx, dword [esp + 0x50]
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x438280
lea eax, [edi + ecx*8]
mov dword [0x559034], eax
jmp 0x43828e
xor edx, edx
cmp edx, dword [esp + 0x44]
mov dword [esp + 0x10], ebx
jge 0x43874a
mov edi, dword [esp + 0x5c]
movsx ebx, byte [esi + edi]
mov ecx, 0xffffffd0
sub ecx, eax
add ebx, ecx
jne 0x438753
mov eax, dword [esp + 0x10]
inc edx
mov ebx, dword [eax + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x43848b
cmp ebx, 1
je 0x438970
mov ecx, 0xa
mov dword [esp + 0x24], edx
mov dword [esp + 0x5c], edi
mul ecx
mov ecx, dword [esp + 0x10]
mov esi, edx
xor edx, edx
cmp ebx, 2
mov dword [ecx + 0x14], eax
jl 0x4384df
lea edi, [ecx + 0x18]
mov dword [esp + 0x28], ebx
dec ebx
xor ecx, ecx
nop word cs:[eax + eax]
mov eax, 0xa
mul dword [edi]
add eax, esi
mov esi, edx
mov dword [edi], eax
adc esi, ecx
add edi, 4
dec ebx
jne 0x4384c0
mov edx, ecx
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x28]
or edx, esi
je 0x4386d6
cmp ebx, dword [ecx + 8]
jge 0x4384f3
mov edi, ecx
jmp 0x4386cc
mov dword [esp + 0x28], ebx
mov edi, dword [ecx + 4]
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438538
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438538
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
lea ebx, [edi + 1]
call fcn.0042cc40
cmp edi, 6
jg 0x438567
mov ecx, edi
mov edi, dword [ecx*4 + 0x55b774]
test edi, edi
je 0x4386fc
mov eax, dword [edi]
mov dword [ecx*4 + 0x55b774], eax
jmp 0x438593
mov eax, 1
mov ecx, ebx
shl eax, cl
mov dword [esp + 0x48], eax
lea eax, [eax*4 + 0x1b]
and eax, 0xfffffff8
push eax
call fcn.0041dc70
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x48]
mov dword [edi + 4], ebx
mov dword [edi + 8], eax
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4385d1
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4385d1
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ebx, dword [esp + 0x10]
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
lea eax, [edi + 0xc]
mov edx, dword [ebx + 0x10]
lea ecx, [ebx + 0xc]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call fcn.004d7b40
add esp, 0xc
cmp dword [ebx + 4], 8
jl 0x43861e
push ebx
call fcn.0041dcb0
add esp, 4
jmp 0x4386c8
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43865c
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43865c
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4386bc
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4386bc
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov ebx, dword [esp + 0x28]
mov dword [edi + ebx*4 + 0x14], esi
inc ebx
mov ecx, edi
mov dword [edi + 0x10], ebx
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 4]
mov dword [esp + 0x10], ecx
inc edi
call fcn.0043dfc0
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x30]
cmp edx, dword [esp + 0x44]
jl 0x43845c
jmp 0x43874a
mov eax, 1
mov ecx, ebx
mov edi, dword [0x559034]
shl eax, cl
mov dword [esp + 0x48], eax
lea eax, [eax*4 + 0x1b]
mov ecx, eax
shr ecx, 3
mov edx, edi
mov dword [esp + 0x54], ecx
mov ecx, 0x55b7a0
sub edx, ecx
mov ecx, dword [esp + 0x54]
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x43857b
lea eax, [edi + ecx*8]
mov dword [0x559034], eax
jmp 0x438589
mov ebx, 0xffffffff
test eax, eax
jle 0x438779
mov esi, dword [esp + 8]
mov edi, dword [esp + 4]
jmp 0x438761
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x438985
jmp 0x438858
mov eax, ebx
jmp 0x438974
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 8]
mov edi, dword [esp + 4]
cmp dword [eax + 0x14], 0
jne 0x438797
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp dword [eax + 0x10], 2
jl 0x43879c
mov ebx, 0xffffffff
mov eax, dword [esp + 0x10]
cmp dword [eax + 4], 8
jge 0x43898f
mov dword [esp + 0x10], eax
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4387ec
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4387ec
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43884c
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43884c
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
test edi, edi
je 0x4389a0
cmp dword [edi + 4], 8
jl 0x4388a3
push edi
call fcn.0041dcb0
add esp, 4
cmp dword [esp + 0x40], 0
jne 0x4389ab
test ebx, ebx
js 0x438955
mov ebx, dword [esp + 0x2c]
je 0x4389d2
cmp dword [esp + 0x38], 0
je 0x438be8
mov eax, dword [esp + 0xf4]
jmp 0x438b34
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4388e1
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4388e1
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [edi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edi], ecx
mov dword [eax*4 + 0x55b770], edi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x43893d
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x43893d
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
cmp dword [esp + 0x40], 0
jne 0x4389ab
jmp 0x43887a
cmp dword [esp + 0x38], 0
mov ebx, dword [esp + 0x2c]
jne 0x438be8
mov eax, dword [esp + 0xf4]
jmp 0x438b8d
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp edx, dword [esp + 0x44]
mov esi, dword [esp + 8]
mov edi, dword [esp + 4]
setl bl
cmp dword [eax + 4], 8
jl 0x4387aa
push eax
call fcn.0041dcb0
add esp, 4
test edi, edi
jne 0x438860
cmp dword [esp + 0x40], 0
je 0x43887a
test ebx, ebx
mov ebx, dword [esp + 0x2c]
jg 0x438be8
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0
jmp 0x438be8
mov eax, dword [esp + 0xf4]
mov edx, eax
shr edx, 0x14
and edx, 0x7ff
sub edx, dword [esp + 0x4c]
jle 0x438a81
test byte [esp + 0xf0], 1
jne 0x438b2d
jmp 0x438be8
mov ebx, dword [esp + 0x1c]
cmp ecx, 0xfffff
jne 0x4390fe
cmp dword [esp + 0x4c], 0
mov edx, dword [esp + 0xf0]
mov esi, 0xffffffff
je 0x438a45
mov edi, eax
and edi, 0x7ff00000
cmp edi, 0x6a00000
ja 0x438a45
shr edi, 0x14
mov ecx, 0x6b
mov esi, 0xffffffff
sub ecx, edi
shl esi, cl
cmp edx, esi
jne 0x4390f2
mov esi, dword [esp + 8]
cmp eax, 0x7fefffff
jne 0x4391ef
cmp edx, 0xffffffff
jne 0x4391ef
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
jmp 0x438c93
mov cl, 1
mov dword [esp + 0x38], 0
jmp 0x439100
mov ecx, 1
sub ecx, edx
cmp ecx, 0x1f
jg 0x438b21
mov edx, dword [esp + 0xf0]
bt edx, ecx
jb 0x438b2d
jmp 0x438be8
mov esi, dword [0x559034]
mov eax, 1
mov ecx, ebx
shl eax, cl
mov ecx, 0x55b7a0
mov dword [esp + 0x28], eax
lea eax, [eax*4 + 0x1b]
mov edx, esi
sub edx, ecx
mov ecx, eax
shr ecx, 3
sar edx, 3
add edx, ecx
cmp edx, 0x120
ja 0x437fc8
lea eax, [esi + ecx*8]
mov dword [0x559034], eax
jmp 0x437fd6
mov edi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0xf4], 0x7ff00000
mov dword [esp + 0xf0], 0
test edi, edi
jne 0x4354ca
jmp 0x4354cc
mov eax, ecx
jmp 0x4356c5
add ecx, 0xffffffe0
bt eax, ecx
jae 0x438be8
cmp dword [esp + 0x38], 0
je 0x438b8d
mov ecx, eax
and ecx, 0x7ff00000
add ecx, 0xfcc00000
cmp dword [esp + 0x4c], 0
movd xmm0, ecx
pshufd xmm0, xmm0, 0x51
je 0x438b79
shr eax, 0x14
mov ecx, 0x6b
and eax, 0x7ff
sub ecx, eax
jle 0x438b79
shl ecx, 0x14
add ecx, 0x3ff00000
movd xmm1, ecx
pshufd xmm1, xmm1, 0x51
mulsd xmm0, xmm1
addsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xf0], xmm0
jmp 0x438be8
mov ecx, eax
and ecx, 0x7ff00000
add ecx, 0xfcc00000
cmp dword [esp + 0x4c], 0
movd xmm0, ecx
pshufd xmm0, xmm0, 0x51
je 0x438bd2
shr eax, 0x14
mov ecx, 0x6b
and eax, 0x7ff
sub ecx, eax
jle 0x438bd2
shl ecx, 0x14
add ecx, 0x3ff00000
movd xmm1, ecx
pshufd xmm1, xmm1, 0x51
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xf0]
subsd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
mov eax, 0x7ff00000
and eax, dword [esp + 0xf4]
cmp eax, 0x7ff00000
je 0x438c91
test eax, eax
jne 0x438c31
movsd xmm0, qword [esp + 0xf0]
xorpd xmm1, xmm1
mov dword [esp + 0x10], 0
ucomisd xmm0, xmm1
jne 0x438c31
jp 0x438c31
mov edx, dword [esp + 0x10]
mov dword [esp + 0xf4], 0
jmp 0x438c9e
cmp dword [esp + 0x4c], 0
je 0x438c89
movsd xmm0, qword [esp + 0xf0]
mov eax, 0xffffffff
mov ecx, 0x7fefffff
mov edi, dword [ebp + 0xc]
add eax, 1
adc ecx, 0
mulsd xmm0, qword [0x511480]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0x88], xmm0
and ecx, dword [esp + 0x8c]
and eax, dword [esp + 0x88]
or eax, ecx
jne 0x4390b9
jmp 0x4390ae
mov edi, dword [ebp + 0xc]
jmp 0x4390b9
xor edx, edx
mov dword [esp + 0xf4], 0x7ff00000
mov dword [esp + 0xf0], 0
mov edi, dword [ebp + 0xc]
test edx, edx
je 0x4390ae
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edx
test eax, eax
je 0x438d86
cmp dword [eax + 4], 8
jl 0x438cd8
push eax
call fcn.0041dcb0
add esp, 4
jmp 0x438d82
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438d16
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438d16
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438d76
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438d76
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x438e54
cmp dword [eax + 4], 8
jl 0x438da6
push eax
call fcn.0041dcb0
add esp, 4
jmp 0x438e50
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438de4
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438de4
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438e44
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438e44
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov edx, dword [esp + 0x10]
test esi, esi
je 0x438f1a
cmp dword [esi + 4], 8
jl 0x438e70
push esi
call fcn.0041dcb0
add esp, 4
jmp 0x438f16
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438eae
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438eae
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [esi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [esi], ecx
mov dword [eax*4 + 0x55b770], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438f0a
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438f0a
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
mov edx, dword [esp + 0x10]
cmp dword [edx + 4], 8
jl 0x438f3a
push edx
call fcn.0041dcb0
add esp, 4
mov esi, dword [esp + 0xc]
test esi, esi
jne 0x438ff0
jmp 0x4390ae
mov eax, dword [0x55b790]
mov esi, dword [esp + 0xc]
cmp eax, 1
ja 0x438f7c
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438f7c
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [edx], ecx
mov dword [eax*4 + 0x55b770], edx
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x438fdc
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x438fdc
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
test esi, esi
je 0x4390ae
mov esi, dword [esp + 0xc]
cmp dword [esi + 4], 8
jl 0x439008
push esi
call fcn.0041dcb0
add esp, 4
jmp 0x4390ae
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x439046
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x439046
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov ecx, dword [0x55b790]
call fcn.0042cc40
mov eax, dword [esi + 4]
mov ecx, dword [eax*4 + 0x55b770]
mov dword [esi], ecx
mov dword [eax*4 + 0x55b770], esi
mov eax, dword [0x55b790]
cmp eax, 1
ja 0x4390a2
push 0x55b790
call fcn.00424d90
add esp, 4
test al, al
je 0x4390a2
mov ecx, 0x55b794
call fcn.0043e370
push 0x55b790
push 0
push 0x55b794
push 0x55b790
call fcn.00424e50
add esp, 0x10
mov eax, dword [0x55b790]
push eax
call dword [0x50d108]
call fcn.004e2752
mov dword [eax], 0x22
mov eax, dword [esp + 0x3c]
test edi, edi
jne 0x4354ca
jmp 0x4354cc
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
jmp 0x438c93
mov esi, dword [esp + 8]
mov al, 1
mov dword [esp + 4], eax
test edi, edi
jne 0x4376d4
jmp 0x4377a9
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
xor ecx, ecx
mov edx, dword [esp + 0x50]
test edx, edx
je 0x439111
test eax, edx
jne 0x439122
jmp 0x43922f
mov edx, dword [esp + 0x40]
test dword [esp + 0xf0], edx
je 0x43922f
mov edx, eax
and edx, 0x7ff00000
add edx, 0xfcc00000
cmp dword [esp + 0x4c], 0
movd xmm0, edx
pshufd xmm0, xmm0, 0x51
je 0x439167
shr eax, 0x14
mov edx, 0x6b
and eax, 0x7ff
sub edx, eax
jle 0x439167
shl edx, 0x14
add edx, 0x3ff00000
movd xmm1, edx
pshufd xmm1, xmm1, 0x51
mulsd xmm0, xmm1
movsd xmm1, qword [esp + 0xf0]
test cl, cl
je 0x4391a8
subsd xmm1, xmm0
xorpd xmm0, xmm0
ucomisd xmm1, xmm0
movsd qword [esp + 0xf0], xmm1
jne 0x4391b5
jp 0x4391b5
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], 0
cmp dword [esp + 0x44], eax
jle 0x437c04
jmp 0x43922f
addsd xmm0, xmm1
movsd qword [esp + 0xf0], xmm0
mov eax, 1
mov dword [esp + 4], 0
sub eax, dword [esp + 0x38]
mov dword [esp + 0x38], eax
test edi, edi
jne 0x4376d4
jmp 0x4377a9
add ecx, 0xffffffe0
mov eax, 0xffffffff
shl eax, cl
and eax, esi
mov dword [esp + 0xf4], eax
jmp 0x435a32
and eax, 0x7ff00000
mov dword [esp + 0x38], 0
add eax, 0x100000
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], 0
jmp 0x439227
cmp dword [esp + 0x44], ecx
mov dword [esp + 0x38], 0
jle 0x437c04
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
mov dword [esp + 4], 0
test edi, edi
jne 0x4376d4
jmp 0x4377a9
mov bl, 0x30
inc ecx
xor edi, edi
xor eax, eax
xor esi, esi
mov dword [esp + 0x10], 1
mov dword [esp + 0x30], 0
movzx ebx, bl
movzx edx, byte [ebx + 0x5115e0]
test dl, dl
je 0x4392a1
and dl, 0xf
test edi, edi
mov ebx, 0
movzx eax, dl
mov edx, dword [esp + 0x30]
cmove ebx, esi
cmovne edx, esi
cmp dword [esp + 0x10], 0
je 0x43928d
shld edx, ebx, 4
shl ebx, 4
mov dword [esp + 0x30], edx
xor edi, edi
or ebx, eax
mov eax, 1
mov esi, ebx
jmp 0x4392ce
cmp bl, 0x21
jae 0x439314
mov ebx, dword [esp + 0x10]
test ebx, ebx
setne dl
test eax, eax
setne dh
test dl, dh
mov edx, eax
mov eax, 0
cmovne ebx, eax
mov eax, 1
cmovne edi, eax
mov eax, edx
mov dword [esp + 0x10], ebx
movzx ebx, byte [ecx]
inc ecx
test bl, bl
jne 0x43925d
mov ecx, dword [esp + 0x24]
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
and edx, 0xfffff
mov eax, edx
or eax, esi
je 0x439323
or edx, 0x7ff00000
mov eax, ecx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], esi
test edi, edi
jne 0x4354ca
jmp 0x4354cc
cmp ebx, 0x29
je 0x4392da
movsx ebx, byte [ecx]
inc ecx
test ebx, ebx
jne 0x439314
jmp 0x4392d6
mov eax, ecx
test edi, edi
jne 0x4354ca
jmp 0x4354cc