Function at 0x4352e2
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5e8
mov dword [esp + 0x48], 0xd
xorps xmm2, xmm2
mov dword [esp + 0x4c], 0x23
mov dword [esp + 0x50], 0x51
mov dword [esp + 0x54], 0xffffff51
movups xmm1, xmmword [esp + 0x48]
mov dword [esp + 0x17c], 0x55
mov dword [esp + 0x180], 0x27
movaps xmm0, xmm1
mov dword [esp + 0x184], 6
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x188], 0xffffff53
movups xmm0, xmm1
mov dword [esp + 0x144], edx
psrldq xmm0, 4
mov edx, 0x1a89
paddd xmm1, xmm0
mov dword [esp + 0x2d8], ecx
movd eax, xmm1
movups xmm1, xmmword [esp + 0x17c]
push esi
add eax, 0x2e
mov dword [esp + 0x24], 0x5d
movaps xmm0, xmm1
mov dword [esp + 0x158], eax
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x28], 0x50
movups xmm0, xmm1
mov dword [esp + 0x2c], 0xffffff60
psrldq xmm0, 4
paddd xmm1, xmm0
push edi
movd eax, xmm1
push 0xe
add eax, 0x2b
mov dword [esp + 0x344], eax
pop eax
mov dword [esp + 0x6c], eax
mov esi, eax
mov eax, 0x4038a0
push 0x63
mov dword [esp + 0x1b8], eax
pop ecx
add edx, ecx
inc eax
cmp edx, 0x1e2a
ja 0x4353ef
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4353db
jmp 0x4353f4
call fcn.0043504b
mov eax, dword [0x44a778]
or eax, 0x2fb1eac0
mov dword [esp + 0x24], eax
xor eax, eax
mov ecx, eax
sub esi, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 3
jl 0x435406
push 0xa
pop ecx
mov dword [esp + 0x74], ecx
mov edx, ecx
mov dword [esp + 0x1a0], esi
mov ecx, eax
mov dword [esp + 0x198], 0x21
mov dword [esp + 0x19c], 0xffffffd5
add edx, dword [esp + ecx*4 + 0x198]
inc ecx
cmp ecx, 2
jl 0x435438
mov dword [esp + 0x2c0], edx
mov ecx, eax
mov edx, eax
mov dword [esp + 0x28], 0x2e
mov dword [esp + 0x2c], 0x33
mov dword [esp + 0x30], 0xffffff9f
sub edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 3
jl 0x435468
push 0xe
mov dword [esp + 0x2c8], edx
lea edi, [esp + 0x2c]
pop edx
push 0x63
pop ecx
mov dword [esp + 0x36c], 0x19
mov esi, 0x402f04
mov dword [esp + 0x364], edx
movaps xmm1, xmm2
mov dword [esp + 0x368], ecx
mov dword [esp + 0x36c], 0x19
mov dword [esp + 0x370], 0xffffff76
movups xmm0, xmmword [esp + 0x364]
movsd dword es:[edi], dword [esi]
push 0x21
psubd xmm1, xmm0
mov byte [esp + 0xcc], dl
movaps xmm0, xmm1
mov dword [esp + 0xb4], 0xad275d73
psrldq xmm0, 8
mov edx, 0x4e8
movsd dword es:[edi], dword [esi]
paddd xmm1, xmm0
pop eax
movups xmm0, xmm1
mov byte [esp + 0xca], al
push 0xf
pop eax
movsw word es:[edi], word [esi]
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x130], eax
mov byte [esp + 0xe2], al
mov eax, 0x4038a0
movd dword [esp + 0x2c8], xmm1
mov dword [esp + 0xb4], 0x49e48b29
mov dword [esp + 0xb8], 0xea589b69
mov dword [esp + 0x120], 0x24
mov dword [esp + 0xbc], 0x73690d24
mov dword [esp + 0xc0], 0x51930619
mov dword [esp + 0xc4], 0x6b320071
mov byte [esp + 0xc9], 0x4a
mov dword [esp + 0xcb], 0x734fc289
mov dword [esp + 0xcf], 0x8d89c22c
mov dword [esp + 0xd3], 0x4d4c2330
mov dword [esp + 0xd7], 0x915601f4
mov dword [esp + 0xdb], 0x299d2803
mov word [esp + 0xdf], 0x89fb
mov byte [esp + 0xe1], 0x6a
mov dword [esp + 0xe3], 0xf246908c
mov dword [esp + 0xe7], 0x3af340b9
mov dword [esp + 0xeb], 0x342e982e
mov byte [esp + 0xef], 0xc0
movsb byte es:[edi], byte [esi]
add edx, ecx
inc eax
cmp edx, 0x1a9f
ja 0x4355f3
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4355df
jmp 0x4355fd
mov ecx, 0x4036b8
call fcn.00435151
mov ecx, dword [esp + 0x24]
add ecx, 0xded29b61
mov dword [esp + 0x4c], ecx
call fcn.0043504b
xor eax, eax
mov edi, eax
mov ecx, eax
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x435616
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x74]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x28]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x435628
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
mov cl, byte [esp + edi + 0x1c0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x10], eax
mov al, byte [esp + eax + 0x1c0]
mov byte [esp + edi + 0x1c0], al
mov eax, dword [esp + 0x10]
mov byte [esp + eax + 0x1c0], cl
movzx eax, byte [esp + edi + 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c0]
xor al, byte [esp + esi + 0xb0]
mov byte [esp + esi + 0x460], al
inc esi
cmp esi, 0x40
jb 0x435676
mov esi, 0x40231c
mov dword [esp + 0x14], 0xc1f976b2
lea edi, [esp + 0xf4]
mov word [esp + 0x18], 0x9ab4
xor eax, eax
mov byte [esp + 0x4a0], al
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
push 0x63
mov edx, 0x3da
mov eax, 0x4038a0
pop ecx
add edx, ecx
inc eax
cmp edx, 0x9d4
ja 0x435723
movsx ecx, byte [eax]
test ecx, ecx
jne 0x43570b
mov edi, dword [esp + 0x4c]
jmp 0x435737
mov ecx, 0x402fb0
call fcn.00435151
mov edi, dword [esp + 0x4c]
and edi, 0x89fabcf4
and edi, 0xf39507e4
mov dword [esp + 0x4c], edi
call fcn.0043504b
xor eax, eax
mov ecx, eax
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x43574a
mov esi, eax
mov edi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x6c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0xf4]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x43575e
mov edi, dword [esp + 0x4c]
xor eax, eax
xor edi, 0x8fb59953
mov dword [esp + 0x10], eax
mov dword [esp + 0x68], edi
mov esi, eax
mov edi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
push 6
mov cl, byte [esp + edi + 0x1c4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x14], eax
mov al, byte [esp + eax + 0x1c4]
mov byte [esp + edi + 0x1c4], al
mov eax, dword [esp + 0x14]
mov byte [esp + eax + 0x1c4], cl
movzx eax, byte [esp + edi + 0x1c4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c4]
xor al, byte [esp + esi + 0x18]
mov byte [esp + esi + 0x350], al
inc esi
pop eax
cmp esi, eax
jb 0x4357bd
mov edi, dword [esp + 0x68]
xor eax, eax
mov byte [esp + 0x352], al
mov edx, eax
mov dword [esp + 0x28], 0x1a
mov ecx, eax
mov dword [esp + 0x2c], 0x5e
mov dword [esp + 0x30], 0xffffff88
sub edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 3
jl 0x435843
mov ecx, dword [esp + 0x4c]
or edi, 0x4e4759d1
mov dword [esp + 0x33c], edx
mov esi, eax
mov dword [esp + 0x20], 0x2d
mov dword [esp + 0x150], 0x3f
mov dword [esp + 0x154], 5
mov dword [esp + 0x158], 0xffffff91
mov edx, eax
inc edx
cmp edx, 0x9a8
je 0x43589e
cmp byte [edx + 0x4038a0], al
jne 0x43588b
jmp 0x4358a4
imul edi, ecx, 0x2debd03
mov ecx, edi
xor ecx, 0xc11a0e61
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x20]
add edx, dword [esp + esi*4 + 0x150]
imul ecx, edi, 0xefeac691
inc esi
mov dword [esp + 0x20], edx
cmp esi, 3
jl 0x435889
push 0x15
pop ecx
push 0x14
mov dword [esp + 0x78], ecx
add edi, 0x336321b8
mov byte [esp + 0xb7], cl
mov esi, 0x4031b4
pop ecx
push 5
mov dword [esp + 0x50], ecx
movaps xmm1, xmm2
mov byte [esp + 0xbd], cl
mov dword [esp + 0x6c], edi
lea edi, [esp + 0x54]
mov dword [esp + 0x54], 0x16
mov dword [esp + 0x58], 0x53
mov dword [esp + 0x5c], 7
mov dword [esp + 0x60], 0xffffff90
movups xmm0, xmmword [esp + 0x54]
pop ecx
rep movsd dword es:[edi], dword [esi]
psubd xmm1, xmm0
mov word [esp + 0xb0], 0xd28d
movaps xmm0, xmm1
mov byte [esp + 0xb2], 0x72
psrldq xmm0, 8
mov ecx, 0x4038a0
paddd xmm1, xmm0
movsw word es:[edi], word [esi]
movups xmm0, xmm1
mov dword [esp + 0xb4], 0x6bec3882
psrldq xmm0, 4
mov esi, 0x203f
paddd xmm1, xmm0
mov byte [esp + 0xb8], 0xcd
push 0x63
movd dword [esp + 0x2d0], xmm1
mov dword [esp + 0xbe], 0x891a6ee0
mov dword [esp + 0xc2], 0x5afd61c6
mov dword [esp + 0xc6], 0xef0dde57
mov dword [esp + 0xca], 0xb7d55ad9
mov dword [esp + 0xce], 0xf37736f8
mov dword [esp + 0xd2], 0x25a9c313
mov dword [esp + 0xd6], 0x5970f104
mov dword [esp + 0xda], 0xb4604e55
mov dword [esp + 0xde], 0xbe743c1f
mov dword [esp + 0xe2], 0x9e9435af
mov dword [esp + 0xe6], 0x5f4da5ee
mov dword [esp + 0xea], 0xf800a36d
mov dword [esp + 0xee], 0xd63ce242
mov word [esp + 0xf2], 0x6162
pop edx
add esi, edx
inc ecx
cmp esi, 0x2092
ja 0x435a31
movsx edx, byte [ecx]
test edx, edx
jne 0x435a19
mov esi, dword [esp + 0x68]
jmp 0x435a46
call fcn.0043504b
imul esi, dword [esp + 0x24], 0x6e4e4c52
add esi, 0x2f3e64ea
xor eax, eax
xor esi, 0x29fd9eac
mov dword [esp + 0x24], eax
mov dword [esp + 0x68], esi
mov ecx, eax
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x435a56
mov edi, eax
xor edx, edx
mov cl, byte [esp + edi + 0x1c0]
mov eax, edi
mov byte [esp + 0xf], cl
div dword [esp + 0x74]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x50]
add eax, dword [esp + 0x24]
add ecx, eax
movzx ecx, cl
mov dword [esp + 0x24], ecx
mov al, byte [esp + ecx + 0x1c0]
mov byte [esp + edi + 0x1c0], al
inc edi
mov al, byte [esp + 0xf]
mov byte [esp + ecx + 0x1c0], al
cmp edi, 0x100
jb 0x435a68
xor eax, eax
mov dword [esp + 0x10], eax
mov esi, eax
mov edi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [esp + 0x10]
mov cl, byte [esp + esi + 0x1c0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x10], eax
mov al, byte [esp + eax + 0x1c0]
mov byte [esp + esi + 0x1c0], al
mov eax, dword [esp + 0x10]
mov byte [esp + eax + 0x1c0], cl
movzx eax, byte [esp + esi + 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c0]
xor al, byte [esp + edi + 0xb0]
mov byte [esp + edi + 0x4a8], al
inc edi
cmp edi, 0x40
jb 0x435abc
mov eax, dword [0x40262c]
xor ecx, ecx
mov dword [esp + 0x144], eax
mov ax, word [0x402630]
mov word [esp + 0x148], ax
mov eax, ecx
mov byte [esp + 0x4e8], cl
mov dword [esp + 0x14], 0x38e0a66a
mov word [esp + 0x18], 0x3b01
mov dword [esp + 0x24], ecx
mov byte [esp + eax + 0x1c0], al
inc eax
cmp eax, 0x100
jb 0x435b52
mov edi, ecx
xor edx, edx
mov cl, byte [esp + edi + 0x1c0]
mov eax, edi
mov byte [esp + 0xf], cl
div dword [esp + 0x154]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x144]
add eax, dword [esp + 0x24]
add ecx, eax
movzx ecx, cl
mov dword [esp + 0x24], ecx
mov al, byte [esp + ecx + 0x1c0]
mov byte [esp + edi + 0x1c0], al
inc edi
mov al, byte [esp + 0xf]
mov byte [esp + ecx + 0x1c0], al
cmp edi, 0x100
jb 0x435b63
xor eax, eax
mov dword [esp + 0x10], eax
mov esi, eax
mov edi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [esp + 0x10]
push 6
mov cl, byte [esp + esi + 0x1c4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x14], eax
mov al, byte [esp + eax + 0x1c4]
mov byte [esp + esi + 0x1c4], al
mov eax, dword [esp + 0x14]
mov byte [esp + eax + 0x1c4], cl
movzx eax, byte [esp + esi + 0x1c4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c4]
xor al, byte [esp + edi + 0x18]
mov byte [esp + edi + 0x358], al
inc edi
pop eax
cmp edi, eax
jb 0x435bbd
mov esi, dword [esp + 0x68]
xor ecx, ecx
push 0x1a
pop edx
push 4
pop eax
push 5
mov dword [esp + 0x54], eax
mov dword [esp + 0x60], eax
mov eax, ecx
mov byte [esp + 0x35e], cl
mov dword [esp + 0x58], 0x51
mov dword [esp + 0x5c], 0x48
mov dword [esp + 0x64], 0xffffff77
pop edi
sub edx, dword [esp + eax*4 + 0x50]
inc eax
cmp eax, edi
jl 0x435c52
mov dword [esp + 0x50], 1
movaps xmm1, xmm2
mov dword [esp + 0x54], 0x1e
mov eax, ecx
mov dword [esp + 0x58], 0x11
mov dword [esp + 0x5c], 0xffffffd0
movups xmm0, xmmword [esp + 0x50]
mov dword [esp + 0x330], edx
mov edx, 0x210
mov dword [esp + 0x28], 7
psubd xmm1, xmm0
mov dword [esp + 0x2c], 0x5b
movaps xmm0, xmm1
mov dword [esp + 0x30], 0x182
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x338], xmm1
sub edx, dword [esp + eax*4 + 0x28]
inc eax
cmp eax, 3
jl 0x435cce
push 6
pop eax
mov byte [esp + 0x9e], al
mov edi, ecx
mov eax, dword [esp + 0x120]
mov byte [esp + 0xad], al
mov eax, dword [0x4036c4]
mov dword [esp + 0x14], eax
mov ax, word [0x4036c8]
mov dword [esp + 0x32c], edx
mov dword [esp + 0x84], 0x5260a280
mov dword [esp + 0x88], 0xbedffdfb
mov dword [esp + 0x8c], 0x52676651
mov dword [esp + 0x90], 0x91004c27
mov dword [esp + 0x94], 0x6e0e20b1
mov dword [esp + 0x98], 0x2d80c52f
mov word [esp + 0x9c], 0xdda4
mov dword [esp + 0x9f], 0x319ac836
mov dword [esp + 0xa3], 0x5c789541
mov dword [esp + 0xa7], 0x29113a6c
mov word [esp + 0xab], 0x8f9
mov word [esp + 0xae], 0x40df
mov word [esp + 0x18], ax
add esi, 0x183e9cf5
mov eax, ecx
mov dword [esp + 0x70], esi
mov byte [esp + eax + 0x1c0], al
inc eax
cmp eax, 0x100
jb 0x435d9a
mov esi, ecx
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x154]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x14]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x435dab
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
mov cl, byte [esp + edi + 0x1c0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x10], eax
mov al, byte [esp + eax + 0x1c0]
mov byte [esp + edi + 0x1c0], al
mov eax, dword [esp + 0x10]
mov byte [esp + eax + 0x1c0], cl
movzx eax, byte [esp + edi + 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c0]
xor al, byte [esp + esi + 0x84]
mov byte [esp + esi + 0x400], al
inc esi
cmp esi, 0x2c
jb 0x435dfc
mov esi, 0x4036cc
mov dword [esp + 0x14], 0x9de3fc60
lea edi, [esp + 0x50]
mov word [esp + 0x18], 0x94b4
xor eax, eax
mov byte [esp + 0x42c], al
mov ecx, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, eax
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x435e83
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x130]
movzx ecx, cl
push 0x63
movzx eax, byte [esp + edx + 0x54]
mov edx, 0x499
add eax, edi
add ecx, eax
mov eax, 0x4038a0
movzx edi, cl
pop ecx
add edx, ecx
inc eax
cmp edx, 0xf47
ja 0x435edf
movsx ecx, byte [eax]
test ecx, ecx
jne 0x435ec7
mov eax, dword [esp + 0x70]
jmp 0x435eec
mov eax, dword [esp + 0x70]
or eax, 0x805fb627
mov dword [esp + 0x70], eax
and eax, 0x51d36898
mov dword [esp + 0x24], eax
mov ecx, 0x4036e0
call fcn.00435151
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x435e95
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov esi, eax
mov eax, dword [esp + 0x24]
and eax, 0x95c7123f
mov dword [esp + 0x74], eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
push 6
mov cl, byte [esp + edi + 0x1c4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x14], eax
mov al, byte [esp + eax + 0x1c4]
mov byte [esp + edi + 0x1c4], al
mov eax, dword [esp + 0x14]
mov byte [esp + eax + 0x1c4], cl
movzx eax, byte [esp + edi + 0x1c4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c4]
xor al, byte [esp + esi + 0x18]
mov byte [esp + esi + 0x360], al
inc esi
pop eax
cmp esi, eax
jb 0x435f3c
mov esi, dword [esp + 0x24]
xor eax, eax
mov dword [esp + 0x50], 0x16
mov ecx, esi
mov dword [esp + 0x54], 0x2a
xor ecx, 0x54671417
mov dword [esp + 0x58], 0x40
mov dword [esp + 0x5c], 0xffffff45
movups xmm1, xmmword [esp + 0x50]
mov byte [esp + 0x362], al
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd edx, xmm1
add edx, 0x3b
mov dword [esp + 0x134], edx
mov edx, eax
inc edx
cmp edx, 0x156f
jl 0x436012
cmp byte [edx + 0x4038a0], al
jne 0x435fff
jmp 0x436026
mov ecx, 0x403710
call fcn.00435151
mov ecx, esi
and ecx, 0x45bc4703
xor eax, eax
imul edi, ecx, 0x25bda95c
mov dword [esp + 0x70], edi
push 5
pop edi
push 0x2d
pop esi
mov dword [esp + 0x50], edi
mov ecx, eax
mov dword [esp + 0x54], esi
mov edx, 0xcfff3
mov dword [esp + 0x58], 0x58
mov dword [esp + 0x5c], 0x60
mov dword [esp + 0x60], 0xbff0a
sub edx, dword [esp + ecx*4 + 0x50]
inc ecx
cmp ecx, edi
jl 0x43605d
push 0x52
pop edi
mov dword [esp + 0x50], edi
movaps xmm1, xmm2
mov dword [esp + 0x54], esi
mov ecx, eax
mov dword [esp + 0x58], 0x59
mov dword [esp + 0x5c], 0xffffff28
movups xmm0, xmmword [esp + 0x50]
push 0x30
mov dword [esp + 0x128], edx
psubd xmm1, xmm0
mov dword [esp + 0x2c], 0x34
movaps xmm0, xmm1
mov dword [esp + 0x30], 0xffffff9c
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x168], xmm1
pop edx
add edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 2
jl 0x4360ca
push 0x2e
mov dword [esp + 0x16c], edx
mov ecx, eax
pop edx
mov dword [esp + 0x28], 0x41
mov dword [esp + 0x2c], 0xff91
add edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 2
jl 0x4360f0
push 6
pop ecx
mov dword [esp + 0x170], edx
mov edx, ecx
mov dword [esp + 0x28], 0x3b
mov ecx, eax
mov dword [esp + 0x2c], 0xb
mov dword [esp + 0x30], 0xffffffb4
add edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 3
jl 0x436120
push 0x1c
mov dword [esp + 0x170], edx
mov ecx, eax
pop edx
mov dword [esp + 0x28], 9
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0xffffff8a
add edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 3
jl 0x43614a
mov dword [esp + 0x50], 0x46
mov dword [esp + 0x54], 0x43
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 0xffffff20
movups xmm1, xmmword [esp + 0x50]
push 0x3e
mov dword [esp + 0x324], edx
paddd xmm1, xmm2
mov dword [esp + 0x2c], 0x5a
movaps xmm0, xmm1
mov dword [esp + 0x30], 0x1ff68
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
pop edi
add ecx, 0x4b
mov dword [esp + 0x31c], ecx
inc eax
cmp eax, 0x1785
je 0x4361df
cmp byte [eax + 0x4038a0], 0
jne 0x4361bd
cmp eax, 0xff7
jg 0x4361e9
imul esi, dword [esp + 0x74], 0xa4a7a920
jmp 0x4361f8
mov ecx, 0x403750
call fcn.00435151
call fcn.0043504b
mov esi, dword [esp + 0x74]
xor esi, 0x457b5062
mov eax, esi
xor eax, 0xd277fc51
mov dword [0x44a78c], eax
call fcn.0043504b
xor eax, eax
mov ecx, eax
add edi, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 2
jl 0x43620d
mov dword [esp + 0x50], 0x43
movaps xmm1, xmm2
mov dword [esp + 0x54], 0x59
mov edx, eax
mov dword [esp + 0x58], 0x10
mov dword [esp + 0x5c], 0xffffff14
movups xmm0, xmmword [esp + 0x50]
mov dword [esp + 0x1b8], edi
mov dword [esp + 0x28], 0x5c
paddd xmm1, xmm0
mov dword [esp + 0x2c], 0x53
movaps xmm0, xmm1
mov dword [esp + 0x30], 0xffffff51
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x40
mov dword [esp + 0x318], ecx
mov ecx, eax
sub edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 3
jl 0x43628c
push 4
mov dword [esp + 0x178], edx
pop edx
push 0x15
pop ecx
mov dword [esp + 0x28], ecx
mov ecx, eax
mov dword [esp + 0x2c], 0xffffffe7
add edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 2
jl 0x4362b1
push 0x14
pop ecx
push 0xa
mov dword [esp + 0x58], ecx
pop ecx
push 5
mov dword [esp + 0x17c], edx
mov edx, 0x1c0000
mov dword [esp + 0x60], ecx
mov ecx, eax
mov dword [esp + 0x54], 0x31
mov dword [esp + 0x5c], 0x4b
mov dword [esp + 0x64], 0x17ff66
pop edi
sub edx, dword [esp + ecx*4 + 0x50]
inc ecx
cmp ecx, edi
jl 0x4362f2
mov dword [esp + 0x180], edx
mov ecx, eax
mov edx, eax
mov dword [esp + 0x50], 0x2e
mov dword [esp + 0x54], 0x29
mov dword [esp + 0x58], 0x2f
mov dword [esp + 0x5c], 0x26
mov dword [esp + 0x60], 0xffffff54
sub edx, dword [esp + ecx*4 + 0x50]
inc ecx
cmp ecx, edi
jl 0x43632e
push 0x4a
mov dword [esp + 0x180], edx
mov ecx, eax
pop edx
mov dword [esp + 0x28], 0x60
mov dword [esp + 0x2c], 0x12
mov dword [esp + 0x30], 0xffffff44
add edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 3
jl 0x43635b
mov dword [esp + 0x50], 0x18
movaps xmm1, xmm2
mov dword [esp + 0x54], 0x59
mov dword [esp + 0x58], 0x54
mov dword [esp + 0x5c], 0xffffff3b
movups xmm0, xmmword [esp + 0x50]
push 0x21
pop ecx
psubd xmm1, xmm0
mov dword [esp + 0x38], ecx
movaps xmm0, xmm1
mov dword [esp + 0x34], 0x33
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x3c], 0xb
movups xmm0, xmm1
mov dword [esp + 0x40], 0xffffff61
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x324], edx
movups xmm0, xmmword [esp + 0x34]
mov dword [esp + 0x34], 0x61
movd dword [esp + 0x328], xmm1
movaps xmm1, xmm2
paddd xmm1, xmm0
mov dword [esp + 0x38], 0x56
movaps xmm0, xmm1
mov dword [esp + 0x3c], 0x35
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x40], 0xfffffec4
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x41
mov dword [esp + 0x78], ecx
mov ecx, eax
inc ecx
cmp ecx, 0x1e5b
jg 0x43644c
cmp byte [ecx + 0x4038a0], al
jne 0x436429
cmp ecx, 0x1081
jg 0x436453
mov edx, esi
xor edx, 0x87a90e3f
jmp 0x436457
call fcn.0043504b
xor eax, eax
mov edx, dword [esp + 0x70]
movups xmm1, xmmword [esp + 0x34]
xor esi, esi
mov dword [esp + 0x28], 0x13
mov dword [esp + 0x2c], 0xffffffec
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x51
inc esi
mov dword [esp + 0x308], ecx
mov ecx, eax
add esi, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 2
jl 0x43649b
mov ecx, dword [esp + 0x120]
mov byte [esp + 0xf9], cl
push 0x3f
pop ecx
mov byte [esp + 0x100], cl
mov byte [esp + 0x106], cl
mov ecx, edi
mov dword [esp + 0x304], esi
lea edi, [esp + 0x34]
mov esi, 0x4018b8
mov dword [esp + 0xf4], 0x7b6f99a5
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0xf8], 0xe4
mov ecx, eax
mov dword [esp + 0xfa], 0xa2a3ad41
mov word [esp + 0xfe], 0x6a61
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x101], 0x37a753d1
mov edi, eax
mov byte [esp + 0x105], 0xe
mov dword [esp + 0x107], 0x992bd769
mov byte [esp + 0x10b], 0xb7
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x43652b
and edx, 0x9c305e52
mov esi, eax
mov dword [esp + 0x70], edx
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x4c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x436547
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
push 0x18
mov cl, byte [esp + edi + 0x1c4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x14], eax
mov al, byte [esp + eax + 0x1c4]
mov byte [esp + edi + 0x1c4], al
mov eax, dword [esp + 0x14]
mov byte [esp + eax + 0x1c4], cl
movzx eax, byte [esp + edi + 0x1c4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c4]
xor al, byte [esp + esi + 0xf8]
mov byte [esp + esi + 0x3e8], al
inc esi
pop eax
cmp esi, eax
jb 0x436595
mov edi, dword [esp + 0x70]
mov ecx, 0x403050
imul esi, edi, 0x45ab6479
call fcn.00435151
xor eax, eax
mov byte [esp + 0x3fc], al
mov ecx, eax
inc ecx
cmp ecx, 0x1c7b
jg 0x436627
cmp byte [ecx + 0x4038a0], al
jne 0x436614
jmp 0x436636
call fcn.0043504b
mov esi, edi
xor esi, 0x6ff6b4c6
xor eax, eax
add esi, 0x1fc0942b
mov dword [esp + 0x14], 0xbc515b48
mov word [esp + 0x18], 0x9c67
mov ecx, eax
inc ecx
cmp ecx, 0xf05
jg 0x436661
cmp byte [ecx + 0x4038a0], 0
jne 0x43664d
jmp 0x43667c
or edi, 0x8f9488f1
cmp ecx, 0x261e
jle 0x43667c
call fcn.0043504b
imul esi, edi, 0xe819506a
xor eax, eax
lea ecx, [esi + 0x2b8b6c9]
mov esi, 0x40200c
mov dword [esp + 0x68], ecx
lea edi, [esp + 0x84]
push 6
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movsw word es:[edi], word [esi]
mov edi, eax
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x43669d
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x36c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x84]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x4366af
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
push 6
mov cl, byte [esp + edi + 0x1c4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x14], eax
mov al, byte [esp + eax + 0x1c4]
mov byte [esp + edi + 0x1c4], al
mov eax, dword [esp + 0x14]
mov byte [esp + eax + 0x1c4], cl
movzx eax, byte [esp + edi + 0x1c4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c4]
xor al, byte [esp + esi + 0x18]
mov byte [esp + esi + 0x348], al
inc esi
pop eax
cmp esi, eax
jb 0x436703
xor eax, eax
mov dword [esp + 0x28], 0x32
push 0x3a
mov byte [esp + 0x34e], al
mov ecx, eax
pop edx
mov dword [esp + 0x2c], 0xffffff94
add edx, dword [esp + ecx*4 + 0x28]
inc ecx
cmp ecx, 2
jl 0x43677e
push 0x40
mov dword [esp + 0x2e0], edx
pop ecx
mov dword [esp + 0x28], 0x20
mov dword [esp + 0x2c], 0x4c
mov dword [esp + 0x30], 0xffffff54
add ecx, dword [esp + eax*4 + 0x28]
inc eax
cmp eax, 3
jl 0x4367aa
mov esi, 0x4038a0
mov dword [esp + 0x2d8], ecx
push 0x63
mov edx, 0xb4b
mov eax, esi
pop ecx
add edx, ecx
inc eax
cmp edx, 0x67a
ja 0x4367e2
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4367ca
mov edx, dword [esp + 0x68]
jmp 0x4367ec
mov edx, dword [esp + 0x68]
and edx, 0xfae93b12
mov dword [esp + 0x34], 0x23
movaps xmm1, xmm2
mov dword [esp + 0x38], 0x48
and edx, 0x5c125c70
mov dword [esp + 0x3c], 0x43
mov ecx, esi
mov dword [esp + 0x40], 0xffffff52
mov al, 0x63
movups xmm0, xmmword [esp + 0x34]
push 0x22
pop edi
psubd xmm1, xmm0
mov dword [esp + 0x68], edx
movaps xmm0, xmm1
mov dword [esp + 0x34], edi
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x38], 0x60
movups xmm0, xmm1
mov dword [esp + 0x3c], 0x49
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x40], 0xfffffef9
movd dword [esp + 0x2d4], xmm1
sub al, 0x30
cmp al, 9
ja 0x436875
inc ecx
mov al, byte [ecx]
test al, al
jne 0x436866
jmp 0x43687f
and edx, 0x2e60ebf0
mov dword [esp + 0x68], edx
imul eax, edx, 0xdeb4ff31
mov dword [esp + 0x4c], eax
call fcn.0043504b
movups xmm0, xmmword [esp + 0x34]
mov edx, dword [esp + 0x120]
movaps xmm1, xmm2
mov dword [esp + 0x38], edi
paddd xmm1, xmm0
mov dword [esp + 0x3c], 0x42
movaps xmm0, xmm1
mov dword [esp + 0x44], 0xffffff9a
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x11
add eax, 0x3d
mov dword [esp + 0x2d4], eax
pop eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
xor eax, eax
push 5
mov ecx, eax
pop edi
sub edx, dword [esp + ecx*4 + 0x34]
inc ecx
cmp ecx, edi
jl 0x4368ed
push 0x40
mov dword [esp + 0x318], edx
mov ecx, eax
pop edx
mov dword [esp + 0x34], 0x5e
mov dword [esp + 0x38], 0x33
mov dword [esp + 0x3c], 0x43
mov dword [esp + 0x40], 0x64
mov dword [esp + 0x44], 0xffffff00
sub edx, dword [esp + ecx*4 + 0x34]
inc ecx
cmp ecx, edi
jl 0x43692a
push 0x3e
pop esi
mov dword [esp + 0x334], edx
mov ecx, eax
mov edx, eax
mov dword [esp + 0x34], 0xd
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], 0xe
mov dword [esp + 0x40], 0x1a
mov dword [esp + 0x44], 0xffffff8d
sub edx, dword [esp + ecx*4 + 0x34]
inc ecx
cmp ecx, edi
jl 0x436965
mov esi, 0x40231c
mov dword [esp + 0x34], 0x57
lea edi, [esp + 0xf4]
mov dword [esp + 0x38], 0x4b
mov dword [esp + 0x3c], 0x43
movaps xmm1, xmm2
mov dword [esp + 0x40], 0xffffff1b
movups xmm0, xmmword [esp + 0x34]
movsd dword es:[edi], dword [esi]
push 6
psubd xmm1, xmm0
mov dword [esp + 0x2f0], edx
movaps xmm0, xmm1
mov dword [esp + 0x88], 0xf8d143cb
movsd dword es:[edi], dword [esi]
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x8c], 0x7d1f9a7
pop ecx
movsd dword es:[edi], dword [esi]
movups xmm0, xmm1
mov byte [esp + 0x95], cl
push 0x21
psrldq xmm0, 4
movsw word es:[edi], word [esi]
paddd xmm1, xmm0
pop ecx
mov byte [esp + 0xac], cl
mov ecx, eax
movd dword [esp + 0x300], xmm1
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x8c], 0xb6315a8c
mov edi, eax
mov dword [esp + 0x90], 0x965e8348
mov byte [esp + 0x94], 0x48
mov dword [esp + 0x96], 0xc6c0b6b5
mov dword [esp + 0x9a], 0x77dccb03
mov dword [esp + 0x9e], 0xa01e13e3
mov dword [esp + 0xa2], 0x98b21374
mov dword [esp + 0xa6], 0x8b3b86d1
mov word [esp + 0xaa], 0x7778
mov word [esp + 0xad], 0x5bc1
mov byte [esp + 0xaf], 0x1d
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x436a73
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x6c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0xf4]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x436a85
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov esi, eax
mov eax, dword [esp + 0x4c]
and eax, 0x1a9521b3
mov dword [esp + 0x6c], eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
mov cl, byte [esp + edi + 0x1c0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x10], eax
mov al, byte [esp + eax + 0x1c0]
mov byte [esp + edi + 0x1c0], al
mov eax, dword [esp + 0x10]
mov byte [esp + eax + 0x1c0], cl
movzx eax, byte [esp + edi + 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c0]
xor al, byte [esp + esi + 0x84]
mov byte [esp + esi + 0xb0], al
inc esi
cmp esi, 0x2c
jb 0x436ae3
mov eax, dword [0x401d38]
xor ecx, ecx
mov dword [esp + 0x144], eax
mov edi, ecx
mov ax, word [0x401d3c]
mov word [esp + 0x148], ax
mov eax, ecx
mov byte [esp + 0xdc], cl
mov dword [esp + 0x14], 0x1ce03759
mov word [esp + 0x18], 0xcba0
mov byte [esp + eax + 0x1c0], al
inc eax
cmp eax, 0x100
jb 0x436b77
mov esi, ecx
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x154]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x144]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x436b88
xor ecx, ecx
or dword [esp + 0x6c], 0x2c1df953
mov edx, ecx
mov edi, ecx
mov esi, ecx
lea eax, [edi + 1]
movzx edi, al
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + 0xf], al
movzx eax, al
mov dword [esp + 0x24], eax
add eax, edx
movzx eax, al
mov dword [esp + 0x130], eax
inc ecx
cmp ecx, 0xc7b
jg 0x436c1a
cmp byte [ecx + 0x4038a0], 0
jne 0x436c06
jmp 0x436c28
mov ecx, dword [esp + 0x68]
xor ecx, 0xa24d4bbc
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x6c]
mov ecx, 0x401050
mov dword [esp + 0x68], eax
call fcn.00435151
mov edx, dword [esp + 0x130]
push 6
mov al, byte [esp + edx + 0x1c4]
mov byte [esp + edi + 0x1c4], al
mov al, byte [esp + 0x13]
mov byte [esp + edx + 0x1c4], al
movzx eax, byte [esp + edi + 0x1c4]
add eax, dword [esp + 0x28]
movzx eax, al
mov al, byte [esp + eax + 0x1c4]
xor al, byte [esp + esi + 0x18]
mov byte [esp + esi + 0x2c], al
inc esi
pop eax
push 0
pop ecx
cmp esi, eax
jb 0x436be2
push 0x3f
xor eax, eax
mov dword [esp + 0x38], 0x46
pop edi
mov byte [esp + 0x2e], al
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], 0x32
mov dword [esp + 0x40], 0xffffff55
inc eax
cmp eax, 0x14bf
jg 0x436cbd
cmp byte [eax + 0x4038a0], 0
jne 0x436cac
cmp eax, 0x212b
jle 0x436cce
mov ecx, 0x403770
call fcn.00435151
call fcn.0043504b
movups xmm0, xmmword [esp + 0x34]
mov dword [esp + 0x38], 0x17
movaps xmm1, xmm2
mov dword [esp + 0x3c], 0x20
psubd xmm1, xmm0
mov dword [esp + 0x40], 0xffffffc4
movaps xmm0, xmm1
mov dword [esp + 0x14], 0x1a
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x18], 0x49
movups xmm0, xmm1
mov dword [esp + 0x1c], 0xffffff7a
psrldq xmm0, 4
paddd xmm1, xmm0
push 5
pop esi
movd eax, xmm1
movaps xmm1, xmm2
mov dword [esp + 0x34], esi
movups xmm0, xmmword [esp + 0x34]
add eax, 0xd
mov dword [esp + 0x130], eax
xor eax, eax
psubd xmm1, xmm0
mov ecx, eax
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
push 0x23
movd dword [esp + 0x2e8], xmm1
pop edx
add edx, dword [esp + ecx*4 + 0x14]
inc ecx
cmp ecx, 3
jl 0x436d70
push 0x4f
mov dword [esp + 0x2ec], edx
mov ecx, eax
pop edx
mov dword [esp + 0x14], 7
mov dword [esp + 0x18], 0x5b
mov dword [esp + 0x1c], 0x599c
add edx, dword [esp + ecx*4 + 0x14]
inc ecx
cmp ecx, 3
jl 0x436d9e
mov dword [esp + 0x34], 0x40
movaps xmm1, xmm2
mov dword [esp + 0x38], 0x5e
mov ecx, eax
mov dword [esp + 0x3c], 4
mov dword [esp + 0x40], 0xffffff5e
movups xmm0, xmmword [esp + 0x34]
mov dword [esp + 0x138], edx
mov edx, eax
mov dword [esp + 0x34], 0x35
psubd xmm1, xmm0
mov dword [esp + 0x38], 0x25
movaps xmm0, xmm1
mov dword [esp + 0x3c], 3
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x40], 0x5b
movups xmm0, xmm1
mov dword [esp + 0x44], 0xffffff48
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x2f0], xmm1
sub edx, dword [esp + ecx*4 + 0x34]
inc ecx
cmp ecx, esi
jl 0x436e28
push 0x5a
mov dword [esp + 0x154], edx
mov ecx, eax
pop edx
push 0x22
pop esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0xf84
add edx, dword [esp + ecx*4 + 0x14]
inc ecx
cmp ecx, 2
jl 0x436e4c
mov dword [esp + 0x34], 0x30
movaps xmm1, xmm2
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], 0x4a
mov dword [esp + 0x40], 0x1f07
movups xmm0, xmmword [esp + 0x34]
push 0x49
mov dword [esp + 0x300], edx
paddd xmm1, xmm0
mov dword [esp + 0x18], 0x3d
movaps xmm0, xmm1
mov dword [esp + 0x1c], 0x4f
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x20], 0xffffff6b
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
pop edx
add ecx, 0x5d
mov dword [esp + 0x2f8], ecx
mov ecx, eax
add edx, dword [esp + ecx*4 + 0x14]
inc ecx
cmp ecx, 3
jl 0x436ec8
push 0x38
mov dword [esp + 0x2f8], edx
mov ecx, eax
pop edx
mov dword [esp + 0x14], 0x53
mov dword [esp + 0x18], 0x2f
mov dword [esp + 0x1c], 0xffffff46
add edx, dword [esp + ecx*4 + 0x14]
inc ecx
cmp ecx, 3
jl 0x436ef6
mov dword [esp + 0x13c], edx
movaps xmm1, xmm2
mov edx, dword [esp + 0x4c]
push 5
mov dword [esp + 0x3c], 0x1b
mov dword [esp + 0x40], 0x50
lea ecx, [edx - 0x42d9e1c]
mov dword [esp + 0x44], 0xffffff90
mov dword [esp + 0x78], ecx
pop ecx
mov dword [esp + 0x34], ecx
mov ecx, eax
movups xmm0, xmmword [esp + 0x34]
push 0x5a
pop esi
psubd xmm1, xmm0
mov dword [esp + 0x14], 0x46
movaps xmm0, xmm1
mov dword [esp + 0x18], 0xffffff60
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [esp + 0x140], xmm1
add esi, dword [esp + ecx*4 + 0x14]
inc ecx
cmp ecx, 2
jl 0x436f76
mov dword [esp + 0xf0], esi
mov ecx, eax
mov dword [esp + 0x14], 0x3d
mov dword [esp + 0x18], 0x44
mov dword [esp + 0x1c], 0xffffff40
add edi, dword [esp + ecx*4 + 0x14]
inc ecx
cmp ecx, 3
jl 0x436fa1
push 6
pop ecx
push 0x18
mov byte [esp + 0x47], cl
mov esi, 0x401a88
pop ecx
push 6
mov byte [esp + 0x48], cl
pop ecx
mov dword [esp + 0x24], edi
lea edi, [esp + 0x84]
mov byte [esp + 0x4a], cl
push 8
pop ecx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x34], 0xfaaf62e7
mov dword [esp + 0x38], 0xbbd97641
mov dword [esp + 0x3c], 0xad99fbf6
mov word [esp + 0x40], 0x7dea
mov byte [esp + 0x42], 0x80
mov dword [esp + 0x45], 0x17576bc
mov byte [esp + 0x49], 0xaf
mov byte [esp + 0x4b], 0x8d
movsw word es:[edi], word [esi]
lea ecx, [edx - 0x5458712f]
mov edi, eax
mov dword [0x44a780], ecx
mov ecx, eax
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x43701d
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x198]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x84]
add eax, edi
add ecx, eax
imul eax, dword [esp + 0x74], 0x33e87bc9
movzx edi, cl
mov dword [esp + 0x74], eax
mov dword [0x44a778], eax
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x43702f
xor eax, eax
mov dword [esp + 0x10], eax
mov edi, eax
mov esi, eax
mov eax, dword [esp + 0x4c]
add eax, 0xaba78ed1
and eax, 0xfefefffd
or eax, 0xb85cd75d
mov dword [0x44a78c], eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x10]
mov cl, byte [esp + edi + 0x1c0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x10], eax
mov al, byte [esp + eax + 0x1c0]
mov byte [esp + edi + 0x1c0], al
mov eax, dword [esp + 0x10]
push 0x18
mov byte [esp + eax + 0x1c4], cl
movzx eax, byte [esp + edi + 0x1c4]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c4]
xor al, byte [esp + esi + 0x38]
mov byte [esp + esi + 0x88], al
inc esi
pop eax
cmp esi, eax
jb 0x4370ac
xor ecx, ecx
mov dword [esp + 0x14], 0x3a
push 0x32
mov byte [esp + 0xa0], cl
mov eax, ecx
pop edx
mov dword [esp + 0x18], 0xffffff94
add edx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, 2
jl 0x437127
push 0x50
mov dword [esp + 0x310], edx
pop edx
push 0x21
pop eax
push 5
mov dword [esp + 0x40], eax
mov eax, ecx
mov dword [esp + 0x38], 0x3a
mov dword [esp + 0x3c], 0x48
mov dword [esp + 0x44], 0x38
mov dword [esp + 0x48], 0xffffff6d
pop esi
sub edx, dword [esp + eax*4 + 0x34]
inc eax
cmp eax, esi
jl 0x437167
push 0x34
mov dword [esp + 0x148], edx
mov eax, ecx
pop edx
mov dword [esp + 0x14], 0x38
mov dword [esp + 0x18], 0x60
mov dword [esp + 0x1c], 0xffffff98
sub edx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, 3
jl 0x437194
push 0x46
mov dword [esp + 0x19c], edx
mov eax, ecx
pop edx
mov dword [esp + 0x14], 8
mov dword [esp + 0x18], 0xffffffb2
add edx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, 2
jl 0x4371ba
mov dword [esp + 0x310], edx
mov eax, ecx
mov edx, ecx
mov dword [esp + 0x14], 0x59
mov dword [esp + 0x18], 0x22
mov dword [esp + 0x1c], 0xffffff85
sub edx, dword [esp + eax*4 + 0x14]
inc eax
cmp eax, 3
jl 0x4371e7
mov eax, dword [esp + 0x340]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x14], edx
cmp dword [ebp + 0x10], eax
jne 0x4372ab
push 0x2b
pop esi
mov edx, 0x4038a0
mov al, 0x63
sub al, 0x30
cmp al, 9
ja 0x437229
inc edx
mov al, byte [edx]
test al, al
jne 0x43721a
jmp 0x437237
mov eax, dword [esp + 0x4c]
add eax, 0x2a667105
mov dword [0x44a778], eax
mov eax, dword [esp + 0x4c]
add eax, 0x86c1a642
mov dword [esp + 0x1a0], 0x27
mov dword [0x44a780], eax
mov dword [esp + 0x1a4], 0x35
mov dword [esp + 0x1a8], 0xffffff7a
add esi, dword [esp + ecx*4 + 0x1a0]
inc ecx
cmp ecx, 3
jl 0x437266
mov ecx, dword [ebp + 0x14]
call fcn.0041f07c
neg esi
mov dword [esp + 0x10], eax
cmp eax, esi
jne 0x4372ab
push 4
mov dword [esp + 0x2c], 0x17
xor eax, eax
mov dword [esp + 0x30], 0xffffffe8
pop ecx
add ecx, dword [esp + eax*4 + 0x28]
inc eax
cmp eax, 2
jl 0x43729a
mov eax, ecx
jmp 0x43837f
mov eax, dword [esp + 0x2c0]
push 0x10
push dword [esp + 0x2c8]
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x3c]
push eax
call fcn.0043423a
push 0x48
push dword [esp + 0x2d8]
lea eax, [esp + 0x394]
push eax
call fcn.0043423a
add esp, 0x18
lea eax, [esp + 0x74]
lea ecx, [esp + 0x34c]
push eax
push dword [esp + 0x2d0]
push dword [esp + 0x28]
push dword [esp + 0x348]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x470]
call fcn.0041d4c4
call eax
mov ecx, dword [esp + 0x74]
call fcn.0041d3cf
lea ecx, [esp + 0x74]
mov dword [esp + 0x3c4], eax
push ecx
push dword [esp + 0x33c]
lea ecx, [esp + 0x35c]
push dword [esp + 0x338]
push eax
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x4b8]
call fcn.0041d4c4
call eax
mov edx, dword [esp + 0x32c]
xor eax, eax
push dword [esp + 0x328]
xor ecx, ecx
xor edi, edi
push dword [esp + 0x328]
add edx, edi
bts eax, edx
cmp edx, 0x20
push 8
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
mov dword [esp + 0x1ac], eax
cmovae ecx, eax
lea eax, [esp + 0x1ac]
push eax
mov eax, dword [esp + 0x330]
cmp eax, dword [esp + 0x32c]
mov eax, dword [esp + 0x174]
mov dword [esp + 0x1b4], ecx
mov ecx, dword [esp + 0x328]
cmovne ecx, dword [esp + 0x1c8]
cmp eax, dword [esp + 0x178]
mov eax, dword [esp + 0x17c]
cmovne eax, dword [esp + 0x180]
or ecx, eax
mov eax, dword [esp + 0x184]
cmp eax, dword [esp + 0x188]
mov eax, dword [esp + 0x18c]
cmovne eax, dword [esp + 0x190]
or ecx, eax
mov eax, dword [esp + 0x134]
and eax, 7
or ecx, eax
push ecx
push dword [esp + 0x148]
lea ecx, [esp + 0x374]
push dword [esp + 0x3dc]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x41c]
call fcn.0041d4c4
call eax
mov eax, dword [esp + 0x78]
cmp dword [ebp + 0x10], eax
jne 0x437c35
mov eax, dword [esp + 0x120]
lea edi, [esp + 0x78]
mov esi, 0x40378c
mov byte [esp + 0x105], al
push 0x18
pop eax
mov byte [esp + 0x110], al
mov eax, dword [esp + 0x36c]
movsd dword es:[edi], dword [esi]
mov byte [esp + 0x11e], al
xor eax, eax
mov dword [esp + 0xf4], 0x6783f7c0
mov ecx, eax
mov dword [esp + 0xf8], 0x31e053d8
movsw word es:[edi], word [esi]
mov dword [esp + 0xfc], 0x2bfeb8ca
mov dword [esp + 0x100], 0xd0695226
mov byte [esp + 0x104], 0xe3
movsb byte es:[edi], byte [esi]
mov dword [esp + 0x106], 0xfc9c81db
mov edi, eax
mov dword [esp + 0x10a], 0x82396b2d
mov word [esp + 0x10e], 0xa05f
mov dword [esp + 0x111], 0xde27a512
mov dword [esp + 0x115], 0xf64cdcf8
mov dword [esp + 0x119], 0x52c4df43
mov byte [esp + 0x11d], 0x63
mov byte [esp + 0x11f], 0xc
mov byte [esp + ecx + 0x1c0], cl
inc ecx
cmp ecx, 0x100
jb 0x4374f8
mov esi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x1c0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x18c]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x78]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x1c0]
mov byte [esp + esi + 0x1c0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x1c0], al
cmp esi, 0x100
jb 0x43750a
xor eax, eax
mov dword [esp + 0x20], eax
mov edi, eax
mov esi, eax
imul eax, dword [0x44a78c], 0x175ae718
mov dword [esp + 0x6c], eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [esp + 0x20]
mov cl, byte [esp + edi + 0x1c0]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [esp + 0x20], eax
mov al, byte [esp + eax + 0x1c0]
mov byte [esp + edi + 0x1c0], al
mov eax, dword [esp + 0x20]
mov byte [esp + eax + 0x1c0], cl
movzx eax, byte [esp + edi + 0x1c0]
add eax, edx
movzx eax, al
mov al, byte [esp + eax + 0x1c0]
xor al, byte [esp + esi + 0xf4]
mov byte [esp + esi + 0x430], al
inc esi
cmp esi, 0x2c
jb 0x437569
push 6
pop ecx
mov esi, 0x4022cc
mov dword [esp + 0x124], 0x944f8dca
lea edi, [esp + 0x364]
mov word [esp + 0x128], 0x1e90
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov ecx, 0x4038a0
mov byte [esp + 0x45c], al
mov al, 0x63
movsb byte es:[edi], byte [esi]
sub al, 0x30
cmp al, 9
ja 0x437613
inc ecx
mov al, byte [ecx]
test al, al
jne 0x4375fe
mov edi, dword [0x44a78c]
jmp 0x43761f
mov edi, dword [0x44a78c]
or edi, 0x36642bcb
add dword [esp + 0x6c], 0x197047a8
mov ecx, 0x403794
call fcn.00435151
xor eax, eax
mov ecx, eax
and edi, 0x3e46e258
mov byte [esp + ecx + 0x4f0], cl
inc ecx
cmp ecx, 0x100
jb 0x437635
mov dword [esp + 0x134], edi
mov esi, eax
mov edi, eax
xor edx, edx
mov cl, byte [esp + esi + 0x4f0]
mov eax, esi
mov byte [esp + 0xf], cl
div dword [esp + 0x50]
movzx ecx, cl
movzx eax, byte [esp + edx + 0x364]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [esp + edi + 0x4f0]
mov byte [esp + esi + 0x4f0], al
inc esi
mov al, byte [esp + 0xf]
mov byte [esp + edi + 0x4f0], al
cmp esi, 0x100
jb 0x437656
mov esi, dword [esp + 0x6c]
xor ecx, ecx
mov edi, dword [esp + 0x134]
mov edx, ecx
mov dword [esp + 0x4c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x20], 0x4038a0
movzx ecx, al
mov dword [esp + 0x68], ecx
mov al, byte [esp + ecx + 0x4f0]
mov byte [esp + 0xf], al
movzx eax, al
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x6c]
movzx eax, al
mov dword [esp + 0x4c], eax
mov al, 0x63
sub al, 0x30
cmp al, 9
ja 0x4376fc
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov al, byte [eax]
test al, al
jne 0x4376e5
jmp 0x437704
mov edi, esi
and edi, 0x76ed5b6f
mov eax, dword [esp + 0x4c]
mov esi, edi
and esi, 0xa7743689
push 6
mov al, byte [esp + eax + 0x4f4]
mov byte [esp + ecx + 0x4f4], al
mov eax, dword [esp + 0x50]
mov cl, byte [esp + 0x13]
mov byte [esp + eax + 0x4f4], cl
mov ecx, dword [esp + 0x6c]
movzx eax, byte [esp + ecx + 0x4f4]
add eax, dword [esp + 0x70]
movzx eax, al
mov al, byte [esp + eax + 0x4f4]
xor al, byte [esp + edx + 0x128]
mov byte [esp + edx + 0x1bc], al
inc edx
pop eax
cmp edx, eax
jb 0x4376b0
xor ecx, ecx
mov edi, 0x4038a0
mov byte [esp + 0x1be], cl
mov al, 0x63
mov edx, dword [0x44a780]
sub al, 0x30
cmp al, 9
ja 0x437786
inc edi
mov al, byte [edi]
test al, al
jne 0x437771
jmp 0x43778e
mov esi, edx
or esi, 0x1cf06ba4
mov eax, esi
mov dword [esp + 0x50], 0x5a
and eax, 0xabd45b67
mov dword [esp + 0x58], 0x40
mov dword [esp + 0x6c], eax
xorps xmm2, xmm2
mov dword [0x44a78c], eax
mov edi, ecx
push 5
pop eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], 0xffffff53
movups xmm1, xmmword [esp + 0x50]
mov dword [esp + 0x50], 9
mov dword [esp + 0x54], 0x1f
movaps xmm0, xmm1
mov dword [esp + 0x58], 0x50
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x5c], 0xffffff6a
movups xmm0, xmm1
mov dword [esp + 0x184], 0x40
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [esp + 0x188], 0x48
movd eax, xmm1
movups xmm1, xmmword [esp + 0x50]
mov dword [esp + 0x18c], 0x59
add eax, 0xe
mov dword [esp + 0x190], 0xc
movaps xmm0, xmm1
mov dword [esp + 0x164], eax
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [esp + 0x194], 0xffffff13
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x1e
mov dword [esp + 0x170], eax
mov dword [esp + 0x20], 0x4038a0
mov al, 0x63
sub al, 0x30
cmp al, 9
ja 0x437890
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
mov al, byte [eax]
test al, al
jne 0x437879
jmp 0x437898
mov edx, esi
and edx, 0xd9ae113b
sub ecx, dword [esp + edi*4 + 0x184]
lea esi, [edx - 0x35d0307f]
push 5
inc edi
pop eax
cmp edi, eax
jl 0x43786f
mov dword [esp + 0x20], ecx
mov edx, 0xc0000
xor ecx, ecx
mov dword [esp + 0x78], 0x32
mov dword [esp + 0x7c], 0x51
mov eax, ecx
mov dword [esp + 0x80], 0xaff7d
sub edx, dword [esp + eax*4 + 0x78]
inc eax
cmp eax, 3
jl 0x4378d5
push 0x4a
mov dword [esp + 0x16c], edx
mov eax, ecx
mov dword [esp + 0x7c], 0x5e
mov dword [esp + 0x80], 0x45
mov dword [esp + 0x84], 0xffffff13
pop edx
add edx, dword [esp + eax*4 + 0x78]
inc eax
cmp eax, 3
jl 0x437909
push 0x3e
mov dword [esp + 0x170], edx
mov eax, ecx
mov dword [esp + 0x7c], 0x38
mov dword [esp + 0x80], 0xffffff8b
pop edx
add edx, dword [esp + eax*4 + 0x78]
inc eax
cmp eax, 2
jl 0x437932
mov esi, dword [esp + 0x6c]
mov eax, ecx
push 0x3b
mov dword [esp + 0x184], edx
xor esi, 0xeeaa832a
pop edx
push 0x1f
pop edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], 0x41
mov dword [esp + 0x58], 0x11
mov dword [esp + 0x5c], 0xffffff54
mov dword [0x44a780], esi
add edx, dword [esp + eax*4 + 0x50]
inc eax
cmp eax, 4
jl 0x437977
push 6
pop eax
mov dword [esp + 0x17c], edx
mov edx, eax
mov dword [esp + 0x78], 0x5c
mov eax, ecx
mov dword [esp + 0x7c], 0x1ff9e
add edx, dword [esp + eax*4 + 0x78]
inc eax
cmp eax, 2
jl 0x43799f
mov dword [esp + 0x174], edx
mov eax, ecx
mov dword [esp + 0x78], 0x35
mov dword [esp + 0x7c], 0xffffffac
add edi, dword [esp + eax*4 + 0x78]
inc eax
cmp eax, 2
jl 0x4379c2
push 0x3b
mov dword [esp + 0x17c], edi
mov eax, ecx
mov dword [esp + 0x7c], 0x23
mov dword [esp + 0x80], 0x34
mov dword [esp + 0x84], 0xffffff6e
pop edx
add edx, dword [esp + eax*4 + 0x78]
inc eax
cmp eax, 3
jl 0x4379f6
mov edi, esi
mov dword [esp + 0x78], edx
push 0x1b
or edi, 0xbcf8867
mov dword [esp + 0x128], 0x46
mov dword [esp + 0x12c], 2
mov eax, ecx
mov dword [esp + 0x130], 0xffffff9d
pop edx
add edx, dword [esp + eax*4 + 0x124]
inc eax
cmp eax, 3
jl 0x437a32
mov dword [esp + 0x134], edx
mov eax, ecx
mov edx, 0x200000
mov dword [esp + 0x124], 0x31
mov dword [esp + 0x128], 0x41
mov dword [esp + 0x12c], 0x1bff8e
sub edx, dword [esp + eax*4 + 0x124]
inc eax
cmp eax, 3
jl 0x437a6e
mov dword [esp + 0x124], edx
mov dword [esp + 0x50], 0x59
mov dword [esp + 0x54], 0x36
mov dword [esp + 0x58], 0x47
mov dword [esp + 0x5c], 0xfffffed0
inc ecx
cmp ecx, 0x142e
je 0x437ad3
cmp byte [ecx + 0x4038a0], 0
jne 0x437aa2
cmp ecx, 0x1f1b
jle 0x437ae6
mov ecx, 0x4037a0
call fcn.00435151
imul eax, esi, 0xb0fb435f
mov dword [0x44a78c], eax
jmp 0x437af2
call fcn.0043504b
mov eax, dword [esp + 0x6c]
and eax, 0x33b31839
mov dword [0x44a78c], eax
xor esi, 0x3731fd0b
mov dword [0x44a780], esi
and edi, 0x14e52d1a
mov ecx, 0x4037e0
mov dword [0x44a778], edi
call fcn.00435151
movups xmm0, xmmword [esp + 0x50]
mov dword [esp + 0xf4], 0x5b
movaps xmm1, xmm2
mov dword [esp + 0xf8], 0x25
paddd xmm1, xmm0
mov dword [esp + 0xfc], 0xffffff59
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
push 0x27
pop edx
add ecx, 0x5a
xor edi, edi
mov eax, edi
add edx, dword [esp + eax*4 + 0xf4]
inc eax
cmp eax, 3
jl 0x437b5b
mov dword [esp + 0x50], 0x36
movaps xmm1, xmm2
mov dword [esp + 0x54], 0x5b
mov dword [esp + 0x58], 0x37
mov dword [esp + 0x5c], 0xffffff38
movups xmm0, xmmword [esp + 0x50]
mov esi, dword [esp + 0x180]
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push eax
push edx
push 4
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x144]
mov eax, dword [esp + 0x188]
cmovne ecx, dword [esp + 0x134]
cmp esi, dword [esp + 0x18c]
cmovne eax, dword [esp + 0x184]
or ecx, eax
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x180], eax
mov eax, dword [esp + 0x17c]
cmovne eax, dword [esp + 0x178]
or ecx, eax
push ecx
push dword [esp + 0x178]
lea ecx, [esp + 0x1d0]
push dword [esp + 0x3dc]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x44c]
call fcn.0041d4c4
call eax
mov eax, dword [esp + 0x308]
lea ecx, [esp + 0x344]
or eax, 0x80000
mov dword [esp + 0x380], 0x48
mov dword [esp + 0x3ac], eax
mov eax, dword [esp + 0x304]
mov word [esp + 0x3b0], ax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x384]
push eax
push dword [esp + 0x308]
mov eax, dword [esp + 0x340]
push dword [esp + 0x2f8]
or eax, dword [esp + 0x324]
or eax, 0x8080000
push eax
push dword [esp + 0x2e4]
push dword [esp + 0x2ec]
push dword [esp + 0x2f4]
push dword [esp + 0x2fc]
push dword [esp + 0x304]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0x40c]
call fcn.0041d4c4
call eax
test eax, eax
jne 0x437d7b
mov dword [esp + 0x50], 0x61
xorps xmm1, xmm1
mov dword [esp + 0x54], 7
mov dword [esp + 0x58], 0x31
mov dword [esp + 0x5c], 0xffffff6e
movups xmm0, xmmword [esp + 0x50]
push 0xe
mov dword [esp + 0x160], 0x4f
psubd xmm1, xmm0
mov dword [esp + 0x164], 0xffffffa8
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd esi, xmm1
pop ecx
add esi, 8
add ecx, dword [esp + eax*4 + 0x15c]
inc eax
cmp eax, 2
jl 0x437d3c
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c4]
call fcn.0041d467
cmp dword [ebp + 0x10], esi
jne 0x437d72
push dword [esp + 0x10]
and dword [0x44a780], 0x4a000439
call fcn.0044900f
pop ecx
mov eax, dword [esp + 0x6c]
jmp 0x43837f
push dword [esp + 0x3c4]
lea ecx, [esp + 0x2c]
call fcn.0041d4e5
mov edx, eax
lea ecx, [esp + 0xb4]
call fcn.0041d4c4
call eax
mov ecx, dword [esp + 0x3c4]
call fcn.0041d467
mov eax, dword [esp + 0x130]
cmp dword [ebp + 0x10], eax
jne 0x437dbd
push dword [esp + 0x10]
call fcn.0044900f
pop ecx
push dword [esp + 0x2e4]
push 0x18
pop eax
push eax
lea eax, [esp + 0x3d4]
push eax
push edi
push dword [esp + 0x44]
call fcn.00448ff1
add esp, 0x14
mov edx, 0x19f8
mov eax, 0x4038a0
push 0x63
pop ecx
add edx, ecx
inc eax
cmp edx, 0x165
ja 0x437e0d
movsx ecx, byte [eax]
test ecx, ecx
jne 0x437dea
mov eax, dword [0x44a780]
add eax, 0x43ae2537
mov dword [0x44a780], eax
jmp 0x437e30
mov ecx, 0x403070
call fcn.00435151
or dword [0x44a778], 0x99be0b88
mov ecx, 0x403804
call fcn.00435151
mov eax, dword [0x44a780]
or eax, 0x5af21c0d
mov dword [0x44a78c], eax
call fcn.0043504b
mov ecx, 0x210
call fcn.0041d3cf
push dword [esp + 0x2e8]
mov esi, eax
push 0x210
push esi
push dword [esp + 0x3dc]
push dword [esp + 0x44]
call fcn.00448fd3
add esp, 0x14
mov ecx, esi
call fcn.0041d467
mov ecx, dword [esp + 0x14c]
movzx eax, word [ecx]
cmp eax, dword [esp + 0x138]
je 0x437fda
push 0x15
pop eax
mov dword [esp + 0x58], eax
mov eax, edi
mov dword [esp + 0x50], 0x3a
mov dword [esp + 0x54], 0x39
mov dword [esp + 0x5c], 0xffffff54
inc eax
cmp eax, 0x1be
jg 0x437ec3
cmp byte [eax + 0x4038a0], 0
jne 0x437eaa
mov esi, dword [0x44a780]
jmp 0x437edb
mov esi, dword [0x44a780]
and esi, 0x8300f519
cmp eax, 0x2551
jle 0x437edb
call fcn.0043504b
mov eax, dword [0x44a78c]
or eax, 0x7499ccea
mov dword [esp + 0x138], eax
mov dword [0x44a778], eax
call fcn.0043504b
mov eax, edi
mov edi, dword [esp + 0x138]
mov dword [esp + 0x24], eax
push 0x63
mov dword [esp + 0x24], 0x5d
mov ecx, 0x4038a0
pop edx
add dword [esp + 0x20], edx
inc ecx
cmp dword [esp + 0x20], 0x1d4a
ja 0x437f37
movsx edx, byte [ecx]
test edx, edx
jne 0x437f13
imul edi, edi, 0x42e23399
mov dword [0x44a778], edi
jmp 0x437f50
add esi, 0x1a4f3f1
call fcn.0043504b
sub dword [0x44a78c], 0x6bc0a207
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x120]
xor esi, 0xdb847770
add edx, dword [esp + eax*4 + 0x50]
inc eax
mov dword [esp + 0x120], edx
mov dword [esp + 0x24], eax
cmp eax, 4
jl 0x437f03
push 0x36
pop ecx
push 5
mov dword [0x44a780], esi
xor eax, eax
pop esi
mov dword [esp + 0x184], 0x22
mov dword [esp + 0x188], ecx
mov dword [esp + 0x18c], 0x1c
mov dword [esp + 0x190], esi
mov dword [esp + 0x194], 0xffffffb7
sub ecx, dword [esp + eax*4 + 0x184]
inc eax
cmp eax, esi
jl 0x437faf
push edx
push dword [esp + 0x3c]
mov dword [esp + 0x140], ecx
call fcn.00448fb5
mov eax, dword [esp + 0x140]
pop ecx
pop ecx
jmp 0x43837f
mov esi, dword [ecx + 0x3c]
mov eax, dword [esp + 0x2f0]
add esi, ecx
push dword [esp + 0x2f4]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2fc]
or eax, dword [esp + 0x300]
push eax
lea eax, [esi + 0x50]
push eax
push dword [esp + 0x15c]
lea eax, [esp + 0x80]
push eax
push dword [esp + 0x48]
call fcn.00448fe7
mov ecx, dword [esi + 0x54]
call fcn.0041d3cf
push dword [esi + 0x54]
mov edi, eax
push dword [esp + 0x168]
push edi
call fcn.004341ae
push dword [esp + 0x160]
push dword [esi + 0x54]
push edi
push dword [esp + 0xa0]
push dword [esp + 0x68]
call fcn.00448fdd
add esp, 0x38
mov dword [esp + 0x13c], eax
cmp eax, dword [esp + 0x140]
je 0x4380eb
imul eax, dword [0x44a78c], 0xd2c40d77
push 5
mov dword [esp + 0x54], 0x40
mov dword [esp + 0x58], 1
mov dword [esp + 0x5c], 0x44
mov dword [0x44a78c], eax
xor eax, eax
mov dword [esp + 0x60], 0x49
mov ecx, eax
mov dword [esp + 0x64], 0xffffff32
pop edx
sub eax, dword [esp + ecx*4 + 0x50]
inc ecx
cmp ecx, edx
jl 0x4380a6
mov ecx, edi
mov dword [esp + 0x140], eax
call fcn.0041d467
mov eax, dword [0x44a778]
mov edi, dword [esp + 0x140]
xor eax, 0xd4d66b6c
mov dword [0x44a780], eax
push edi
push dword [esp + 0x3c]
call fcn.00448fb5
mov eax, dword [esp + 0x144]
pop ecx
pop ecx
jmp 0x43837f
and dword [0x44a780], 0xf823a582
mov ecx, edi
call fcn.0041d467
movzx edi, word [esi + 0x14]
movzx eax, word [esi + 6]
add edi, 0x28
add edi, esi
cmp dword [esp + 0x24], eax
jge 0x4381f6
add edi, dword [esp + 0xf0]
push 6
pop eax
mov dword [esp + 0x150], 4
mov dword [esp + 0x154], 0xffffffad
mov dword [esp + 0xf4], 0x38
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], 0xffffffc2
push 0x4f
xor eax, eax
pop edx
mov ecx, eax
add edx, dword [esp + ecx*4 + 0x150]
inc ecx
cmp ecx, 2
jl 0x438157
mov dword [esp + 0xf0], edx
mov ecx, eax
sub ecx, dword [esp + eax*4 + 0xf4]
inc eax
cmp eax, 3
jl 0x43816d
mov dword [esp + 0x140], ecx
mov ecx, dword [edi]
call fcn.0041d3cf
push dword [edi]
mov ecx, eax
mov eax, dword [edi + 4]
add eax, dword [esp + 0x150]
push eax
push ecx
mov dword [esp + 0x2c], ecx
call fcn.004341ae
push dword [esp + 0xfc]
mov eax, dword [edi - 4]
push dword [edi]
add eax, dword [esp + 0x84]
push dword [esp + 0x34]
push eax
push dword [esp + 0x50]
call fcn.00448fdd
add esp, 0x20
mov dword [esp + 0x13c], eax
cmp eax, dword [esp + 0x140]
jne 0x438254
mov ecx, dword [esp + 0x20]
add edi, 0x28
call fcn.0041d467
mov ecx, dword [esp + 0x24]
movzx eax, word [esi + 6]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, eax
jl 0x438150
mov ecx, 0x2cc
call fcn.0041d3cf
mov edi, eax
push edi
mov dword [edi], 0x10007
push dword [esp + 0x3c]
call fcn.00448fbf
pop ecx
pop ecx
lea ecx, [esp + 0x84]
call fcn.004342df
mov ecx, dword [ebp + 8]
mov edx, eax
mov dword [esp + 0xf0], eax
call fcn.00434b03
test eax, eax
jne 0x4382df
push dword [ebp + 0xc]
mov eax, dword [esp + 0x150]
mov edx, esi
push eax
mov ecx, eax
call fcn.0041ee7a
pop ecx
pop ecx
jmp 0x4382e2
push 0x63
mov dword [esp + 0x160], 0x60
mov dword [esp + 0x164], 0xffffff73
pop ecx
sub cl, 0x30
cmp cl, 9
ja 0x438293
mov eax, dword [esp + 0x1b4]
inc eax
mov dword [esp + 0x1b4], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0x43826d
mov eax, dword [0x44a780]
jmp 0x43829d
imul eax, dword [0x44a778], 0x1b2e7cfe
and eax, 0xa8f99db1
mov ecx, 0x403820
mov dword [0x44a780], eax
call fcn.00435151
push 0x2d
xor eax, eax
pop ecx
add ecx, dword [esp + eax*4 + 0x15c]
inc eax
cmp eax, 2
jl 0x4382b6
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x20]
call fcn.0041d467
push dword [esp + 0xf0]
jmp 0x4380d4
mov eax, dword [esi + 0x28]
add eax, dword [esp + 0x70]
mov esi, dword [esp + 0xf0]
mov ecx, esi
mov dword [edi + 0xb0], eax
call fcn.004348b9
push eax
push dword [esp + 0x310]
push esi
call fcn.0043423a
mov ecx, esi
call fcn.0041d467
push edi
push dword [esp + 0x48]
call fcn.00448fc9
push dword [esp + 0x324]
lea eax, [esp + 0x88]
push dword [esp + 0x1b0]
push eax
mov eax, dword [esp + 0x3f0]
add eax, dword [esp + 0x164]
push eax
push dword [esp + 0x58]
call fcn.00448fdd
imul ecx, dword [0x44a778], 0xd9254e9d
mov dword [0x44a78c], ecx
mov ecx, 0x403840
call fcn.00435151
push dword [esp + 0x3c]
push dword [esp + 0x64]
call fcn.00448fb5
add esp, 0x30
mov ecx, edi
call fcn.0041d467
mov eax, dword [esp + 0x15c]
pop edi
pop esi
mov esp, ebp
pop ebp
ret