Function at 0x412870
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x34
mov edx, dword [0x4ad2c0]
mov eax, dword [esp + 0x48]
xor edx, esp
and eax, 0x17
mov dword [esp + 0x30], edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
mov dword [ecx + 0xc], eax
mov dword [esp + 8], eax
mov eax, 0x151f6ac1
jmp 0x4128b0
test ebx, edx
cmovne eax, edi
cmp ecx, 0xa
cmovge eax, edi
nop dword [eax + eax]
cmp eax, 0x14d94249
jg 0x412900
cmp eax, 0xb83f962e
jg 0x412950
cmp eax, 0xa2f0da14
jle 0x412a06
cmp eax, 0xa8833885
jg 0x412b07
cmp eax, 0xa2f0da15
je 0x412c02
cmp eax, 0xa61ff5fb
jne 0x4128b0
mov eax, esi
not eax
or eax, 0xfffffffd
cmp eax, 0xffffffff
mov eax, 0x1c603f6b
setne byte [esp + 3]
jmp 0x4128b0
cmp eax, 0x486cfaf8
jg 0x4129a0
cmp eax, 0x1f02bee2
jg 0x4129d6
cmp eax, 0x1c603f6a
jg 0x412b27
cmp eax, 0x14d9424a
je 0x412c48
cmp eax, 0x151f6ac1
jne 0x4128b0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0xc], eax
mov eax, 0xfab1bbd7
jmp 0x4128b0
cmp eax, 0xcdac4021
jle 0x412a6f
cmp eax, 0x38a363b
jg 0x412b47
cmp eax, 0xcdac4022
je 0x412c62
cmp eax, 0xfab1bbd7
jne 0x4128b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
xor eax, ecx
andn esi, eax, ecx
mov eax, 0x38a363c
je 0x4128b0
mov eax, 0xa8833886
jmp 0x4128b0
cmp eax, 0x6afce0ab
jg 0x412a9e
cmp eax, 0x5ff8ff20
jle 0x412ba5
cmp eax, 0x5ff8ff21
je 0x412c6c
cmp eax, 0x68485364
jne 0x4128b0
mov eax, 0x889c10b8
jmp 0x4128b0
cmp eax, 0x2a286847
jle 0x412bba
cmp eax, 0x2a286848
je 0x412c85
cmp eax, 0x3527707b
jne 0x4128b0
mov eax, 0x2a286848
mov ebp, str.ios_base::failbit_set
jmp 0x4128b0
cmp eax, 0x889c10b8
je 0x412c8f
cmp eax, 0x8f12135c
je 0x412ccc
cmp eax, 0x8f59b5c4
jne 0x4128b0
mov eax, dword [0x4af1d8]
mov ecx, 0xa8bdb289
mov edi, 0x7e280f67
lea edx, [eax - 1]
imul edx, eax
mov eax, 0x7e280f67
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
je 0x412a53
mov edi, 0xa8bdb289
cmp dword [0x4af1d4], 0xa
setl dh
cmovl ecx, edi
xor dh, dl
jne 0x4128b0
mov eax, ecx
jmp 0x4128b0
cmp eax, 0xb83f962f
je 0x412cec
cmp eax, 0xbeeea03c
je 0x412d07
cmp eax, 0xcd6e0d49
jne 0x4128b0
mov dword [esp + 0x10], esi
mov eax, 0x8f12135c
jmp 0x4128b0
cmp eax, 0x6afce0ac
je 0x412d16
cmp eax, 0x72d1db62
je 0x412d20
cmp eax, 0x7e280f67
jne 0x4128b0
mov eax, dword [0x4af1d8]
mov ecx, 0xa8bdb289
mov edi, 0x1d57decf
lea edx, [eax + 1]
imul edx, eax
mov eax, 0x1d57decf
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
je 0x412aeb
mov edi, 0xa8bdb289
cmp dword [0x4af1d4], 0xa
setl dh
cmovl ecx, edi
xor dh, dl
jne 0x4128b0
mov eax, ecx
jmp 0x4128b0
cmp eax, 0xa8833886
je 0x412d2f
cmp eax, 0xa8bdb289
jne 0x4128b0
mov eax, 0x7e280f67
jmp 0x4128b0
cmp eax, 0x1c603f6b
je 0x412d42
cmp eax, 0x1d57decf
jne 0x4128b0
mov eax, 0x5ff8ff21
jmp 0x4128b0
cmp eax, 0x38a363c
je 0x412d5c
cmp eax, 0x1452e4b6
jne 0x4128b0
mov eax, dword [0x4af1d8]
mov ecx, 0xcdac4022
mov edi, 0x486cfaf9
lea edx, [eax + 1]
imul edx, eax
mov eax, 0x486cfaf9
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete dl
je 0x412b89
mov edi, 0xcdac4022
cmp dword [0x4af1d4], 0xa
setl dh
cmovl ecx, edi
xor dl, dh
jne 0x4128b0
mov eax, ecx
jmp 0x4128b0
cmp eax, 0x5abdcff4
jne 0x412d66
mov eax, 0x5ff8ff21
jmp 0x4128b0
cmp eax, 0x2490ec32
jne 0x412d7a
mov eax, dword [0x4af1d8]
mov ecx, dword [0x4af1d4]
mov edi, 0x1452e4b6
lea edx, [eax + 1]
imul edx, eax
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
sete al
cmp ecx, 0xa
setl ah
xor ah, al
mov eax, 0x1452e4b6
jne 0x4128a0
mov edi, 0xcdac4022
jmp 0x4128a0
mov eax, dword [0x4af1d8]
mov ecx, dword [0x4af1d4]
mov ebx, 0x889c10b8
lea edx, [eax - 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete al
cmp ecx, 0xa
setl ah
xor ah, al
mov eax, 0x889c10b8
jne 0x412c37
mov ebx, 0x68485364
cmp edx, 0xffffffff
cmovne eax, ebx
cmp ecx, 0xa
cmovge eax, ebx
jmp 0x4128b0
cmp byte [esp + 2], 0
mov eax, 0x5f78ab16
jne 0x4128b0
mov eax, 0xcd6e0d49
jmp 0x4128b0
mov eax, 0x1452e4b6
jmp 0x4128b0
push 1
lea eax, [esp + 0x18]
push eax
call fcn.00412dc0
add esp, 8
mov eax, 0x1f02bee3
jmp 0x4128b0
mov eax, 0xa2f0da15
jmp 0x4128b0
mov eax, dword [0x4af1d8]
mov ecx, dword [0x4af1d4]
mov edi, 0x5abdcff4
lea edx, [eax + 1]
imul edx, eax
mov ebx, edx
xor ebx, 0xfffffffe
test ebx, edx
sete al
cmp ecx, 0xa
setl ah
xor ah, al
mov eax, 0x5abdcff4
jne 0x4128a0
mov edi, 0x68485364
jmp 0x4128a0
mov ecx, dword [esp + 0x10]
mov eax, 0xa61ff5fb
mov edx, ecx
xor edx, 0xfffffffb
test edx, ecx
je 0x4128b0
mov eax, 0x72d1db62
jmp 0x4128b0
movzx eax, byte [esp + 1]
mov ecx, eax
xor cl, 0xfe
test cl, al
mov eax, 0x14d9424a
setne byte [esp + 2]
jmp 0x4128b0
mov eax, 0x6afce0ac
mov ebp, str.ios_base::eofbit_set
jmp 0x4128b0
mov eax, 0xa2f0da15
jmp 0x4128b0
mov eax, 0x8f59b5c4
mov ebp, str.ios_base::badbit_set
jmp 0x4128b0
movzx eax, byte [esp + 0x4c]
mov byte [esp + 1], al
mov eax, 0xb83f962f
jmp 0x4128b0
cmp byte [esp + 3], 0
mov eax, 0x3527707b
jne 0x4128b0
mov eax, 0xbeeea03c
jmp 0x4128b0
mov eax, 0x2490ec32
jmp 0x4128b0
cmp eax, 0x486cfaf9
je 0x412da1
cmp eax, 0x5f78ab16
jne 0x4128b0
jmp 0x412db6
cmp eax, 0x1f02bee3
jne 0x4128b0
lea esi, [esp + 0x1c]
lea eax, [esp + 0x14]
mov ecx, esi
push eax
push ebp
call fcn.004130b0
push 0x4ab158
push esi
call fcn.0043b2d4
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00437ee0
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret 8
push 0
push 0
call fcn.0043b2d4
int3