Function at 0x410720
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
push esi
push ebx
mov ebx, ecx
and esp, 0xfffffff0
sub esp, 0xf0
mov esi, dword [edi]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xa8], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x54], esi
mov esi, dword [edi + 4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 0x50], esi
mov esi, dword [edi + 8]
mov dword [esp + 0x4c], esi
mov esi, dword [edi + 0xc]
mov dword [esp + 0x48], esi
mov esi, dword [edi + 0x10]
mov dword [esp + 0x44], esi
mov esi, dword [edi + 0x14]
mov dword [esp + 0x40], esi
mov esi, dword [edi + 0x18]
mov dword [esp + 0x3c], esi
mov esi, dword [edi + 0x1c]
mov dword [esp + 0x38], esi
mov esi, dword [edi + 0x20]
mov dword [esp + 0x34], esi
mov esi, dword [edi + 0x24]
mov dword [esp + 0x30], esi
mov esi, dword [edi + 0x28]
mov dword [esp + 0x2c], esi
mov esi, dword [edi + 0x2c]
mov ecx, dword [edi + 0x34]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], esi
mov esi, dword [edi + 0x30]
mov dword [esp + 0x5c], ecx
mov ecx, dword [edi + 0x38]
mov edi, dword [edi + 0x3c]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edi
lea esi, [esi]
mov ecx, dword [esp + 0x60]
mov eax, 0x3f
mov ebx, dword [esp + 0x64]
cmp eax, ecx
mov eax, 0
sbb eax, ebx
jae 0x410d10
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x7c], esi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x68], 0xa
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x20]
mov edx, ebx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x78]
lea esi, [esi]
nop
mov ebx, dword [esp + 0xa8]
add ebx, eax
xor esi, ebx
rol esi, 0x10
add ecx, esi
xor eax, ecx
rol eax, 0xc
add ebx, eax
xor esi, ebx
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x80]
rol esi, 8
add ecx, esi
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x88]
xor eax, ecx
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x98]
rol eax, 7
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x9c]
add ecx, eax
xor esi, ecx
rol esi, 0x10
add ebx, esi
xor eax, ebx
rol eax, 0xc
add ecx, eax
xor esi, ecx
mov dword [esp + 0x98], ecx
mov ecx, esi
mov esi, dword [esp + 0x8c]
rol ecx, 8
add ebx, ecx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x90]
xor eax, ebx
mov dword [esp + 0x80], ebx
mov ebx, dword [esp + 0xa0]
rol eax, 7
add esi, ecx
xor edx, esi
rol edx, 0x10
add ebx, edx
xor ecx, ebx
rol ecx, 0xc
add esi, ecx
xor edx, esi
mov dword [esp + 0x8c], esi
rol edx, 8
add ebx, edx
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0xa4]
xor ecx, ebx
mov esi, ecx
mov ecx, dword [esp + 0x94]
rol esi, 7
mov dword [esp + 0x90], esi
mov esi, dword [esp + 0x84]
add edi, esi
xor edx, edi
rol edx, 0x10
add ecx, edx
xor esi, ecx
rol esi, 0xc
add edi, esi
xor edx, edi
mov dword [esp + 0x6c], edi
rol edx, 8
add ecx, edx
xor esi, ecx
mov edi, esi
mov esi, dword [esp + 0xa8]
rol edi, 7
add esi, eax
xor edx, esi
rol edx, 0x10
add ebx, edx
xor eax, ebx
rol eax, 0xc
add esi, eax
xor edx, esi
mov dword [esp + 0xa8], esi
rol edx, 8
mov dword [esp + 0xa4], edx
add edx, ebx
mov ebx, dword [esp + 0x90]
xor eax, edx
mov dword [esp + 0xa0], edx
mov edx, eax
mov eax, dword [esp + 0x98]
rol edx, 7
mov dword [esp + 0x9c], edx
lea edx, [eax + ebx]
mov eax, dword [esp + 0x7c]
xor eax, edx
rol eax, 0x10
add ecx, eax
xor ebx, ecx
rol ebx, 0xc
lea esi, [edx + ebx]
xor eax, esi
mov dword [esp + 0x98], esi
mov esi, eax
rol esi, 8
lea eax, [ecx + esi]
xor ebx, eax
mov dword [esp + 0x94], eax
rol ebx, 7
mov dword [esp + 0x90], ebx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
lea edx, [eax + edi]
xor ecx, edx
mov eax, ecx
mov ecx, dword [esp + 0x78]
rol eax, 0x10
add ecx, eax
xor edi, ecx
rol edi, 0xc
lea ebx, [edx + edi]
mov edx, dword [esp + 0x70]
xor eax, ebx
mov dword [esp + 0x8c], ebx
mov ebx, eax
rol ebx, 8
add ecx, ebx
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x80]
xor edi, ecx
mov eax, edi
mov edi, dword [esp + 0x6c]
rol eax, 7
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x74]
add edi, eax
xor edx, edi
rol edx, 0x10
add ebx, edx
xor eax, ebx
rol eax, 0xc
add edi, eax
xor edx, edi
rol edx, 8
add ebx, edx
xor eax, ebx
mov dword [esp + 0x80], ebx
rol eax, 7
sub dword [esp + 0x68], 1
jne 0x4108a0
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x1c]
add ebx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x98]
movss xmm3, dword [esp + 0xa8]
movups xmm7, xmmword [edx]
add ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x8c]
movss xmm6, dword [esp + 0x98]
unpcklps xmm3, xmm6
add ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x40]
movss xmm0, dword [esp + 0x8c]
add eax, edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x44]
movss xmm5, dword [esp + 0x70]
unpcklps xmm0, xmm5
movlhps xmm3, xmm0
add eax, edi
xorps xmm3, xmm7
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x9c]
add eax, ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x90]
add eax, ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x84]
add eax, ebx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x34]
movss xmm2, dword [esp + 0xa8]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x80]
movss xmm6, dword [esp + 0x9c]
add edi, esi
add esi, 1
movups xmm7, xmmword [edx + 0x10]
movss xmm1, dword [esp + 0xa8]
mov dword [esp + 0xa8], edi
unpcklps xmm2, xmm6
add eax, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x5c]
movss xmm0, dword [esp + 0x98]
movss xmm5, dword [esp + 0x90]
movss xmm6, dword [esp + 0x9c]
add eax, ebx
mov dword [esp + 0xa0], eax
mov ebx, dword [esp + 0x28]
add ecx, edi
unpcklps xmm0, xmm5
mov eax, dword [esp + 0x94]
movlhps xmm2, xmm0
unpcklps xmm1, xmm6
movss xmm0, dword [esp + 0xa0]
mov dword [esp + 0xa0], ecx
xorps xmm2, xmm7
mov ecx, dword [esp + 0x74]
movups xmm7, xmmword [edx + 0x20]
add eax, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x98], eax
lea eax, [edx + 0x40]
movss xmm5, dword [esp + 0x98]
unpcklps xmm0, xmm5
movlhps xmm1, xmm0
add ecx, ebx
mov ebx, dword [esp + 0x20]
xorps xmm1, xmm7
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xa4]
add ecx, ebx
cmp esi, 1
adc edi, 0
mov dword [esp + 0xa4], ecx
movss xmm4, dword [esp + 0x9c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x5c], edi
movss xmm5, dword [esp + 0xa4]
mov edi, dword [esp + 0x58]
movss xmm0, dword [esp + 0xa8]
unpcklps xmm4, xmm5
movss xmm6, dword [esp + 0xa0]
mov ebx, dword [esp + 0x64]
unpcklps xmm0, xmm6
movlhps xmm0, xmm4
movups xmm4, xmmword [edx + 0x30]
mov edx, 0x40
movups xmmword [edi], xmm3
cmp edx, ecx
movups xmmword [edi + 0x10], xmm2
xorps xmm0, xmm4
movups xmmword [edi + 0x20], xmm1
movups xmmword [edi + 0x30], xmm0
mov edi, 0
sbb edi, ebx
jae 0x41108f
add dword [esp + 0x60], 0xffffffc0
mov edx, eax
adc dword [esp + 0x64], 0xffffffff
add dword [esp + 0x58], 0x40
jmp 0x4107d8
xor eax, eax
mov ecx, 0x10
mov ebx, dword [esp + 0x64]
lea edi, [esp + 0xb0]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x60]
mov eax, 0xe
add ecx, 0xffffffff
adc ebx, 0xffffffff
cmp eax, ecx
mov eax, 0
sbb eax, ebx
jae 0x411050
lea ecx, [edx + 1]
lea eax, [esp + 0xb0]
sub eax, ecx
cmp eax, 0xe
jbe 0x411050
test dl, 0xf
jne 0x411050
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
movups xmm7, xmmword [edx]
movups xmmword [esp + 0xb0], xmm7
shrd ecx, ebx, 4
shr ebx, 4
mov eax, ecx
mov dword [esp + 0xa8], ecx
xor eax, 1
mov dword [esp + 0xac], ebx
or eax, ebx
je 0x410dc0
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
movups xmm7, xmmword [edx + 0x10]
mov eax, ecx
movups xmmword [esp + 0xc0], xmm7
xor eax, 3
or eax, ebx
jne 0x410dc0
movups xmm7, xmmword [edx + 0x20]
movups xmmword [esp + 0xd0], xmm7
mov ecx, dword [esp + 0x60]
xor ebx, ebx
and ecx, 0xfffffff0
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0x60]
and ecx, 0xf
mov eax, ecx
or eax, ebx
je 0x411038
mov edi, dword [esp + 0xa8]
xor ebx, ebx
movzx eax, byte [edx + edi]
mov byte [esp + edi + 0xb0], al
lea eax, [edi + 1]
mov edi, dword [esp + 0x60]
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 1]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 2]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 2]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 3]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 3]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 4]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 4]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 5]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 5]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 6]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 6]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 7]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 7]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 8]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 8]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 9]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 9]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 0xa]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 0xa]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 0xb]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 0xb]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 0xc]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 0xc]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 0xd]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx ebx, byte [edx + edi + 0xd]
mov byte [esp + eax + 0xb0], bl
lea eax, [edi + 0xe]
mov edi, dword [esp + 0x60]
xor ebx, ebx
cmp eax, edi
mov edi, ebx
sbb edi, dword [esp + 0x64]
jae 0x411038
mov edi, dword [esp + 0xa8]
movzx edx, byte [edx + edi + 0xe]
mov byte [esp + eax + 0xb0], dl
lea esi, [esi]
nop
mov eax, dword [esp + 0x58]
lea edx, [esp + 0xb0]
mov dword [esp + 0x58], edx
mov dword [esp + 0x14], eax
jmp 0x4107f4
mov ecx, dword [esp + 0x60]
xor eax, eax
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x58]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ebx
lea esi, [esi]
movzx ebx, byte [edx + eax]
mov ecx, dword [esp + 0xa8]
mov byte [esp + eax + 0xb0], bl
add eax, 1
cmp eax, ecx
jne 0x411070
mov dword [esp + 0x58], edi
jmp 0x411038
mov esi, dword [esp]
mov edi, dword [esp + 4]
movss xmm7, dword [esp + 0x5c]
mov eax, esi
add eax, 0xffffffff
mov edx, edi
adc edx, 0xffffffff
mov ecx, eax
and eax, 0xffffffc0
mov ebx, edx
shrd ecx, ebx, 6
sub esi, eax
mov eax, dword [esp + 0x10]
sbb edi, edx
add ecx, 1
add eax, ecx
mov dword [esp + 0xa8], eax
mov eax, esi
movss xmm0, dword [esp + 0xa8]
xor eax, 0x40
or eax, edi
unpcklps xmm0, xmm7
je 0x411240
mov edx, esi
cmp esi, 0xf
jbe 0x411250
mov ebx, dword [esp + 0x58]
mov edi, dword [esp + 0x14]
lea ecx, [ebx + 1]
mov eax, edi
sub eax, ecx
cmp eax, 0xe
jbe 0x41127e
mov eax, ebx
or eax, edi
test al, 0xf
jne 0x41127e
mov ecx, esi
mov eax, edi
and ecx, 0xfffffff0
lea esi, [ecx + edi]
lea esi, [esi]
nop
movups xmm7, xmmword [ebx]
add eax, 0x10
add ebx, 0x10
movups xmmword [eax - 0x10], xmm7
cmp esi, eax
jne 0x411120
cmp edx, ecx
je 0x411240
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x14]
movzx eax, byte [edi + ecx]
mov byte [esi + ecx], al
lea eax, [ecx + 1]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 1]
mov byte [esi + ecx + 1], al
lea eax, [ecx + 2]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 2]
mov byte [esi + ecx + 2], al
lea eax, [ecx + 3]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 3]
mov byte [esi + ecx + 3], al
lea eax, [ecx + 4]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 4]
mov byte [esi + ecx + 4], al
lea eax, [ecx + 5]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 5]
mov byte [esi + ecx + 5], al
lea eax, [ecx + 6]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 6]
mov byte [esi + ecx + 6], al
lea eax, [ecx + 7]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 7]
mov byte [esi + ecx + 7], al
lea eax, [ecx + 8]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 8]
mov byte [esi + ecx + 8], al
lea eax, [ecx + 9]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 9]
mov byte [esi + ecx + 9], al
lea eax, [ecx + 0xa]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 0xa]
mov byte [esi + ecx + 0xa], al
lea eax, [ecx + 0xb]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 0xb]
mov byte [esi + ecx + 0xb], al
lea eax, [ecx + 0xc]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 0xc]
mov byte [esi + ecx + 0xc], al
lea eax, [ecx + 0xd]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 0xd]
mov byte [esi + ecx + 0xd], al
lea eax, [ecx + 0xe]
cmp eax, edx
jae 0x411240
movzx eax, byte [edi + ecx + 0xe]
mov byte [esi + ecx + 0xe], al
mov eax, dword [esp + 0xc]
movlps qword [eax + 0x30], xmm0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x58]
lea esi, [esi]
movzx ecx, byte [esi + eax]
mov byte [ebx + eax], cl
add eax, 1
cmp eax, edx
jb 0x411260
mov eax, dword [esp + 0xc]
movlps qword [eax + 0x30], xmm0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x68]
mov ebx, edi
mov esi, dword [esp + 0x58]
jmp 0x411260