Function at 0x4123d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x4ea2c0]
and ecx, 0x17
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, 0xb2e24d91
mov dword [ebp - 0x2c], ecx
jmp 0x412440
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
mov esi, 0xb6343baa
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x715b867c
cmovne edx, esi
cmp eax, 0xffffffff
mov eax, edx
cmove eax, esi
cmp ecx, 0xa
cmovge eax, edx
nop word cs:[eax + eax]
cmp eax, 0xe013f2c9
jg 0x412490
cmp eax, 0xb6343ba9
jle 0x4124f0
cmp eax, 0xc95d4427
jg 0x41258d
cmp eax, 0xc5d37147
jg 0x41269c
cmp eax, 0xb6343baa
je 0x41282e
cmp eax, 0xb6d909b1
je 0x412874
cmp eax, 0xbcea6649
jne 0x412440
mov eax, 0xe013f2ca
jmp 0x412440
cmp eax, 0x2616bd88
jg 0x412540
cmp eax, 0x3bdc3d2
jle 0x4125c6
cmp eax, 0xd5a54ab
jle 0x4126bc
cmp eax, 0xd5a54ac
je 0x41288a
cmp eax, 0x1a862651
je 0x4128a3
cmp eax, 0x1fb49cee
jne 0x412440
mov eax, dword [ebp - 0x14]
mov dword [eax], str.ios_base::eofbit_set
mov eax, 0x84f174ad
jmp 0x412440
cmp eax, 0xa208c63b
jle 0x41260b
cmp eax, 0xa7ca62ec
jg 0x412706
cmp eax, 0xa208c63c
je 0x4128ef
cmp eax, 0xa2a1e7ce
je 0x4123f6
cmp eax, 0xa4c07b46
jne 0x412440
mov eax, 0x4a1806d4
jmp 0x412440
cmp eax, 0x4a1806d3
jle 0x41265d
cmp eax, 0x6232776a
jle 0x41274e
cmp eax, 0x6232776b
je 0x4128f9
cmp eax, 0x715b867c
je 0x412903
cmp eax, 0x7d763afc
jne 0x412440
cmp byte [ebp - 0x17], 0
mov eax, 0xd9d45b52
mov ecx, 0xd5a54ac
cmovne eax, ecx
jmp 0x412440
cmp eax, 0xd28b89e5
jle 0x412783
cmp eax, 0xd28b89e6
je 0x41290d
cmp eax, 0xd3ced3db
je 0x41292c
cmp eax, 0xd9d45b52
jne 0x412440
mov dword [ebp - 0x3c], edi
mov eax, 0x2e2cae0d
jmp 0x412440
cmp eax, 0xe6df8c15
jle 0x4127bf
cmp eax, 0xe6df8c16
je 0x412960
cmp eax, 0x320fb42
je 0x41297f
cmp eax, 0x3ae18d6
jne 0x412440
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
mov esi, 0xa7ca62ed
lea eax, [edx - 1]
jmp 0x412a51
cmp eax, 0x86d54b5c
jle 0x4127df
cmp eax, 0x86d54b5d
je 0x412989
cmp eax, 0x87cd829f
je 0x4129a1
cmp eax, 0x97911686
jne 0x412440
mov eax, dword [0x4ec1f0]
mov esi, 0xd1b927e8
mov ebx, 0xe0db702d
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xe0db702d
jmp 0x412a20
cmp eax, 0x2e2cae0c
jle 0x41280e
cmp eax, 0x2e2cae0d
je 0x4129ab
cmp eax, 0x30b1162f
je 0x4129c8
cmp eax, 0x334a3357
jne 0x412440
mov eax, dword [ebp - 0x14]
mov dword [eax], str.ios_base::badbit_set
mov eax, 0xc95d4428
jmp 0x412440
cmp eax, 0xc5d37148
je 0x4129db
cmp eax, 0xc8e1e0c1
jne 0x412bc3
mov eax, 0xa7ca62ed
jmp 0x412440
cmp eax, 0x3bdc3d3
je 0x4129fe
cmp eax, 0x82575da
jne 0x412bd0
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
mov esi, 0xd28b89e6
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xa208c63c
jmp 0x412425
cmp eax, 0xa7ca62ed
je 0x412a3d
cmp eax, 0xb2e24d91
jne 0x412bdd
push eax
mov eax, esp
mov dword [ebp - 0x14], eax
sub esp, 0x14
mov eax, esp
mov dword [ebp - 0x1c], eax
sub esp, 8
mov eax, esp
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 0xc], ecx
mov dword [ebp - 0x34], ecx
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x38], eax
mov eax, 0xe6df8c16
jmp 0x412440
cmp eax, 0x4a1806d4
je 0x412a71
cmp eax, 0x4b268fce
jne 0x412bea
mov eax, dword [0x4ec1f0]
mov ebx, 0xa4c07b46
mov esi, 0x87cd829f
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0x87cd829f
jmp 0x41284f
cmp eax, 0xc95d4428
je 0x412a7b
cmp eax, 0xd1b927e8
jne 0x412440
mov eax, dword [0x4ec1f0]
mov ebx, 0xc83a837d
mov esi, 0xe0db702d
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xe0db702d
jmp 0x412857
cmp eax, 0xe013f2ca
je 0x412ab8
cmp eax, 0xe0db702d
jne 0x412440
mov eax, 0xd1b927e8
jmp 0x412440
cmp eax, 0x84f174ad
je 0x412b62
cmp eax, 0x8589b042
jne 0x412440
movzx eax, byte [ebp - 0x15]
mov ecx, eax
xor cl, 0xfe
test cl, al
mov eax, 0x82575da
setne byte [ebp - 0x16]
jmp 0x412440
cmp eax, 0x2616bd89
je 0x412b6c
cmp eax, 0x2d3c418f
jne 0x412440
mov eax, 0x97911686
jmp 0x412440
movzx eax, byte [ebp + 0xc]
mov ebx, 0x2616bd89
mov esi, 0x715b867c
mov byte [ebp - 0x15], al
mov eax, dword [0x4ec1f0]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0x715b867c
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, ebx
cmp dword [0x4ec1ec], 0xa
setl dl
cmovge eax, esi
xor dl, cl
cmovne eax, ebx
jmp 0x412440
cmp byte [ebp - 0x16], 0
mov eax, 0x86d54b5d
mov ecx, 0x4bca102c
cmovne eax, ecx
jmp 0x412440
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
mov esi, 0xc95d4428
lea eax, [edx + 1]
jmp 0x412a98
mov eax, dword [ebp - 0x14]
mov esi, 0x30b1162f
mov dword [eax], str.ios_base::failbit_set
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
lea eax, [edx + 1]
imul eax, edx
mov edx, eax
xor edx, 0xfffffffe
test edx, eax
sete bl
cmp ecx, 0xa
setl bh
xor bh, bl
mov ebx, 0x320fb42
cmovne esi, ebx
test edx, eax
mov eax, esi
cmove eax, ebx
cmp ecx, 0xa
cmovge eax, esi
jmp 0x412440
mov eax, 0xd28b89e6
jmp 0x412440
mov eax, 0x3ae18d6
jmp 0x412440
mov eax, 0xb6343baa
jmp 0x412440
mov eax, dword [0x4ec1f0]
mov esi, 0xb6d909b1
mov ebx, 0xa208c63c
lea ecx, [eax - 1]
imul ecx, eax
mov eax, 0xa208c63c
jmp 0x412a18
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
mov esi, 0x4b268fce
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x87cd829f
jmp 0x412425
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, 0x2d3c418f
xor eax, ecx
andn edi, eax, ecx
mov eax, 0xa2a1e7ce
cmove eax, edx
jmp 0x412440
mov eax, 0xd3ced3db
jmp 0x412440
mov eax, dword [ebp - 0x14]
mov eax, edi
xor eax, 0xfffffffb
test eax, edi
mov eax, 0x7d763afc
setne byte [ebp - 0x17]
jmp 0x412440
mov eax, 0x4b268fce
jmp 0x412440
mov eax, dword [ebp - 0x3c]
mov ecx, 0x1fb49cee
not eax
or eax, 0xfffffffd
cmp eax, 0xffffffff
mov eax, 0x3bdc3d3
cmove eax, ecx
jmp 0x412440
mov eax, dword [ebp - 0x14]
mov dword [eax], str.ios_base::failbit_set
mov eax, 0x1a862651
jmp 0x412440
mov eax, dword [0x4ec1f0]
mov esi, 0xa030398
mov ebx, 0xb5dfa61d
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
mov eax, 0xb5dfa61d
jmp 0x412a20
mov eax, dword [0x4ec1f0]
mov esi, 0x1a862651
mov ebx, 0x30b1162f
lea ecx, [eax + 1]
imul ecx, eax
mov eax, 0x30b1162f
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
cmove eax, esi
cmp dword [0x4ec1ec], 0xa
setl dl
cmovge eax, ebx
xor dl, cl
cmovne eax, esi
jmp 0x412440
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
mov esi, 0xbcea6649
lea eax, [edx + 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0xc8e1e0c1
jmp 0x412425
mov eax, 0xe013f2ca
jmp 0x412440
mov eax, dword [ebp - 0x14]
mov esi, 0x6232776b
mov dword [eax], str.ios_base::badbit_set
mov edx, dword [0x4ec1f0]
mov ecx, dword [0x4ec1ec]
lea eax, [edx - 1]
imul eax, edx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xa
setl dh
xor dh, dl
mov edx, 0x334a3357
jmp 0x412425
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x20]
mov eax, dword [0x4ec1e8]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
setne al
cmp dword [0x4ec1e4], 0xa
setge cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
mov eax, 0x3bdb5bb8
or cl, dl
mov ecx, 0xe7df2c86
mov edx, 0xeb620d17
cmovne eax, ecx
mov ecx, 0x3bdb5bb8
cmovne ecx, edx
mov edx, 0x4a141009
nop word [eax + eax]
cmp edx, 0x2b81f28f
jle 0x412b40
cmp edx, 0x2b81f290
je 0x412b76
cmp edx, 0x3bdb5bb8
je 0x412b54
cmp edx, 0x4a141009
jne 0x412b10
mov edx, ecx
jmp 0x412b10
cmp edx, 0xe7df2c86
je 0x412b5b
cmp edx, 0xeb620d17
jne 0x412b10
mov edx, eax
jmp 0x412b10
mov edx, 0xeb620d17
jmp 0x412b10
mov edx, 0x2b81f290
jmp 0x412b10
mov eax, 0x4a1806d4
jmp 0x412440
mov eax, 0x8589b042
jmp 0x412440
call fcn.00413430
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x24], esi
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
mov ecx, 0x5908a3fa
nop
cmp ecx, 0x8d4a6a7f
je 0x412bb6
cmp ecx, 0x5908a3fa
jne 0x412b90
mov ecx, dword [ebp - 0x28]
mov dword [ecx], 1
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 4], eax
mov ecx, 0x8d4a6a7f
jmp 0x412b90
mov eax, dword [ebp - 0x24]
mov eax, 0xc5d37148
jmp 0x412440
cmp eax, 0xc83a837d
jne 0x412440
jmp 0x412bfe
cmp eax, 0xa030398
jne 0x412440
jmp 0x412c12
cmp eax, 0xb5dfa61d
jne 0x412440
jmp 0x412c12
cmp eax, 0x4bca102c
jne 0x412440
push 0
push 0
call fcn.0043c6e4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004392e0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [eax]
call fcn.00412c30
push 0x4e8598
push dword [ebp - 0x1c]
call fcn.0043c6e4
int3