Function at 0x4120d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov eax, dword [0x4642c0]
mov edi, 0x7bf22382
mov ebp, 0xae499c54
mov esi, dword [esp + 0x70]
xor eax, esp
mov dword [esp + 0x58], eax
mov dword [esp + 4], ecx
mov eax, dword [0x4661d0]
lea ecx, [eax - 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
setne al
cmp dword [0x4661cc], 0xa
setge cl
mov edx, ecx
or cl, al
xor dl, al
xor cl, 1
mov eax, 0xddd1875
or cl, dl
mov ecx, 0x844dafb6
cmove ecx, eax
mov dword [esp + 0x30], ecx
mov ecx, 0x206a951d
cmove ecx, eax
mov eax, 0x44e27f83
mov dword [esp + 0x20], ecx
mov ecx, 0xc2e0655e
cmove ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, 0xd2514862
cmove ecx, eax
mov eax, 0x24cc548f
mov dword [esp + 0x1c], ecx
mov ecx, 0xf465c17
cmove ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, 0xdcf331d7
cmove ecx, eax
mov eax, 0x7d1532a4
mov dword [esp + 0x24], ecx
mov ecx, 0x3c43583f
cmove edi, eax
cmove ecx, eax
mov eax, 0x3c7e197e
mov dword [esp + 0x14], ecx
mov ecx, 0x86f111c4
cmove ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, 0xb7b5687b
cmove ecx, eax
mov eax, 0xbdb26faf
mov dword [esp + 0x28], ecx
cmovne ebp, eax
mov ecx, 0x41a9cb1b
mov eax, 0x9e7a4c65
cmove ecx, eax
mov dword [esp + 0xc], ecx
mov ecx, 0xea18fa7e
cmove ecx, eax
mov dword [esp + 8], ecx
mov ecx, 0xfd919a66
jmp 0x4121e0
mov ecx, 0xccb12ceb
nop dword [eax + eax]
mov edx, ecx
cmp ecx, 0xfd919a65
jle 0x412240
cmp edx, 0x3e874e2f
jle 0x4122a0
cmp edx, 0x61cbfc83
jg 0x412347
cmp edx, 0x44e27f82
jle 0x412451
cmp edx, 0x44e27f83
je 0x4125a8
mov ecx, dword [esp + 0x28]
cmp edx, 0x49b9d009
je 0x4121e0
mov ecx, edx
cmp edx, 0x55e5ca5d
jne 0x4121e0
mov ecx, dword [esp + 0x1c]
jmp 0x4121e0
cmp edx, 0xccb12cea
jg 0x4122f0
cmp edx, 0xa60f9d57
jle 0x412388
cmp edx, 0xbdb26fae
jg 0x412422
cmp edx, 0xae499c53
jg 0x41256d
cmp edx, 0xa60f9d58
je 0x4125b2
mov ecx, edx
cmp edx, 0xa7c66c01
jne 0x4121e0
mov ecx, dword [esp + 0x20]
jmp 0x4121e0
cmp edx, 0x206a951c
jle 0x4123c3
cmp edx, 0x2b73bd03
jle 0x412475
mov ecx, ebp
cmp edx, 0x2b73bd04
je 0x4121e0
cmp edx, 0x3c43583f
je 0x4125cd
mov ecx, edx
cmp edx, 0x3c7e197e
jne 0x4121e0
mov ecx, 0xb7b5687b
jmp 0x4121e0
cmp edx, 0xe34d97bb
jle 0x4123f2
cmp edx, 0xef1620df
jle 0x41249d
mov ecx, edi
cmp edx, 0xef1620e0
je 0x4121e0
cmp edx, 0xf4b20668
je 0x4125d7
mov ecx, edx
cmp edx, 0xf63bfa07
jne 0x4121e0
cmp dword [esp + 0x38], 0
mov ecx, 0xef1620e0
mov edx, 0x8f1d5bd9
cmove ecx, edx
jmp 0x4121e0
cmp edx, 0x78e6b5fd
jle 0x4124c9
cmp edx, 0x78e6b5fe
je 0x4121d3
cmp edx, 0x7bf22382
je 0x4125ee
mov ecx, edx
cmp edx, 0x7d1532a4
jne 0x4121e0
mov ecx, 0x7bf22382
mov ebx, str.ios_base::badbit_set
jmp 0x4121e0
cmp edx, 0x9df576be
jg 0x4124f2
cmp edx, 0x86f111c4
je 0x4125fc
mov ecx, dword [esp + 0x24]
cmp edx, 0x8f1d5bd9
je 0x4121e0
mov ecx, edx
cmp edx, 0x844dafb6
jne 0x4121e0
jmp 0x4126bf
cmp edx, 0xddd1874
jg 0x412516
cmp edx, 0xfd919a66
je 0x412606
mov ecx, edx
cmp edx, 0x3dccd74
jne 0x4121e0
mov ecx, dword [esp + 8]
jmp 0x4121e0
cmp edx, 0xd2514861
jg 0x41253a
cmp edx, 0xccb12ceb
je 0x41261e
mov ecx, edx
cmp edx, 0xcfe2e476
jne 0x4121e0
mov ecx, 0xc7f5974a
jmp 0x4121e0
cmp edx, 0xc7f59749
jg 0x41258d
cmp edx, 0xc2e0655e
jne 0x41266a
cmp byte [esp + 3], 0
mov ecx, 0x66220e29
mov edx, 0xc802ac66
cmovne ecx, edx
jmp 0x4121e0
cmp edx, 0x3e874e30
je 0x4121d3
mov ecx, edx
cmp edx, 0x41a9cb1b
jne 0x4121e0
mov ecx, 0xa60f9d58
jmp 0x4121e0
mov ecx, dword [esp + 0x30]
cmp edx, 0x206a951d
je 0x4121e0
mov ecx, edx
cmp edx, 0x24cc548f
jne 0x4121e0
mov ecx, 0xdcf331d7
jmp 0x4121e0
cmp edx, 0xe34d97bc
je 0x412628
mov ecx, edx
cmp edx, 0xea18fa7e
jne 0x4121e0
movzx ecx, byte [esp + 0x74]
mov byte [esp + 1], cl
mov ecx, dword [esp + 0xc]
jmp 0x4121e0
cmp edx, 0x61cbfc84
je 0x41264c
mov ecx, edx
cmp edx, 0x66220e29
jne 0x4121e0
mov ecx, 0x78e6b5fe
mov ebx, str.ios_base::eofbit_set
jmp 0x4121e0
cmp edx, 0x9df576bf
je 0x412656
mov ecx, edx
cmp edx, 0x9e7a4c65
jne 0x4121e0
mov ecx, 0xea18fa7e
jmp 0x4121e0
cmp edx, 0xddd1875
je 0x412660
mov ecx, edx
cmp edx, 0xf465c17
jne 0x4121e0
mov ecx, 0x55e5ca5d
jmp 0x4121e0
mov ecx, dword [esp + 0x2c]
cmp edx, 0xd2514862
je 0x4121e0
mov ecx, edx
cmp edx, 0xdcf331d7
jne 0x4121e0
mov ecx, eax
xor ecx, 0xfffffffd
test ecx, eax
mov ecx, dword [esp + 0x18]
setne byte [esp + 3]
jmp 0x4121e0
cmp edx, 0xb7b5687b
jne 0x41267a
mov ecx, eax
xor ecx, 0xfffffffb
and ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
jmp 0x4121e0
cmp edx, 0xc802ac66
jne 0x41268a
mov ecx, 0x3e874e30
mov ebx, str.ios_base::failbit_set
jmp 0x4121e0
mov ecx, 0xd2514862
jmp 0x4121e0
movzx ecx, byte [esp + 1]
mov edx, ecx
xor dl, 0xfe
test dl, cl
mov ecx, 0xf4b20668
setne byte [esp + 2]
jmp 0x4121e0
mov ecx, 0xcfe2e476
jmp 0x4121e0
cmp byte [esp + 2], 0
mov ecx, 0x49b9d009
mov edx, 0x2b73bd04
cmovne ecx, edx
jmp 0x4121e0
mov ecx, dword [esp + 0x14]
mov ebx, str.ios_base::badbit_set
jmp 0x4121e0
mov ecx, 0xf63bfa07
jmp 0x4121e0
mov ecx, dword [esp + 4]
and esi, 0x17
mov dword [ecx + 0xc], esi
mov dword [esp + 0x34], esi
mov ecx, 0xe34d97bc
jmp 0x4121e0
mov ecx, 0xc7f5974a
jmp 0x4121e0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov edx, 0x61cbfc84
mov eax, dword [eax + 0x10]
xor eax, ecx
andn eax, eax, ecx
mov ecx, 0x3dccd74
cmove ecx, edx
jmp 0x4121e0
mov ecx, 0xa7c66c01
jmp 0x4121e0
mov ecx, 0x654f3e5e
jmp 0x4121e0
mov ecx, 0x206a951d
jmp 0x4121e0
mov ecx, edx
cmp edx, 0xbdb26faf
jne 0x4121e0
jmp 0x4126d4
mov ecx, edx
cmp edx, 0xae499c54
jne 0x4121e0
jmp 0x4126d4
mov ecx, edx
cmp edx, 0xc7f5974a
jne 0x4121e0
lea edi, [esp + 0x3c]
push 1
push edi
call fcn.004126e0
add esp, 8
lea esi, [esp + 0x44]
mov ecx, esi
push edi
push ebx
call fcn.00412930
push 0x462d58
push esi
call fcn.0043c374
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.00438f60
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret 8
push 0
push 0
call fcn.0043c374
int3