Function at 0x5a4b00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc8
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x705060
mov dword [ebp - 0x40], ecx
lea eax, [ebp - 0x18]
mov esi, edx
mov dword [ebp - 0x3c], edx
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov ecx, 0x4c957f2d
mov edi, dword [edx + 0x18]
mov esi, dword [esi + 0x10]
mov eax, edi
imul ebx, edi, 0x5851f42d
mov dword [ebp - 0x48], esi
mul ecx
add ebx, edx
cmp edi, 8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ebx
jbe 0x5a4ccc
cmp edi, 0x10
mov dword [ebp - 0x28], edi
jbe 0x5a4ce9
mov ecx, dword [edi + esi - 0x10]
mov ebx, dword [edi + esi - 0xc]
mov edi, dword [edi + esi - 4]
mov eax, 0xc97c50de
xor ecx, eax
mov eax, 0xc0ac29b7
xor ebx, eax
mov eax, edi
mov dword [ebp - 0x30], ecx
xor edi, 0xc07b2a4a
xor eax, 0x3f84d5b5
bswap eax
mov ecx, eax
mul dword [ebp - 0x30]
imul ecx, ebx
bswap ebx
imul edi, ebx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
add edx, ecx
mov esi, dword [eax + esi - 8]
mov eax, ebx
mov ecx, esi
xor esi, 0x4ab8f6ec
xor ecx, 0xb5470913
bswap ecx
imul ecx, dword [ebp - 0x30]
add ecx, edx
mul esi
add edx, edi
mov edi, dword [ebp - 0x30]
bswap eax
bswap edi
imul esi, edi
mov edi, dword [ebp - 0x20]
add esi, edx
mov edx, dword [ebp - 0x24]
bswap esi
add edi, 0xc6d2022c
adc edx, 0xea864d16
xor edi, dword [ebp - 0x2c]
xor edx, eax
mov eax, dword [ebp - 0x48]
xor edx, ecx
mov ebx, edx
xor edi, esi
shld ebx, edi, 0x17
shld edi, edx, 0x17
nop word cs:[eax + eax]
nop
mov esi, dword [eax + 0xc]
mov edx, dword [eax]
mov ecx, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x24], eax
mov eax, 0xc97c50de
mov edi, dword [ecx + 4]
mov dword [ebp - 0x38], esi
xor esi, 0x3f84d5b5
xor edx, eax
mov eax, 0xc0ac29b7
bswap esi
xor edi, eax
mov dword [ebp - 0x20], edx
mov eax, esi
mov ecx, esi
mul dword [ebp - 0x20]
imul ecx, edi
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
add edx, ecx
mov ecx, dword [eax + 8]
mov eax, edi
bswap eax
mov esi, ecx
xor ecx, 0x4ab8f6ec
xor esi, 0xb5470913
bswap esi
imul esi, dword [ebp - 0x20]
add esi, edx
mov edx, dword [ebp - 0x38]
xor edx, 0xc07b2a4a
imul edx, eax
mov edi, edx
mul ecx
add edx, edi
mov edi, dword [ebp - 0x20]
bswap eax
bswap edi
imul ecx, edi
mov edi, dword [ebp - 0x2c]
add ecx, edx
mov edx, dword [ebp - 0x28]
bswap ecx
add edx, 0xfffffff0
add edi, 0x34e90c6e
adc ebx, 0xbe5466cf
xor edi, dword [ebp - 0x30]
mov dword [ebp - 0x28], edx
xor ebx, eax
mov eax, dword [ebp - 0x24]
xor ebx, esi
xor edi, ecx
mov ecx, ebx
shld ecx, edi, 0x17
shld edi, ebx, 0x17
add eax, 0x10
cmp edx, 0x10
mov ebx, ecx
ja 0x5a4c10
jmp 0x5a4e2b
cmp edi, 1
jbe 0x5a4d7c
cmp edi, 3
jbe 0x5a4d8b
mov ebx, dword [esi]
mov edx, dword [edi + esi - 4]
jmp 0x5a4d93
mov eax, edi
mov edi, 0xc97c50de
mov ebx, 0xc0ac29b7
mov eax, dword [eax + esi - 4]
xor edi, dword [esi]
xor ebx, dword [esi + 4]
mov dword [ebp - 0x30], eax
xor eax, 0x3f84d5b5
bswap eax
mov ecx, eax
mul edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
imul ecx, ebx
bswap ebx
add edx, ecx
mov esi, dword [eax + esi - 8]
mov eax, dword [ebp - 0x30]
mov ecx, esi
xor eax, 0xc07b2a4a
xor esi, 0x4ab8f6ec
xor ecx, 0xb5470913
imul eax, ebx
bswap ecx
mov dword [ebp - 0x30], eax
mov eax, ebx
mov ebx, dword [ebp - 0x24]
imul ecx, edi
bswap edi
add ecx, edx
mul esi
imul esi, edi
mov edi, dword [ebp - 0x20]
add edx, dword [ebp - 0x30]
bswap eax
add esi, edx
add edi, 0xc6d2022c
adc ebx, 0xea864d16
xor edi, dword [ebp - 0x2c]
bswap esi
xor ebx, eax
xor ebx, ecx
mov ecx, ebx
xor edi, esi
shld ecx, edi, 0x17
shld edi, ebx, 0x17
jmp 0x5a4e2b
xor eax, eax
cmp edi, 1
jne 0x5a4d9a
movzx ebx, byte [esi]
mov dword [ebp - 0x30], ebx
jmp 0x5a4da3
movzx ebx, word [esi]
movzx edx, byte [edi + esi - 1]
xor eax, eax
mov dword [ebp - 0x30], edx
jmp 0x5a4da3
mov dword [ebp - 0x30], 0
xor ebx, ebx
mov edi, eax
mov dword [ebp - 0x2c], eax
xor eax, 0x3f84d5b5
xor ebx, 0xc97c50de
bswap eax
xor edi, 0xc0ac29b7
mov dword [ebp - 0x38], ebx
mov ecx, eax
mul ebx
imul ecx, edi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x2c]
bswap edi
add edx, ecx
mov ecx, dword [ebp - 0x30]
xor eax, 0xc07b2a4a
mov esi, ecx
imul eax, edi
xor ecx, 0x4ab8f6ec
xor esi, 0xb5470913
bswap esi
imul esi, ebx
mov ebx, eax
mov eax, edi
add esi, edx
mul ecx
mov edi, eax
mov eax, dword [ebp - 0x38]
add edx, ebx
mov ebx, dword [ebp - 0x24]
bswap edi
bswap eax
imul ecx, eax
mov eax, dword [ebp - 0x20]
add ecx, edx
bswap ecx
add eax, 0xc6d2022c
adc ebx, 0xea864d16
xor eax, dword [ebp - 0x28]
xor edi, esi
xor edi, ebx
xor eax, ecx
mov ecx, edi
shld ecx, eax, 0x17
shrd edi, eax, 9
xor edi, 0xff
mov edx, 0x2df45158
imul ebx, ecx, 0x2df45158
bswap ecx
mov eax, edi
mul edx
mov dword [ebp - 0x20], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
add ebx, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mul edx
mov esi, eax
add ecx, edx
imul eax, edi, 0xb36a80d2
mov edx, 0x2df45158
add eax, ecx
mov ecx, dword [ebp - 0x3c]
bswap esi
bswap eax
xor esi, ebx
mov edi, dword [ecx + 0x24]
mov ecx, dword [ebp - 0x20]
xor ecx, edi
mov dword [ebp - 0x50], edi
xor ecx, eax
mov eax, ecx
mul edx
mov dword [ebp - 0x20], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, esi, 0x2df45158
bswap esi
add edx, eax
mov eax, esi
imul ebx, esi, 0xa7ae0bd2
imul esi, ecx, 0xb36a80d2
mov dword [ebp - 0x24], edx
mov edx, 0xb36a80d2
mul edx
bswap eax
add ebx, edx
xor eax, dword [ebp - 0x24]
add esi, ebx
bswap esi
xor esi, dword [ebp - 0x20]
test edi, edi
mov ebx, eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x4c], eax
je 0x5a5901
imul ecx, edi, 0x38
xorps xmm0, xmm0
add ecx, eax
mov dword [ebp - 0x54], ecx
jmp 0x5a5066
movd eax, xmm1
xor edi, eax
mov eax, edi
mov ecx, 0x2df45158
mul ecx
imul ecx, esi, 0x2df45158
bswap esi
mov dword [ebp - 0x28], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
add ecx, eax
mov eax, esi
mul edx
mov ebx, eax
imul eax, esi, 0xa7ae0bd2
imul esi, edi, 0xb36a80d2
add eax, edx
bswap ebx
add esi, eax
xor ebx, ecx
mov ecx, 0x2df45158
bswap esi
xor esi, dword [ebp - 0x28]
xor esi, 4
mov eax, esi
mul ecx
imul ecx, ebx, 0x2df45158
bswap ebx
mov dword [ebp - 0x28], eax
imul eax, esi, 0x2d7f954c
bswap esi
add eax, edx
mov edx, 0xb36a80d2
add ecx, eax
mov eax, ebx
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
imul ebx, esi, 0xb36a80d2
add eax, edx
bswap edi
add ebx, eax
xor edi, ecx
mov ecx, 0x4c957f2d
bswap ebx
imul edi, edi, 0x4c957f2d
xor ebx, dword [ebp - 0x28]
mov eax, ebx
mul ecx
mov dword [ebp - 0x28], eax
imul eax, ebx, 0x5851f42d
mov ebx, dword [ebp - 0x24]
add eax, edx
mov edx, 0xb5d5843f
add edi, eax
mov esi, ebx
mov ecx, ebx
xor ebx, 0x4ab8f6ec
xor ecx, 0xb5470913
xor esi, 0xc97c50de
bswap ecx
mov eax, esi
mul edx
imul ecx, esi
bswap esi
mov dword [ebp - 0x2c], eax
lea eax, [edx + ecx + 0x4823a009]
mov ecx, 0xb729acc0
mov dword [ebp - 0x38], eax
mov eax, ebx
imul ebx, esi
mul ecx
mov ecx, dword [ebp - 0x28]
lea edx, [edx + ebx - 0x375c9080]
bswap eax
bswap edx
add ecx, 0x673f0922
adc edi, 0x1f9c3784
xor edx, dword [ebp - 0x2c]
xor eax, dword [ebp - 0x38]
xor edx, ecx
mov ecx, dword [ebp - 0x30]
xor eax, edi
mov esi, eax
shrd eax, edx, 9
shld esi, edx, 0x17
imul edi, esi, 0x2df45158
bswap esi
movzx ebx, byte [ecx + 0x29]
mov ecx, 0x2df45158
xor ebx, eax
mov eax, ebx
mul ecx
mov ecx, 0xb36a80d2
mov dword [ebp - 0x24], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
add edi, eax
mov eax, esi
mul ecx
imul ecx, esi, 0xa7ae0bd2
imul esi, ebx, 0xb36a80d2
bswap eax
add ecx, edx
xor eax, edi
add esi, ecx
mov ebx, eax
mov eax, dword [ebp - 0x20]
bswap esi
xor esi, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x54]
je 0x5a5901
movss xmm1, dword [eax + 0x2c]
mov dword [ebp - 0x30], eax
ucomiss xmm1, xmm0
jne 0x5a5075
jnp 0x5a5084
ucomiss xmm1, xmm1
jp 0x5a58e9
movd eax, xmm1
xor esi, eax
mov ecx, ebx
imul eax, esi, 0x2d7f954c
imul ebx, ebx, 0x2df45158
mov edx, 0x2df45158
add ebx, eax
mov eax, esi
bswap ecx
bswap esi
mul edx
add ebx, edx
mov edi, eax
mov eax, ecx
mov edx, 0xb36a80d2
mul edx
mov dword [ebp - 0x20], ebx
mov ebx, eax
imul eax, ecx, 0xa7ae0bd2
mov ecx, 0x2df45158
add eax, edx
imul edx, esi, 0xb36a80d2
bswap ebx
add edx, eax
mov eax, dword [ebp - 0x30]
xor ebx, dword [ebp - 0x20]
bswap edx
xor edi, dword [eax + 0x30]
xor edi, edx
mov eax, edi
mul ecx
imul ecx, ebx, 0x2df45158
bswap ebx
mov esi, eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
add ecx, eax
mov eax, ebx
mov dword [ebp - 0x20], ecx
mov ecx, 0xb36a80d2
mul ecx
mov ecx, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
imul edx, edi, 0xb36a80d2
bswap ecx
add edx, eax
mov eax, dword [ebp - 0x30]
xor ecx, dword [ebp - 0x20]
bswap edx
xor esi, dword [eax + 0x34]
imul ebx, ecx, 0x2df45158
bswap ecx
xor esi, edx
mov edx, 0x2df45158
mov eax, esi
mul edx
mov dword [ebp - 0x20], eax
imul eax, esi, 0x2d7f954c
bswap esi
add eax, edx
mov edx, 0xb36a80d2
imul esi, esi, 0xb36a80d2
add ebx, eax
mov eax, ecx
mul edx
mov edi, eax
imul eax, ecx, 0xa7ae0bd2
mov ecx, dword [ebp - 0x30]
add eax, edx
bswap edi
add esi, eax
xor edi, ebx
bswap esi
movss xmm1, dword [ecx + 0xc]
xor esi, dword [ebp - 0x20]
ucomiss xmm1, xmm0
jne 0x5a5171
jnp 0x5a5180
ucomiss xmm1, xmm1
jp 0x5a58f1
movd eax, xmm1
xor esi, eax
mov eax, esi
mov ecx, 0x2df45158
mul ecx
imul ecx, edi, 0x2df45158
bswap edi
mov ebx, eax
imul eax, esi, 0x2d7f954c
bswap esi
add eax, edx
add ecx, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mov dword [ebp - 0x20], ecx
mov ecx, 0xb36a80d2
mul ecx
add edi, edx
mov edx, dword [ebp - 0x30]
mov ecx, eax
imul eax, esi, 0xb36a80d2
add eax, edi
bswap ecx
bswap eax
xor ecx, dword [ebp - 0x20]
mov edx, dword [edx]
imul edi, ecx, 0x2df45158
bswap ecx
xor ebx, edx
mov dword [ebp - 0x20], edx
mov edx, 0x2df45158
xor ebx, eax
mov eax, ebx
mul edx
mov dword [ebp - 0x24], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
mov edx, 0xb36a80d2
add edi, eax
mov eax, ecx
mul edx
mov esi, eax
imul eax, ecx, 0xa7ae0bd2
imul ecx, ebx, 0xb36a80d2
add eax, edx
bswap esi
add ecx, eax
xor esi, edi
bswap ecx
xor ecx, dword [ebp - 0x24]
cmp dword [ebp - 0x20], 2
jne 0x5a5583
mov ebx, dword [ebp - 0x30]
mov edx, 0x4c957f2d
mov edi, dword [ebx + 8]
add ecx, edi
mov dword [ebp - 0x2c], edi
mov eax, ecx
adc esi, 0
imul ecx, ecx, 0x5851f42d
mul edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 4]
add ecx, edx
imul edx, esi, 0x4c957f2d
add edx, ecx
cmp edi, 8
mov dword [ebp - 0x24], edx
lea esi, [eax + 8]
jbe 0x5a53d0
cmp dword [ebp - 0x2c], 0x10
jbe 0x5a53f6
mov eax, dword [ebp - 0x2c]
mov edi, 0xc97c50de
mov ecx, dword [eax + esi - 0x10]
mov edx, dword [eax + esi - 4]
xor ecx, edi
mov edi, dword [eax + esi - 0xc]
mov eax, 0xc0ac29b7
mov dword [ebp - 0x28], edx
mov ebx, ecx
mov dword [ebp - 0x38], ecx
xor edi, eax
mov eax, edx
xor eax, 0x3f84d5b5
bswap eax
mov ecx, eax
mul ebx
mov ebx, esi
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x2c]
imul ecx, edi
bswap edi
add edx, ecx
mov ecx, dword [eax + esi - 8]
mov eax, dword [ebp - 0x28]
mov esi, ecx
xor eax, 0xc07b2a4a
xor ecx, 0x4ab8f6ec
xor esi, 0xb5470913
imul eax, edi
bswap esi
mov dword [ebp - 0x28], eax
mov eax, edi
mov edi, dword [ebp - 0x38]
imul esi, dword [ebp - 0x38]
bswap edi
add esi, edx
mul ecx
imul ecx, edi
mov edi, dword [ebp - 0x24]
add edx, dword [ebp - 0x28]
bswap eax
add ecx, edx
mov edx, dword [ebp - 0x20]
bswap ecx
add edx, 0x34e90c6e
adc edi, 0xbe5466cf
xor ecx, dword [ebp - 0x44]
xor eax, esi
xor eax, edi
mov esi, eax
xor ecx, edx
shld esi, ecx, 0x17
shld ecx, eax, 0x17
mov dword [ebp - 0x38], ecx
nop word [eax + eax]
mov edx, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebx + 4]
mov eax, 0xc97c50de
xor edx, eax
mov eax, 0xc0ac29b7
mov dword [ebp - 0x20], ecx
xor ebx, eax
mov eax, ecx
mov dword [ebp - 0x28], edx
xor eax, 0x3f84d5b5
bswap eax
mov ecx, eax
mul edx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x24]
imul ecx, ebx
bswap ebx
add edx, ecx
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x20]
mov edi, ecx
xor eax, 0xc07b2a4a
xor ecx, 0x4ab8f6ec
xor edi, 0xb5470913
imul eax, ebx
bswap edi
mov dword [ebp - 0x20], eax
mov eax, ebx
mov ebx, dword [ebp - 0x28]
imul edi, dword [ebp - 0x28]
bswap ebx
add edi, edx
mul ecx
imul ecx, ebx
mov ebx, dword [ebp - 0x2c]
add edx, dword [ebp - 0x20]
bswap eax
add ebx, 0xfffffff0
add ecx, edx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x2c], ebx
bswap ecx
add edx, 0x34e90c6e
adc esi, 0xbe5466cf
xor edx, dword [ebp - 0x44]
xor esi, eax
mov eax, dword [ebp - 0x24]
xor esi, edi
mov edi, esi
xor edx, ecx
shld edi, edx, 0x17
add eax, 0x10
shld edx, esi, 0x17
cmp ebx, 0x10
mov ebx, eax
mov esi, edi
mov dword [ebp - 0x38], edx
ja 0x5a5310
jmp 0x5a5536
cmp dword [ebp - 0x2c], 1
jbe 0x5a547f
cmp dword [ebp - 0x2c], 3
jbe 0x5a5491
mov eax, dword [ebp - 0x2c]
mov ecx, esi
mov esi, dword [esi]
xor edx, edx
mov eax, dword [eax + ecx - 4]
jmp 0x5a549f
mov eax, dword [ebp - 0x2c]
mov edx, esi
mov edi, dword [edx]
mov ebx, dword [edx + 4]
mov ecx, dword [eax + esi - 8]
mov esi, dword [eax + esi - 4]
mov eax, 0xc97c50de
xor edi, eax
mov eax, 0xc0ac29b7
xor ebx, eax
mov eax, esi
mov dword [ebp - 0x28], esi
xor eax, 0x3f84d5b5
bswap eax
mov esi, eax
mul edi
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
imul esi, ebx
bswap ebx
add edx, esi
mov esi, ecx
xor ecx, 0x4ab8f6ec
xor esi, 0xb5470913
bswap esi
xor eax, 0xc07b2a4a
imul esi, edi
bswap edi
imul eax, ebx
add esi, edx
mov dword [ebp - 0x28], eax
mov eax, ebx
mul ecx
imul ecx, edi
mov edi, dword [ebp - 0x24]
add edx, dword [ebp - 0x28]
bswap eax
add ecx, edx
mov edx, dword [ebp - 0x20]
bswap ecx
add edx, 0x34e90c6e
adc edi, 0xbe5466cf
xor ecx, dword [ebp - 0x2c]
jmp 0x5a5523
xor edx, edx
cmp dword [ebp - 0x2c], 1
jne 0x5a54a4
movzx edi, byte [esi]
mov dword [ebp - 0x38], edi
mov esi, edi
jmp 0x5a54ad
mov ecx, dword [ebp - 0x2c]
movzx esi, word [eax + 8]
xor edx, edx
movzx eax, byte [ecx + eax + 7]
mov dword [ebp - 0x38], eax
jmp 0x5a54ad
mov dword [ebp - 0x38], 0
xor esi, esi
mov eax, edx
mov ebx, edx
xor esi, 0xc97c50de
mov edi, edx
xor eax, 0x3f84d5b5
xor ebx, 0xc0ac29b7
mov dword [ebp - 0x2c], esi
xor edi, 0xc07b2a4a
bswap eax
mov ecx, eax
mul esi
imul ecx, ebx
mov dword [ebp - 0x28], eax
mov eax, esi
bswap ebx
add edx, ecx
mov ecx, dword [ebp - 0x38]
imul edi, ebx
mov esi, ecx
xor ecx, 0x4ab8f6ec
xor esi, 0xb5470913
bswap esi
imul esi, eax
mov eax, ebx
add esi, edx
mul ecx
add edx, edi
mov edi, dword [ebp - 0x2c]
bswap eax
bswap edi
imul ecx, edi
mov edi, dword [ebp - 0x24]
add ecx, edx
mov edx, dword [ebp - 0x20]
bswap ecx
add edx, 0x34e90c6e
adc edi, 0xbe5466cf
xor ecx, dword [ebp - 0x28]
xor eax, esi
xor eax, edi
xor ecx, edx
mov edi, eax
shld edi, ecx, 0x17
shld ecx, eax, 0x17
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x38]
mov edx, 0x2df45158
imul ebx, edi, 0x2df45158
bswap edi
xor ecx, 0xff
mov eax, ecx
mul edx
mov dword [ebp - 0x20], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
imul ecx, ecx, 0xb36a80d2
add ebx, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul edx
add edi, edx
mov esi, eax
add ecx, edi
bswap esi
bswap ecx
xor esi, ebx
xor ecx, dword [ebp - 0x20]
xor ecx, 4
mov edx, 0x2df45158
mov eax, ecx
mul edx
mov dword [ebp - 0x20], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, esi, 0x2df45158
bswap esi
imul edi, ecx, 0xb36a80d2
mov ecx, 0x4c957f2d
add edx, eax
mov eax, esi
mov dword [ebp - 0x24], edx
mov edx, 0xb36a80d2
mul edx
mov ebx, eax
imul eax, esi, 0xa7ae0bd2
add eax, edx
bswap ebx
add edi, eax
xor ebx, dword [ebp - 0x24]
bswap edi
xor edi, dword [ebp - 0x20]
mov eax, edi
mul ecx
imul ecx, ebx, 0x4c957f2d
mov dword [ebp - 0x20], eax
imul eax, edi, 0x5851f42d
add eax, edx
mov edx, 0xb5d5843f
add ecx, eax
mov eax, dword [ebp - 0x30]
mov esi, dword [eax + 0x10]
mov ebx, esi
mov edi, esi
xor esi, 0x4ab8f6ec
xor edi, 0xb5470913
xor ebx, 0xc97c50de
bswap edi
mov eax, ebx
mul edx
imul edi, ebx
bswap ebx
mov dword [ebp - 0x24], eax
lea edi, [edx + edi + 0x4823a009]
mov eax, esi
mov edx, 0xb729acc0
imul esi, ebx
mul edx
lea esi, [edx + esi - 0x375c9080]
mov edx, dword [ebp - 0x20]
bswap eax
bswap esi
add edx, 0x673f0922
adc ecx, 0x1f9c3784
xor esi, dword [ebp - 0x24]
xor eax, edi
xor eax, ecx
mov ecx, 0x2df45158
mov edi, eax
xor esi, edx
shld edi, esi, 0x17
shld esi, eax, 0x17
xor esi, 4
mov eax, esi
mul ecx
imul ecx, edi, 0x2df45158
bswap edi
mov dword [ebp - 0x20], eax
imul eax, esi, 0x2d7f954c
bswap esi
add eax, edx
add ecx, eax
mov eax, edi
mov dword [ebp - 0x24], ecx
mov ecx, 0xb36a80d2
mul ecx
mov ebx, eax
imul eax, edi, 0xa7ae0bd2
imul edi, esi, 0xb36a80d2
add eax, edx
bswap ebx
mov edx, 0x4c957f2d
add edi, eax
mov eax, dword [ebp - 0x30]
xor ebx, dword [ebp - 0x24]
bswap edi
xor edi, dword [ebp - 0x20]
mov ecx, dword [eax + 0x14]
mov eax, edi
mul edx
mov esi, ecx
mov dword [ebp - 0x20], eax
imul eax, edi, 0x5851f42d
imul edi, ebx, 0x4c957f2d
mov ebx, ecx
xor ecx, 0x4ab8f6ec
add eax, edx
xor esi, 0xb5470913
xor ebx, 0xc97c50de
mov edx, 0xb5d5843f
bswap esi
add edi, eax
mov eax, ebx
mul edx
imul esi, ebx
bswap ebx
mov dword [ebp - 0x24], eax
lea esi, [edx + esi + 0x4823a009]
mov eax, ecx
mov edx, 0xb729acc0
imul ecx, ebx
mul edx
lea edx, [edx + ecx - 0x375c9080]
mov ecx, dword [ebp - 0x20]
bswap eax
bswap edx
add ecx, 0x673f0922
adc edi, 0x1f9c3784
xor edx, dword [ebp - 0x24]
xor eax, esi
xor eax, edi
mov edi, eax
xor edx, ecx
mov ecx, dword [ebp - 0x30]
shrd eax, edx, 9
shld edi, edx, 0x17
movzx ebx, byte [ecx + 0x28]
mov ecx, 0x2df45158
xor ebx, eax
mov eax, ebx
mul ecx
imul ecx, edi, 0x2df45158
bswap edi
mov dword [ebp - 0x20], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
mov edx, 0xb36a80d2
add ecx, eax
mov eax, edi
mul edx
mov esi, eax
imul eax, edi, 0xa7ae0bd2
imul edi, ebx, 0xb36a80d2
add eax, edx
bswap esi
add edi, eax
mov eax, dword [ebp - 0x30]
xor esi, ecx
bswap edi
xor edi, dword [ebp - 0x20]
movss xmm1, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
ucomiss xmm1, xmm0
mov dword [ebp - 0x20], eax
jne 0x5a5791
jnp 0x5a57a0
ucomiss xmm1, xmm1
jp 0x5a58f9
movd eax, xmm1
xor edi, eax
mov eax, edi
mov ecx, 0x2df45158
mul ecx
imul ecx, esi, 0x2df45158
bswap esi
mov dword [ebp - 0x24], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
add ecx, eax
mov eax, esi
mul edx
mov ebx, eax
imul eax, esi, 0xa7ae0bd2
imul esi, edi, 0xb36a80d2
add eax, edx
bswap ebx
add esi, eax
xor ebx, ecx
mov ecx, 0x2df45158
bswap esi
xor esi, dword [ebp - 0x24]
xor esi, 4
mov eax, esi
mul ecx
imul ecx, ebx, 0x2df45158
bswap ebx
mov dword [ebp - 0x24], eax
imul eax, esi, 0x2d7f954c
bswap esi
add eax, edx
mov edx, 0xb36a80d2
imul esi, esi, 0xb36a80d2
add ecx, eax
mov eax, ebx
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
add eax, edx
bswap edi
add esi, eax
xor edi, ecx
mov ecx, 0x4c957f2d
bswap esi
imul ebx, edi, 0x4c957f2d
xor esi, dword [ebp - 0x24]
mov eax, esi
mul ecx
mov dword [ebp - 0x24], eax
imul eax, esi, 0x5851f42d
mov esi, dword [ebp - 0x20]
add eax, edx
mov edx, 0xb5d5843f
add ebx, eax
mov edi, esi
mov ecx, esi
xor esi, 0x4ab8f6ec
xor ecx, 0xb5470913
xor edi, 0xc97c50de
bswap ecx
mov eax, edi
mul edx
imul ecx, edi
bswap edi
mov dword [ebp - 0x28], eax
lea eax, [edx + ecx + 0x4823a009]
mov ecx, 0xb729acc0
mov dword [ebp - 0x2c], eax
mov eax, esi
imul esi, edi
mul ecx
mov ecx, dword [ebp - 0x24]
mov edi, eax
lea eax, [edx + esi - 0x375c9080]
bswap eax
bswap edi
add ecx, 0x673f0922
adc ebx, 0x1f9c3784
xor eax, dword [ebp - 0x28]
xor edi, dword [ebp - 0x2c]
xor eax, ecx
mov ecx, dword [ebp - 0x30]
xor edi, ebx
mov esi, edi
shrd edi, eax, 9
shld esi, eax, 0x17
movss xmm1, dword [ecx + 0x20]
mov eax, dword [ecx + 0x24]
lea edx, [ecx + 0x38]
mov dword [ebp - 0x20], edx
ucomiss xmm1, xmm0
mov dword [ebp - 0x24], eax
jne 0x5a58d8
jnp 0x5a4ef6
ucomiss xmm1, xmm1
jnp 0x5a4ef0
xor edi, 1
jmp 0x5a4ef6
xor esi, 1
jmp 0x5a5084
xor esi, 1
jmp 0x5a5180
xor edi, 1
jmp 0x5a57a0
mov eax, dword [ebp - 0x3c]
xorps xmm1, xmm1
movss xmm0, dword [eax + 4]
ucomiss xmm0, xmm1
jne 0x5a5913
jnp 0x5a5922
ucomiss xmm0, xmm0
jp 0x5a604f
movd eax, xmm0
xor esi, eax
mov ecx, 0x2df45158
mov eax, esi
mul ecx
mov ecx, ebx
mov edi, eax
imul eax, esi, 0x2d7f954c
bswap ecx
bswap esi
add eax, edx
imul edx, ebx, 0x2df45158
add edx, eax
mov eax, ecx
mov dword [ebp - 0x20], edx
mov edx, 0xb36a80d2
mul edx
mov ebx, eax
imul eax, ecx, 0xa7ae0bd2
mov ecx, 0x2df45158
add eax, edx
imul edx, esi, 0xb36a80d2
bswap ebx
add edx, eax
mov eax, dword [ebp - 0x3c]
xor ebx, dword [ebp - 0x20]
bswap edx
xor edi, dword [eax + 8]
xor edi, edx
mov eax, edi
mul ecx
imul ecx, ebx, 0x2df45158
bswap ebx
mov dword [ebp - 0x20], eax
imul eax, edi, 0x2d7f954c
bswap edi
add eax, edx
mov edx, 0xb36a80d2
add ecx, eax
mov eax, ebx
imul ebx, ebx, 0xa7ae0bd2
mul edx
mov esi, eax
add ebx, edx
imul eax, edi, 0xb36a80d2
bswap esi
add eax, ebx
xor esi, ecx
mov ecx, dword [ebp - 0x3c]
bswap eax
imul edi, esi, 0x2df45158
bswap esi
movzx ebx, byte [ecx + 0xc]
mov ecx, 0x2df45158
or ebx, dword [ebp - 0x20]
xor ebx, eax
mov eax, ebx
mul ecx
mov ecx, 0xb36a80d2
mov dword [ebp - 0x24], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
add edi, eax
mov eax, esi
imul esi, esi, 0xa7ae0bd2
mul ecx
add esi, edx
mov edx, dword [ebp - 0x3c]
mov ecx, eax
imul eax, ebx, 0xb36a80d2
xor ebx, ebx
add eax, esi
bswap ecx
bswap eax
mov edx, dword [edx]
cmp edx, 0x110000
mov dword [ebp - 0x20], edx
mov edx, 0x2df45158
setne bl
xor ecx, edi
add ebx, dword [ebp - 0x24]
imul edi, ecx, 0x2df45158
bswap ecx
xor ebx, eax
mov eax, ebx
mul edx
mov dword [ebp - 0x24], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
mov edx, 0xb36a80d2
add edi, eax
mov eax, ecx
mul edx
mov esi, eax
imul eax, ecx, 0xa7ae0bd2
imul ecx, ebx, 0xb36a80d2
add eax, edx
bswap esi
add ecx, eax
mov eax, dword [ebp - 0x20]
xor esi, edi
bswap ecx
xor ecx, dword [ebp - 0x24]
cmp eax, 0x110000
je 0x5a5aa8
xor ecx, eax
mov edx, 0x2df45158
imul ebx, esi, 0x2df45158
bswap esi
mov eax, ecx
mul edx
mov edi, eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
imul ecx, ecx, 0xb36a80d2
add ebx, eax
mov eax, esi
imul esi, esi, 0xa7ae0bd2
mul edx
add esi, edx
add ecx, esi
mov esi, eax
bswap esi
bswap ecx
xor esi, ebx
xor ecx, edi
mov eax, dword [ebp - 0x3c]
movss xmm0, dword [eax + 0x28]
ucomiss xmm0, xmm1
jne 0x5a5ab7
jnp 0x5a5ac6
ucomiss xmm0, xmm0
jp 0x5a6057
movd eax, xmm0
xor ecx, eax
mov edx, 0x2df45158
mov eax, ecx
imul ebx, esi, 0x2df45158
bswap esi
pcmpeqd xmm1, xmm1
mov dword [ebp - 0x2c], 0
mul edx
mov dword [ebp - 0x20], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
add ebx, eax
mov eax, esi
imul esi, esi, 0xa7ae0bd2
mul edx
mov edi, eax
imul eax, ecx, 0xb36a80d2
mov ecx, dword [ebp - 0x3c]
add esi, edx
bswap edi
add eax, esi
xor edi, ebx
bswap eax
imul esi, edi, 0x2df45158
bswap edi
movzx ebx, byte [ecx + 0x2c]
mov ecx, 0x2df45158
or ebx, dword [ebp - 0x20]
xor ebx, eax
mov eax, ebx
mul ecx
mov ecx, 0xb36a80d2
mov dword [ebp - 0x20], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
add esi, eax
mov eax, edi
imul edi, edi, 0xa7ae0bd2
mul ecx
add edi, edx
mov edx, dword [ebp - 0x3c]
mov ecx, eax
imul eax, ebx, 0xb36a80d2
add eax, edi
bswap ecx
bswap eax
xor ecx, esi
imul edi, ecx, 0x2df45158
bswap ecx
movzx ebx, byte [edx + 0x2e]
mov edx, 0x2df45158
or ebx, dword [ebp - 0x20]
xor ebx, eax
mov eax, ebx
mul edx
mov dword [ebp - 0x20], eax
imul eax, ebx, 0x2d7f954c
bswap ebx
add eax, edx
mov edx, 0xb36a80d2
add edi, eax
mov eax, ecx
imul ecx, ecx, 0xa7ae0bd2
mul edx
mov esi, eax
add ecx, edx
imul eax, ebx, 0xb36a80d2
mov edx, 0x2df45158
add eax, ecx
mov ecx, dword [ebp - 0x3c]
bswap esi
bswap eax
xor esi, edi
imul ebx, esi, 0x2df45158
bswap esi
movzx ecx, byte [ecx + 0x2d]
or ecx, dword [ebp - 0x20]
xor ecx, eax
mov eax, ecx
mul edx
mov dword [ebp - 0x20], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
mov edx, 0xb36a80d2
imul ecx, ecx, 0xb36a80d2
add ebx, eax
mov eax, esi
mul edx
mov edi, eax
imul eax, esi, 0xa7ae0bd2
add eax, edx
mov edx, 0xcf6654be
bswap edi
add ecx, eax
xor edi, ebx
bswap ecx
imul ebx, edi, 0xcf6654be
bswap edi
xor ecx, dword [ebp - 0x20]
mov eax, ecx
mul edx
mov esi, eax
imul eax, ecx, 0x6e0ce934
add eax, edx
mov edx, 0xcb16f391
add ebx, eax
mov eax, edi
imul edi, edi, 0x41ab9930
mul edx
add edi, edx
mov edx, ecx
bswap eax
bswap edx
xor eax, ebx
imul edx, edx, 0xcb16f391
add edx, edi
mov edi, dword [ebp - 0x40]
bswap edx
xor edx, esi
test cl, 0x20
lea ebx, [edi + 0xa0]
mov dword [ebp - 0x44], ebx
mov ebx, edx
cmove edx, eax
cmovne ebx, eax
mov eax, edx
shld eax, ebx, cl
shld ebx, edx, cl
mov edx, dword [edi + 0xa0]
mov ecx, dword [edi + 0xa4]
mov dword [ebp - 0x24], eax
mov eax, ebx
mov dword [ebp - 0x20], ebx
shr eax, 0x19
movd xmm0, eax
mov dword [ebp - 0x38], eax
punpcklbw xmm0, xmm0
lea eax, [edx - 0x10]
mov dword [ebp - 0x30], edx
pshuflw xmm0, xmm0, 0
mov dword [ebp - 0x28], eax
pshufd xmm0, xmm0, 0
and ebx, ecx
movdqa xmm3, xmm0
movdqu xmm2, xmmword [edx + ebx]
pcmpeqb xmm3, xmm2
pmovmskb edi, xmm3
nop word cs:[eax + eax]
nop
test di, di
je 0x5a5ce0
tzcnt edx, edi
mov esi, dword [ebp - 0x28]
lea eax, [edi - 1]
add edx, ebx
and eax, edi
and edx, ecx
mov edi, edx
shl edi, 4
sub esi, edi
mov edi, dword [esi + 4]
mov esi, dword [esi]
xor edi, dword [ebp - 0x24]
xor esi, dword [ebp - 0x20]
or esi, edi
mov edi, eax
jne 0x5a5cb0
jmp 0x5a5d02
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x5a5db6
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
lea ebx, [ebx + eax + 0x10]
add eax, 0x10
mov dword [ebp - 0x2c], eax
jmp 0x5a5c92
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
neg edx
shl edx, 4
mov eax, dword [eax + 0xb0]
mov dword [ecx + edx - 4], eax
mov eax, dword [ecx + edx - 8]
lock inc dword [eax]
jle 0x5a604b
mov edi, dword [ebp - 0x3c]
add ecx, edx
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x4c]
mov esi, dword [ecx - 8]
cmp dword [edi + 0x14], 0
je 0x5a5d4f
push dword [ebp - 0x48]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x24]
test eax, eax
je 0x5a5d86
add ebx, 8
jmp 0x5a5d66
add ebx, 0x38
dec eax
je 0x5a5d86
cmp dword [ebx - 8], 2
jb 0x5a5d60
mov edi, eax
mov eax, dword [ebx - 4]
lock dec dword [eax]
mov eax, edi
jne 0x5a5d60
mov ecx, dword [ebx - 4]
mov edx, dword [ebx]
call fcn.004f2ff0
mov eax, edi
jmp 0x5a5d60
mov eax, dword [ebp - 0x3c]
cmp dword [eax + 0x20], 0
je 0x5a5da0
push dword [eax + 0x1c]
push 0
push dword [0x919820]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, esi
add esp, 0xc8
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [ebp - 0x40]
cmp dword [esi + 0xa8], 0
jne 0x5a5dd8
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 0x31], 1
mov dword [ebp - 0x10], 0
call fcn.00714a60
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
movsd xmm1, qword [eax + 0x20]
movsd xmm2, qword [eax + 0x18]
movq xmm0, qword [eax + 0x28]
movsd qword [ebp - 0x70], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [ebp - 0x78], xmm2
movq xmm2, qword [eax]
movq qword [ebp - 0x68], xmm0
movsd qword [ebp - 0x80], xmm1
movq xmm1, qword [eax + 8]
movq qword [ebp - 0x90], xmm2
movq qword [ebp - 0x88], xmm1
mov dword [ebp - 0x98], 1
mov dword [ebp - 0x94], 1
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5a5e53
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5a605f
mov dword [0x919820], eax
push 0x38
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x5a605f
movsd xmm0, qword [ebp - 0x68]
lea ecx, [ebp - 0xd4]
mov edx, esi
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [ebp - 0x70]
movsd qword [eax + 0x28], xmm0
movsd xmm0, qword [ebp - 0x78]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [ebp - 0x80]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [ebp - 0x88]
movsd qword [eax + 0x10], xmm0
movq xmm0, qword [ebp - 0x98]
movq xmm1, qword [ebp - 0x90]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
mov byte [ebp - 0x31], 0
mov dword [ebp - 0x10], 0
push eax
call fcn.005a6af0
mov edi, dword [ebp - 0x40]
add esp, 4
movsd xmm2, qword [ebp - 0xac]
movsd xmm1, qword [ebp - 0xb4]
mov eax, dword [ebp - 0x9c]
movq xmm0, qword [ebp - 0xa4]
movsd qword [ebp - 0x68], xmm2
movsd qword [ebp - 0x70], xmm1
movsd xmm2, qword [ebp - 0xbc]
movsd xmm1, qword [ebp - 0xc4]
mov dword [ebp - 0x58], eax
movq qword [ebp - 0x60], xmm0
movsd qword [ebp - 0x78], xmm2
movsd qword [ebp - 0x80], xmm1
movq xmm2, qword [ebp - 0xd4]
movq xmm1, qword [ebp - 0xcc]
movq qword [ebp - 0x88], xmm1
movq qword [ebp - 0x90], xmm2
mov dword [ebp - 0x98], 1
mov dword [ebp - 0x94], 1
movzx eax, byte [0x919aa5]
mov eax, dword [0x919820]
test eax, eax
jne 0x5a5f74
call dword [sym.imp.kernel32.dll_GetProcessHeap]
test eax, eax
je 0x5a6077
mov dword [0x919820], eax
push 0x44
push 0
push eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
test eax, eax
je 0x5a6077
mov esi, eax
lea eax, [ebp - 0x98]
push 0x44
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0xb0]
lock inc dword [esi]
jle 0x5a604b
mov edx, dword [edi + 0xa4]
mov ecx, dword [edi + 0xa0]
mov dword [ebp - 0x28], eax
mov edi, edx
and edi, dword [ebp - 0x20]
movdqu xmm0, xmmword [ecx + edi]
pmovmskb eax, xmm0
test eax, eax
jne 0x5a5fe4
mov ebx, 0x10
add edi, ebx
add ebx, 0x10
and edi, edx
movdqu xmm0, xmmword [ecx + edi]
pmovmskb eax, xmm0
test eax, eax
je 0x5a5fd0
tzcnt ebx, eax
add ebx, edi
and ebx, edx
movzx eax, byte [ecx + ebx]
test al, al
js 0x5a6004
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
tzcnt ebx, eax
movzx eax, byte [ecx + ebx]
lea edi, [ebx - 0x10]
and al, 1
and edi, edx
mov edx, dword [ebp - 0x38]
movzx eax, al
mov byte [ecx + ebx], dl
mov byte [edi + ecx + 0x10], dl
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x24]
shl ebx, 4
sub dword [edx + 0xa8], eax
mov eax, ecx
sub eax, ebx
neg ebx
mov dword [eax - 0xc], edi
mov edi, dword [ebp - 0x20]
mov dword [eax - 0x10], edi
mov edi, dword [ebp - 0x28]
mov dword [ecx + ebx - 8], esi
mov dword [eax - 4], edi
inc dword [edx + 0xac]
jmp 0x5a5da0
ud2
xor esi, 1
jmp 0x5a5922
xor ecx, 1
jmp 0x5a5ac6
mov ecx, 4
mov edx, 0x38
mov dword [ebp - 0x10], 2
call fcn.00709d20
jmp 0x5a608d
mov ecx, 4
mov edx, 0x44
mov dword [ebp - 0x10], 1
call fcn.00709d20
ud2