Function at 0x4438ab
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x320
mov dword [ebp - 0xbc], ecx
xor ecx, ecx
push 0x50
mov dword [ebp - 0xb8], edx
mov eax, ecx
pop edx
mov dword [ebp - 0x10], 0x45
mov dword [ebp - 0xc], 0xffffff6b
add edx, dword [ebp + eax*4 - 0x10]
inc eax
cmp eax, 2
jl 0x4438d5
mov eax, dword [0x403d78]
mov dword [ebp - 0x10], eax
mov ax, word [0x403d7c]
push esi
push edi
mov word [ebp - 0xc], ax
mov edi, ecx
mov dword [ebp - 0xac], edx
mov eax, ecx
mov dword [ebp - 0x38], 0x4446f183
mov dword [ebp - 0x34], 0x304d904e
mov dword [ebp - 0x30], 0x14f49588
mov dword [ebp - 0x2c], 0x613809a1
mov dword [ebp - 0x28], 0xd580334
mov dword [ebp - 0x24], 0xdb30816b
mov byte [ebp + eax - 0x1f8], al
inc eax
cmp eax, 0x100
jb 0x443927
mov esi, ecx
mov dword [ebp - 0x5c], 5
xor edx, edx
mov cl, byte [ebp + esi - 0x1f8]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x5c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x10]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f8]
mov byte [ebp + esi - 0x1f8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1f8], al
cmp esi, 0x100
jb 0x44393f
mov edx, dword [0x44b9d0]
xor eax, eax
mov ecx, eax
mov edi, eax
mov esi, eax
movzx eax, byte [0x44baa0]
mov dword [ebp - 0x70], eax
lea eax, [edi + 1]
mov dword [ebp - 8], 0x12a1
movzx edi, al
mov al, byte [ebp + edi - 0x1f8]
mov byte [ebp - 1], al
movzx eax, al
add eax, ecx
movzx ecx, al
mov eax, 0x44baa0
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 0x70]
jmp 0x4439dd
mov ecx, dword [ebp - 8]
inc eax
add ecx, dword [ebp - 0x54]
mov dword [ebp - 8], ecx
cmp ecx, 0x1653
ja 0x443af7
movzx ecx, byte [eax]
test ecx, ecx
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x1c]
jne 0x4439c4
or edx, 0x82a13c37
mov al, byte [ebp + ecx - 0x1f8]
add edx, 0x6d0fdee9
mov byte [ebp + edi - 0x1f8], al
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x1f8], al
movzx ecx, byte [ebp + edi - 0x1f8]
movzx eax, al
add ecx, eax
movzx eax, cl
mov ecx, dword [ebp - 0x1c]
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x288], al
inc esi
cmp esi, 0x18
jb 0x443998
xor eax, eax
mov dword [ebp - 0x10], 0x43
push 0x35
mov byte [ebp - 0x270], al
mov ecx, eax
pop esi
mov dword [ebp - 0xc], 0xffffff88
add esi, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, 2
jl 0x443a55
mov dword [ebp - 0x58], esi
lea edi, [ebp - 0x2e0]
push 0xe
pop ecx
mov esi, 0x403d80
mov dword [ebp - 0x18], 0x3c
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0x30
xorps xmm1, xmm1
mov dword [ebp - 0x10], 0x1a
mov ecx, eax
mov dword [ebp - 0xc], 0xffffff7a
movups xmm0, xmmword [ebp - 0x18]
mov dword [ebp - 0x38], 0xeeb55cba
mov dword [ebp - 0x34], 0xb5769e94
psubd xmm1, xmm0
mov dword [ebp - 0x30], 0x7a6dcbe4
movaps xmm0, xmm1
mov dword [ebp - 0x2c], 0x340f647b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x28], 0x2114e123
movups xmm0, xmm1
mov dword [ebp - 0x24], 0x4402d903
psrldq xmm0, 4
paddd xmm1, xmm0
movsw word es:[edi], word [esi]
movd dword [ebp - 0x50], xmm1
inc ecx
cmp ecx, 0x1cff
jl 0x443b16
cmp byte [ecx + 0x404084], al
jne 0x443ae4
jmp 0x443b1c
and edx, 0x1a85927
mov dword [ebp - 8], edx
call fcn.0043f457
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
or edx, 0x1ac8c413
jmp 0x4439ed
and edx, 0x6e54261f
imul ecx, edx, 0xf6fd3270
mov edi, eax
and ecx, 0x1e12c071
mov dword [ebp - 0x1c], ecx
mov ecx, eax
mov byte [ebp + ecx - 0x1f8], cl
inc ecx
cmp ecx, 0x100
jb 0x443b2f
mov esi, eax
mov dword [ebp - 8], 0x39
xor edx, edx
mov cl, byte [ebp + esi - 0x1f8]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 8]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x2e0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f8]
mov byte [ebp + esi - 0x1f8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1f8], al
cmp esi, 0x100
jb 0x443b48
xor eax, eax
mov dword [ebp - 0x20], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + edi - 0x1f8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x1f8], cl
movzx eax, byte [ebp + edi - 0x1f8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x234], al
inc esi
cmp esi, 0x18
jb 0x443b95
mov esi, 0x40220c
mov dword [ebp - 0x38], 0xcd5fbe41
lea edi, [ebp - 0x14]
mov dword [ebp - 0x34], 0x3b3cfccf
xor eax, eax
mov dword [ebp - 0x30], 0x38ec4ad6
mov byte [ebp - 0x21c], al
mov ecx, eax
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2c], 0x9be8ea95
mov dword [ebp - 0x28], 0xd338e7c6
mov dword [ebp - 0x24], 0x47fde855
movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], eax
movsb byte es:[edi], byte [esi]
mov byte [ebp + ecx - 0x1f8], cl
inc ecx
cmp ecx, 0x100
jb 0x443c2f
inc eax
cmp eax, 0xd3a
jl 0x443c55
cmp byte [eax + 0x403ff8], 0
jne 0x443c3f
mov esi, dword [ebp - 0x1c]
jmp 0x443c6b
mov esi, dword [ebp - 0x1c]
mov edx, esi
push 0x404084
call fcn.0043f560
pop ecx
and esi, 0xfa50907f
and esi, 0x65a2
mov edx, esi
call fcn.0043f457
xor edi, edi
mov dl, byte [ebp + edi - 0x1f8]
mov eax, edi
and eax, 7
movzx ecx, dl
imul esi, esi, 0xf6d50a57
movzx eax, byte [ebp + eax - 0x14]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov al, byte [ebp + ecx - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
inc edi
mov byte [ebp + ecx - 0x1f8], dl
cmp edi, 0x100
jb 0x443c7a
xor eax, eax
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x20]
mov cl, byte [ebp + edi - 0x1f8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x1f8], cl
movzx eax, byte [ebp + edi - 0x1f8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x250], al
inc esi
cmp esi, 0x18
jb 0x443cc9
mov esi, 0x402298
mov dword [ebp - 0x38], 0x8ba9f288
lea edi, [ebp - 0x14]
mov dword [ebp - 0x34], 0x699a02cb
push 0x4b
pop ecx
movsd dword es:[edi], dword [esi]
xor eax, eax
add dword [ebp - 0x1c], 0x13f9aa40
mov dword [ebp - 0x78], ecx
mov byte [ebp - 0x27], cl
mov ecx, eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x238], al
mov dword [ebp - 0x30], 0xfa8c7dd1
mov dword [ebp - 0x2c], 0x3710efff
mov byte [ebp - 0x28], 0x4c
mov dword [ebp - 0x26], 0x29cf96b6
mov word [ebp - 0x22], 0x5236
movsd dword es:[edi], dword [esi]
mov byte [ebp + ecx - 0x1f8], cl
inc ecx
cmp ecx, 0x100
jb 0x443d73
mov edi, eax
mov esi, eax
xor edx, edx
mov dword [ebp - 8], 0xb
mov eax, edi
mov cl, byte [ebp + edi - 0x1f8]
div dword [ebp - 8]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x14]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + esi - 0x1f8], al
cmp edi, 0x100
jb 0x443d87
mov esi, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x20], eax
mov edi, eax
mov dword [ebp - 8], eax
lea eax, [edi + 1]
mov ecx, 0x404084
movzx edi, al
mov al, 0x76
sub al, 0x30
cmp al, 9
ja 0x443df8
inc ecx
mov al, byte [ecx]
test al, al
jne 0x443de9
jmp 0x443dfe
and esi, 0x18fac15
sub esi, 0x7c9c44d4
mov edx, esi
call fcn.0043f457
mov al, byte [ebp + edi - 0x1f8]
mov ecx, 0x403ff8
mov byte [ebp - 1], al
movzx eax, al
add eax, dword [ebp - 0x20]
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
mov al, 0x50
sub al, 0x30
cmp al, 9
ja 0x443e45
inc ecx
mov al, byte [ecx]
test al, al
jne 0x443e36
jmp 0x443e4b
or esi, 0x40e39d3a
xor esi, 0x2917b964
push 0x404084
mov edx, esi
call fcn.0043f560
mov al, byte [ebp - 1]
mov edx, dword [ebp - 8]
pop ecx
mov ecx, dword [ebp - 0x20]
mov byte [ebp + ecx - 0x1f8], al
movzx ecx, byte [ebp + edi - 0x1f8]
movzx eax, al
add ecx, eax
movzx eax, cl
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + edx - 0x38]
mov byte [ebp + edx - 0x26c], al
inc edx
mov dword [ebp - 8], edx
cmp edx, 0x18
jb 0x443ddc
mov dword [ebp - 0x1c], esi
lea edi, [ebp - 0x218]
push 7
pop ecx
mov esi, 0x403094
mov dword [ebp - 0x38], 0x2f189857
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x34], 0x45dcf691
mov byte [ebp - 0x254], al
mov ecx, eax
mov dword [ebp - 0x30], 0xdeac2640
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], 0x1a7866b1
mov dword [ebp - 0x28], 0x12cd41e6
mov dword [ebp - 0x24], 0x64e4369d
add esi, 0xf9ae6fda
mov byte [ebp + ecx - 0x1f8], cl
inc ecx
cmp ecx, 0x100
jb 0x443ee8
mov dword [ebp - 0x1c], esi
mov edi, eax
mov esi, eax
xor edx, edx
mov dword [ebp - 8], 0x1c
mov eax, edi
mov cl, byte [ebp + edi - 0x1f8]
div dword [ebp - 8]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x218]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + esi - 0x1f8], al
cmp edi, 0x100
jb 0x443f05
mov esi, dword [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x20], eax
mov ecx, eax
mov edi, eax
lea eax, [ecx + 1]
imul esi, esi, 0x41e79005
movzx eax, al
mov dword [ebp - 8], eax
mov cl, byte [ebp + eax - 0x1f8]
mov eax, dword [ebp - 0x20]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x54], edx
mov edx, dword [ebp - 8]
movzx eax, al
mov dword [ebp - 0x20], eax
mov al, byte [ebp + eax - 0x1f8]
mov byte [ebp + edx - 0x1f8], al
mov eax, dword [ebp - 0x20]
mov byte [ebp + eax - 0x1f8], cl
mov ecx, edx
movzx eax, byte [ebp + ecx - 0x1f8]
add eax, dword [ebp - 0x54]
movzx eax, al
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + edi - 0x38]
mov byte [ebp + edi - 0x2a4], al
inc edi
cmp edi, 0x18
jb 0x443f5c
push 0x5c
pop edx
mov dword [ebp - 0x14], edx
xor eax, eax
mov dword [ebp - 0x18], 0x60
mov dword [ebp - 0x10], 0x51
mov dword [ebp - 0xc], 0x2c1
movups xmm1, xmmword [ebp - 0x18]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], 0xd
movaps xmm0, xmm1
mov dword [ebp - 0xc], 0xffffff9a
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x18], 8
movups xmm0, xmm1
mov byte [ebp - 0x28c], al
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
movups xmm1, xmmword [ebp - 0x18]
push 0x3e
add ecx, 0x32
mov dword [ebp - 0x14], 0xf
movaps xmm0, xmm1
mov dword [ebp - 0x60], ecx
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x10], 0x28
movups xmm0, xmm1
mov dword [ebp - 0xc], 0x38b
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
pop edi
mov edx, edi
add ecx, 0x27
mov dword [ebp - 0xb0], ecx
mov ecx, eax
add edx, dword [ebp + ecx*4 - 0x14]
inc ecx
cmp ecx, 3
jl 0x44406c
push 0x64
pop ecx
mov dword [ebp - 0x7c], edx
mov edx, 0x1400
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], ecx
mov ecx, eax
mov dword [ebp - 0xc], 0x1138
sub edx, dword [ebp + ecx*4 - 0x14]
inc ecx
cmp ecx, 3
jl 0x444090
push 0x47
mov dword [ebp - 0x70], edx
mov edi, 0x1e00
pop edx
mov dword [ebp - 0x18], 0x2a
mov dword [ebp - 0x14], 0xd
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], 0xffffff2c
movups xmm1, xmmword [ebp - 0x18]
push 0x4b
mov dword [ebp - 0x10], 0x5b
movaps xmm0, xmm1
mov dword [ebp - 0xc], 0x1713
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x18], edx
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
xorps xmm1, xmm1
add ecx, 0x56
mov dword [ebp - 0xf8], ecx
pop ecx
mov dword [ebp - 0x14], ecx
movups xmm0, xmmword [ebp - 0x18]
mov dword [ebp - 0x14], 0x27
mov dword [ebp - 0x10], 0x18
psubd xmm1, xmm0
mov dword [ebp - 0xc], 0x1bc1
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x1c00
mov dword [ebp - 0xf4], ecx
mov ecx, eax
sub edi, dword [ebp + ecx*4 - 0x14]
inc ecx
cmp ecx, 3
jl 0x444147
push 0x3e
mov dword [ebp - 0xf0], edi
mov ecx, eax
pop edi
push 0x3c
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x10], 0x2f
mov dword [ebp - 0xc], 0xffffff8e
pop edx
add edx, dword [ebp + ecx*4 - 0x14]
inc ecx
cmp ecx, 3
jl 0x444174
push 0x39
pop ecx
mov dword [ebp - 0x18], ecx
xorps xmm1, xmm1
mov dword [ebp - 0x14], 0x49
mov dword [ebp - 0x10], 0x63
mov dword [ebp - 0xc], 0xffffff1b
movups xmm0, xmmword [ebp - 0x18]
mov dword [ebp - 0x18], 0x58
mov dword [ebp - 0x14], 0x36
psubd xmm1, xmm0
mov dword [ebp - 0x10], 0x52
movaps xmm0, xmm1
mov dword [ebp - 0xc], 0x2cf
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0xb4], edx
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0xc8], xmm1
movups xmm1, xmmword [ebp - 0x18]
mov dword [ebp - 0x18], 0x5b
mov dword [ebp - 0x14], 0x18
movaps xmm0, xmm1
mov dword [ebp - 0x10], 0x25
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0xc], 0x1168
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x51
and esi, 0xa96c1a6c
mov dword [ebp - 0xc4], ecx
mov ecx, 0x1400
sub ecx, dword [ebp + eax*4 - 0x18]
imul esi, esi, 0x31c40607
inc eax
cmp eax, 4
jl 0x444236
movzx eax, byte [0x44baa0]
mov edx, 0x12e
mov dword [ebp - 0xc0], ecx
mov ecx, 0x44baa0
mov dword [ebp - 0x18], 0x31
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], 0x60
mov dword [ebp - 0xc], 0xffffff3f
jmp 0x444289
add edx, eax
inc ecx
cmp edx, 0x167c
ja 0x44428f
movzx eax, byte [ecx]
test eax, eax
jne 0x44427b
jmp 0x4442a3
mov edx, esi
call fcn.0043f457
and esi, 0xb762e1b3
mov edx, esi
call fcn.0043f457
movups xmm1, xmmword [ebp - 0x18]
push 0x2a
pop edx
movaps xmm0, xmm1
xor esi, 0x7c79952d
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
push 0x76
pop ecx
add eax, edx
mov edx, 0x223e
mov dword [ebp - 0xd4], eax
mov eax, 0x404084
add edx, ecx
inc eax
cmp edx, 0x1474
ja 0x4442f5
movsx ecx, byte [eax]
test ecx, ecx
jne 0x4442e1
jmp 0x444308
push 0x44baa0
mov edx, esi
call fcn.0043f560
pop ecx
and esi, 0xaef20311
add esi, 0xc4c13cd3
or esi, 0x29e59cf2
call fcn.0043f32c
xorps xmm1, xmm1
mov dword [ebp - 0x18], 0x37
mov dword [ebp - 0x14], 0x33
mov dword [ebp - 0x10], 0xc
mov dword [ebp - 0xc], 0x278a
movups xmm0, xmmword [ebp - 0x18]
push 0x2a
mov dword [ebp - 0x18], edi
psubd xmm1, xmm0
mov dword [ebp - 0x14], 0x2d
movaps xmm0, xmm1
mov dword [ebp - 0xc], 0xf6b
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
pop edi
movd eax, xmm1
xorps xmm1, xmm1
mov dword [ebp - 0x10], edi
movups xmm0, xmmword [ebp - 0x18]
add eax, 0x2c00
mov dword [ebp - 0xc], 0xffffff76
mov dword [ebp - 0xd0], eax
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 0x45
pop ecx
add eax, 0x1200
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0xcc], eax
xor eax, eax
mov dword [ebp - 0x10], ecx
mov edx, eax
mov ecx, eax
sub edx, dword [ebp + ecx*4 - 0x14]
inc ecx
cmp ecx, 3
jl 0x4443c6
mov dword [ebp - 0xe0], edx
mov ecx, eax
mov dword [ebp - 0x34], 0x3a
mov edx, 0x1c00
mov dword [ebp - 0x30], 0x30
mov dword [ebp - 0x2c], 4
mov dword [ebp - 0x28], 0x59
mov dword [ebp - 0x24], 0x1739
sub edx, dword [ebp + ecx*4 - 0x34]
inc ecx
cmp ecx, 5
jl 0x444400
mov dword [ebp - 0xdc], edx
mov ecx, eax
mov dword [ebp - 0x34], 3
mov edx, 0x1400
mov dword [ebp - 0x30], 0x29
mov dword [ebp - 0x2c], 0x40
mov dword [ebp - 0x28], 0x3a
mov dword [ebp - 0x24], 0x115a
sub edx, dword [ebp + ecx*4 - 0x34]
inc ecx
cmp ecx, 5
jl 0x44443a
push 0x21
mov dword [ebp - 0xd8], edx
mov ecx, eax
pop edx
mov dword [ebp - 0x10], 0x2c
mov dword [ebp - 0xc], 0xffffffb3
add edx, dword [ebp + ecx*4 - 0x10]
inc ecx
cmp ecx, 2
jl 0x44445d
mov dword [ebp - 0xe4], edx
mov ecx, eax
mov dword [ebp - 0x14], 0x34
mov dword [ebp - 0x10], 0x38
mov dword [ebp - 0xc], 0xffffff6a
add edi, dword [ebp + ecx*4 - 0x14]
and esi, 0xf38e3c9f
inc ecx
cmp ecx, 3
jl 0x444484
push 0x3b
pop ecx
mov dword [ebp - 0x14], ecx
xorps xmm1, xmm1
mov dword [ebp - 0x18], 0x18
mov ecx, eax
mov dword [ebp - 0x10], 0xf
mov dword [ebp - 0xc], 0xffffff9e
movups xmm0, xmmword [ebp - 0x18]
push 0x4b
pop edx
psubd xmm1, xmm0
mov dword [ebp - 0x28], edx
movaps xmm0, xmm1
mov dword [ebp - 0xe8], edi
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x34], 0x3f
movups xmm0, xmm1
mov dword [ebp - 0x30], 0x4a
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x2c], 0x31
push 5
movd dword [ebp - 0xec], xmm1
mov dword [ebp - 0x24], 0xfffffefb
pop edx
sub ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, edx
jl 0x444507
mov dword [ebp - 0xc], ecx
and esi, 0x4a3b729a
lea ecx, [ebp - 0x288]
mov dword [0x44b9d0], esi
call fcn.004342df
mov ecx, dword [ebp - 0x58]
mov esi, eax
mov edx, esi
call fcn.00434eab
mov edi, eax
mov ecx, esi
mov dword [ebp - 0x1c], edi
call fcn.004348b9
push eax
push dword [ebp - 0x50]
push esi
call fcn.0043423a
add esp, 0xc
mov ecx, esi
call fcn.0041d467
and dword [0x44b9d0], 0x473b8f64
lea ecx, [ebp - 0x234]
call fcn.004342df
lea ecx, [ebp - 0x250]
mov dword [ebp - 0x58], eax
call fcn.004342df
and dword [0x44b9d0], 0x85619708
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x20], eax
call fcn.004342df
mov esi, eax
lea ecx, [ebp - 0x2a4]
mov dword [ebp - 0x54], esi
call fcn.004342df
mov edx, dword [ebp - 0x58]
mov ecx, edi
mov dword [ebp - 8], eax
call fcn.00434b03
test eax, eax
jne 0x4446bd
mov eax, dword [0x403d5c]
xor ecx, ecx
mov dword [ebp - 0x78], eax
mov edi, ecx
mov ax, word [0x403d60]
mov word [ebp - 0x74], ax
mov eax, ecx
mov dword [ebp - 0x38], 0xbd704573
mov dword [ebp - 0x34], 0x7259a4f5
mov dword [ebp - 0x30], 0x93c634a9
mov dword [ebp - 0x2c], 0x7ab75286
mov dword [ebp - 0x28], 0xa244175c
mov dword [ebp - 0x24], 0x5f00a66a
mov byte [ebp + eax - 0x1f8], al
inc eax
cmp eax, 0x100
jb 0x4445f8
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + esi - 0x1f8]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x5c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x78]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f8]
mov byte [ebp + esi - 0x1f8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1f8], al
cmp esi, 0x100
jb 0x444609
xor eax, eax
mov dword [ebp - 0x50], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x50]
mov cl, byte [ebp + edi - 0x1f8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x50], eax
mov al, byte [ebp + eax - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
mov eax, dword [ebp - 0x50]
mov byte [ebp + eax - 0x1f8], cl
movzx eax, byte [ebp + edi - 0x1f8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x214], al
inc esi
cmp esi, 0x18
jb 0x444653
mov byte [ebp - 0x1fc], 0
lea ecx, [ebp - 0x214]
jmp 0x44489f
mov edx, dword [ebp - 0x20]
mov ecx, edi
call fcn.00434b03
test eax, eax
jne 0x4448ab
push 0x39
pop eax
push 0x13
pop ecx
mov esi, 0x403dc0
mov byte [ebp - 0x2e], al
lea edi, [ebp - 0x2f0]
mov dword [ebp - 0x4c], 0x97d0334
rep movsd dword es:[edi], dword [esi]
mov esi, dword [0x44b9d0]
mov edi, 0x404084
push 0x76
mov dword [ebp - 0x48], 0x6fdba5bb
or esi, 0x3d0c9de5
mov dword [ebp - 0x44], 0xc077ee00
mov ecx, 0x1f86
mov dword [ebp - 0x40], 0x4c61a474
mov eax, edi
mov dword [ebp - 0x3c], 0x16932127
mov dword [ebp - 0x38], 0x98f3e288
mov dword [ebp - 0x34], 0xc0ca3b75
mov word [ebp - 0x30], 0xc9e2
mov dword [ebp - 0x2d], 0xa77e37e7
mov dword [ebp - 0x29], 0x62b75c83
mov dword [ebp - 0x25], 0x8edf01c7
mov byte [ebp - 0x21], 0x31
pop edx
add ecx, edx
inc eax
cmp ecx, 0x60
ja 0x444761
movsx edx, byte [eax]
test edx, edx
jne 0x444750
jmp 0x44476c
call fcn.0043f32c
sub esi, 0x5e284de8
xor esi, 0x9248e913
add esi, 0x12183081
push edi
mov edx, esi
call fcn.0043f560
xor eax, eax
pop ecx
cmp byte [0x44baa0], al
je 0x4447b0
inc eax
cmp eax, 0x1911
jg 0x4447a5
cmp byte [eax + 0x44baa0], 0
jne 0x44478b
cmp eax, 0x4b2
jle 0x4447b0
jmp 0x4447ab
xor esi, 0xa0950da9
call fcn.0043f32c
and esi, 0x8d479654
imul esi, esi, 0x32a158aa
push 0x44baa0
mov edx, esi
call fcn.0043f560
xor eax, eax
pop ecx
mov edi, eax
mov ecx, eax
and esi, 0x90a543eb
mov byte [ebp + ecx - 0x1f8], cl
inc ecx
cmp ecx, 0x100
jb 0x4447cf
mov dword [0x44b9d0], esi
mov esi, eax
xor edx, edx
mov cl, byte [ebp + esi - 0x1f8]
mov eax, esi
mov byte [ebp - 1], cl
div dword [ebp - 0x78]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x2f0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f8]
mov byte [ebp + esi - 0x1f8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1f8], al
cmp esi, 0x100
jb 0x4447ed
xor eax, eax
mov dword [ebp - 0x50], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x50]
mov cl, byte [ebp + edi - 0x1f8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x50], eax
mov al, byte [ebp + eax - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
mov eax, dword [ebp - 0x50]
mov byte [ebp + eax - 0x1f8], cl
movzx eax, byte [ebp + edi - 0x1f8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + esi - 0x4c]
mov byte [ebp + esi - 0x320], al
inc esi
cmp esi, 0x2c
jb 0x44483a
mov byte [ebp - 0x2f4], 0
lea ecx, [ebp - 0x320]
call fcn.0043430e
mov edi, eax
jmp 0x444a29
mov edx, esi
mov ecx, edi
call fcn.00434b03
test eax, eax
jne 0x444a26
push 0x4b
pop eax
push 7
pop ecx
mov esi, 0x40314c
mov byte [ebp - 0xa7], al
lea edi, [ebp - 0x40]
mov byte [ebp - 0xa8], 0xfb
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0xa6], 0x7c9f9bd3
mov dword [ebp - 0xa2], 0xae15d06f
mov ecx, eax
mov dword [ebp - 0x9e], 0x20741f6c
movsw word es:[edi], word [esi]
mov dword [ebp - 0x9a], 0xbb6bd4fd
mov dword [ebp - 0x96], 0x2f5fd37c
mov dword [ebp - 0x92], 0x1fd915d0
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x8e], 0xb525b5c2
mov edi, eax
mov dword [ebp - 0x8a], 0x77fffea
mov dword [ebp - 0x86], 0xa1d4b3e0
mov dword [ebp - 0x82], 0x8ec16485
mov word [ebp - 0x7e], 0xd7d0
mov byte [ebp + ecx - 0x1f8], cl
inc ecx
cmp ecx, 0x100
jb 0x44494c
mov esi, eax
xor edx, edx
mov dword [ebp - 0x78], 0x1e
mov eax, esi
mov cl, byte [ebp + esi - 0x1f8]
div dword [ebp - 0x78]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x40]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1f8]
mov byte [ebp + esi - 0x1f8], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x1f8], al
cmp esi, 0x100
jb 0x44495e
xor eax, eax
mov dword [ebp - 0x50], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
or dword [0x44b9d0], 0x695f10b7
movzx edi, al
mov eax, dword [ebp - 0x50]
mov cl, byte [ebp + edi - 0x1f8]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x50], eax
mov al, byte [ebp + eax - 0x1f8]
mov byte [ebp + edi - 0x1f8], al
mov eax, dword [ebp - 0x50]
mov byte [ebp + eax - 0x1f8], cl
movzx eax, byte [ebp + edi - 0x1f8]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1f8]
xor al, byte [ebp + esi - 0xa8]
mov byte [ebp + esi - 0x2d4], al
inc esi
cmp esi, 0x2c
jb 0x4449af
mov byte [ebp - 0x2a8], 0
lea ecx, [ebp - 0x2d4]
jmp 0x44489f
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0xb0]
imul ecx, dword [ebp - 0x60]
add ecx, ecx
call fcn.0041d3cf
mov ecx, dword [ebp - 0x70]
imul ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], eax
add ecx, ecx
call fcn.0041d3cf
mov edx, dword [ebp - 0x58]
mov esi, eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x50], esi
call fcn.00434b03
test eax, eax
je 0x444bb5
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
call fcn.00434b03
test eax, eax
je 0x444bb5
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x1c]
call fcn.00434b03
test eax, eax
je 0x444bb5
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x1c]
call fcn.00434b03
test eax, eax
jne 0x444cac
mov dword [ebp - 0x6c], 0x52
xorps xmm1, xmm1
mov dword [ebp - 0x68], 0x1d
mov dword [ebp - 0x64], 0x15
mov dword [ebp - 0x60], 0xffffff7c
movups xmm0, xmmword [ebp - 0x6c]
mov dword [ebp - 0x64], 0x46
mov dword [ebp - 0x60], 0xfffffeec
psubd xmm1, xmm0
mov dword [ebp - 0x6c], 0x47
movaps xmm0, xmm1
mov dword [ebp - 0x68], 0x5f
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0x7c], xmm1
movups xmm1, xmmword [ebp - 0x6c]
push 0x3b
mov dword [ebp - 0x64], 0x5a
movaps xmm0, xmm1
mov dword [ebp - 0x60], 0x36b
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
pop edx
add eax, 0x28
mov dword [ebp - 0x78], eax
xor eax, eax
mov ecx, eax
add edx, dword [ebp + ecx*4 - 0x64]
inc ecx
cmp ecx, 2
jl 0x444b37
push 0x3e
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0x68], 0x57
mov dword [ebp - 0x64], 0x22
mov dword [ebp - 0x60], 0xffffff7b
pop ecx
add ecx, dword [ebp + eax*4 - 0x68]
inc eax
cmp eax, 3
jl 0x444b5f
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0x60], ecx
mov ecx, edi
call fcn.0041572a
cmp eax, dword [ebp - 0x7c]
je 0x444d64
mov ecx, edi
call fcn.004348f7
push eax
mov edx, edi
mov ecx, esi
call fcn.00434436
mov eax, dword [ebp - 0x60]
imul eax, dword [ebp - 0xb0]
add eax, eax
push eax
push dword [ebp - 0x78]
push edi
call fcn.0043423a
add esp, 0x10
mov ecx, esi
call fcn.004348b9
jmp 0x444cb2
mov dword [ebp - 0x6c], 0xd
xorps xmm1, xmm1
mov dword [ebp - 0x68], 0x51
xor eax, eax
mov dword [ebp - 0x64], 0x62
mov ecx, eax
mov dword [ebp - 0x60], 0xffffff40
movups xmm0, xmmword [ebp - 0x6c]
push 5
mov dword [ebp - 0x34], 0x42
psubd xmm1, xmm0
mov dword [ebp - 0x30], 0x24
movaps xmm0, xmm1
mov dword [ebp - 0x2c], 0x5f
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x28], 0x2c
movups xmm0, xmm1
mov dword [ebp - 0x24], 0xffffff0f
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0x7c], xmm1
pop edx
sub eax, dword [ebp + ecx*4 - 0x34]
inc ecx
cmp ecx, edx
jl 0x444c23
push dword [ebp - 0x50]
mov ecx, dword [ebp - 0x7c]
mov edx, edi
mov dword [ebp - 0x30], 0x4a
mov dword [ebp - 0x2c], 0x23
mov dword [ebp - 0x28], 0x53
mov dword [ebp - 0x24], 0xffffff34
movups xmm1, xmmword [ebp - 0x30]
mov dword [ebp - 0x60], eax
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd esi, xmm1
add esi, 0xc
call fcn.004179ea
mov ecx, edi
mov dword [ebp - 0xac], eax
call fcn.004348f7
push eax
push dword [ebp - 0x60]
push edi
call fcn.0043423a
add esp, 0x10
mov ecx, edi
call fcn.0041d467
mov eax, dword [ebp - 0xac]
cmp eax, esi
je 0x444d5e
jmp 0x444cb2
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp + 0x14]
mov edx, esi
mov edi, dword [ebp - 0x50]
mov ecx, edi
push eax
call fcn.0041b5fd
mov eax, dword [ebp - 0xf0]
imul eax, dword [ebp - 0xf4]
add eax, eax
push eax
push dword [ebp - 0xf8]
push esi
call fcn.0043423a
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xbc]
push esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp - 0xb4]
push edi
push dword [ebp + 8]
call fcn.00439e32
mov eax, dword [ebp - 0xc0]
imul eax, dword [ebp - 0xc4]
add eax, eax
push eax
push dword [ebp - 0xc8]
push dword [ebp + 0xc]
call fcn.0043423a
mov eax, dword [ebp - 0xcc]
imul eax, dword [ebp - 0xd0]
add eax, eax
push eax
push dword [ebp - 0xd4]
push esi
call fcn.0043423a
mov eax, dword [ebp - 0xd8]
add esp, 0x40
imul eax, dword [ebp - 0xdc]
add eax, eax
push eax
push dword [ebp - 0xe0]
push dword [ebp + 0x10]
call fcn.0043423a
add esp, 0xc
mov edi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x58]
call fcn.004348b9
push eax
push dword [ebp - 0xe4]
push ecx
call fcn.0043423a
mov ecx, dword [ebp - 0x20]
call fcn.004348b9
mov edx, dword [ebp - 0xe8]
push eax
push edx
push ecx
call fcn.0043423a
mov ecx, dword [ebp - 0x54]
call fcn.004348b9
push eax
push dword [ebp - 0xec]
push ecx
call fcn.0043423a
mov ecx, dword [ebp - 8]
call fcn.004348b9
push eax
push dword [ebp - 0xc]
push ecx
call fcn.0043423a
mov ecx, dword [ebp - 0x58]
add esp, 0x30
call fcn.0041d467
imul eax, dword [0x44b9d0], 0x13590e05
mov ecx, dword [ebp - 0x20]
mov dword [0x44b9d0], eax
call fcn.0041d467
mov ecx, dword [ebp - 0x54]
call fcn.0041d467
mov ecx, dword [ebp - 8]
call fcn.0041d467
mov ecx, esi
call fcn.0041d467
mov ecx, edi
call fcn.0041d467
pop edi
pop esi
leave
ret