Function at 0x402170
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x43c004]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x118], edx
push ebx
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x120], 0x3c62ba
mov eax, dword [ebp - 0x120]
push esi
mov esi, 3
cdq
idiv esi
mov eax, dword [ebp - 0x120]
lea ebx, [esi - 1]
mov dword [ebp - 0x124], ecx
push edi
lea edi, [esi + 2]
test edx, edx
je 0x402218
lea eax, [ebp + eax - 0x11a]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x4021e5
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x40234a
nop dword [eax + eax]
mov eax, dword [ebp - 0x120]
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x402211
dec eax
or eax, 0xfffffffc
add eax, 1
je 0x4021f0
jmp 0x40234a
and eax, 0x80000001
jns 0x402226
dec eax
or eax, 0xfffffffe
add eax, 1
je 0x40226f
mov eax, ebx
lea ecx, [ebp - 0x11c]
sub eax, ecx
add eax, dword [ebp - 0x120]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
jne 0x40234a
nop
mov eax, dword [ebp - 0x120]
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
je 0x402250
jmp 0x40234a
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x402283
dec eax
or eax, 0xfffffffc
add eax, 1
mov eax, dword [ebp - 0x120]
je 0x4022ec
add eax, 2
lea ecx, [ebp - 0x119]
imul eax, ecx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000001
jns 0x4022b1
dec eax
or eax, 0xfffffffe
add eax, 1
jne 0x40234a
mov eax, dword [ebp - 0x120]
cdq
idiv edi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x4022cd
dec eax
jmp 0x4022ce
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000001
jns 0x4022e8
dec eax
or eax, 0xfffffffe
add eax, 1
je 0x4022b7
jmp 0x40234a
cdq
idiv edi
test edx, edx
je 0x40234a
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x105]
add eax, 0xb
cdq
idiv ecx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
jne 0x40234a
nop dword [eax + eax]
mov eax, dword [ebp - 0x120]
cdq
idiv edi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x402336
inc eax
jmp 0x402337
dec eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
je 0x402320
test byte [ebp - 0x118], 0xf
je 0x402366
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004279e2
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x120], 0x3c62ba
mov eax, dword [ebp - 0x120]
cdq
idiv esi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x4023d8
lea eax, [ebp + eax - 0x116]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x4023a4
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x40250a
nop word [eax + eax]
mov eax, dword [ebp - 0x120]
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x4023d1
dec eax
or eax, 0xfffffffc
add eax, 1
je 0x4023b0
jmp 0x40250a
and eax, 0x80000001
jns 0x4023e6
dec eax
or eax, 0xfffffffe
add eax, 1
je 0x40242f
mov eax, ebx
lea ecx, [ebp - 0x118]
sub eax, ecx
add eax, dword [ebp - 0x120]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
jne 0x40250a
nop
mov eax, dword [ebp - 0x120]
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
je 0x402410
jmp 0x40250a
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x402443
dec eax
or eax, 0xfffffffc
add eax, 1
mov eax, dword [ebp - 0x120]
je 0x4024ac
add eax, 2
lea ecx, [ebp - 0x115]
imul eax, ecx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000001
jns 0x402471
dec eax
or eax, 0xfffffffe
add eax, 1
jne 0x40250a
mov eax, dword [ebp - 0x120]
cdq
idiv edi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x40248d
dec eax
jmp 0x40248e
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000001
jns 0x4024a8
dec eax
or eax, 0xfffffffe
add eax, 1
je 0x402477
jmp 0x40250a
cdq
idiv edi
test edx, edx
je 0x40250a
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x101]
add eax, 0xb
cdq
idiv ecx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
jne 0x40250a
nop dword [eax + eax]
mov eax, dword [ebp - 0x120]
cdq
idiv edi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x4024f6
inc eax
jmp 0x4024f7
dec eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
je 0x4024e0
mov esi, dword [0x43f030]
lea eax, [ebp - 0x114]
mov edi, dword [ebp - 0x118]
push 0xf0
push 0
mov dword [ebp - 0x120], 0x3c62ba
push eax
mov dword [ebp - 0x120], 0x3c62ba
call fcn.00428c80
lea eax, [ebp - 0x114]
xorps xmm0, xmm0
push eax
lea edx, [esi + 0x10]
movups xmmword [ebp - 0x14], xmm0
call fcn.00401010
movups xmm0, xmmword [esi]
add esp, 0x10
movups xmmword [ebp - 0x24], xmm0
test edi, edi
jle 0x402602
mov ebx, dword [ebp - 0x124]
lea eax, [edi - 1]
shr eax, 4
inc eax
mov dword [ebp - 0x120], eax
nop dword [eax + eax]
xor ecx, ecx
mov al, byte [ebx + ecx]
xor al, byte [ebp + ecx - 0x24]
mov byte [ebp + ecx - 0x14], al
inc ecx
cmp ecx, 0x10
jl 0x402582
xor edi, edi
lea esi, [ebp - 0x114]
nop dword [eax + eax]
test edi, edi
je 0x4025be
lea edx, [ebp - 0x14]
call fcn.00401100
lea edx, [ebp - 0x14]
call fcn.00401160
cmp edi, 0xe
jae 0x4025be
call fcn.00401310
xor eax, eax
mov ecx, dword [esi]
add esi, 4
xor dword [ebp + eax*4 - 0x14], ecx
inc eax
cmp eax, 4
jl 0x4025c0
inc edi
cmp edi, 0xe
jle 0x4025a0
xor ecx, ecx
nop word [eax + eax]
mov al, byte [ebp + ecx - 0x14]
mov byte [ebp + ecx - 0x24], al
mov byte [ebx + ecx], al
inc ecx
cmp ecx, 0x10
jl 0x4025e0
add ebx, 0x10
sub dword [ebp - 0x120], 1
jne 0x402580
mov ebx, 2
mov dword [ebp - 0x11c], 0
mov esi, 3
mov dword [ebp - 0x120], 0x3c62ba
mov eax, dword [ebp - 0x120]
cdq
idiv esi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x402688
add eax, 2
add eax, dword [ebp - 0x124]
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x402651
dec eax
or eax, 0xfffffffc
add eax, 1
jne 0x4027ca
nop word [eax + eax]
mov eax, dword [ebp - 0x120]
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x402681
dec eax
or eax, 0xfffffffc
add eax, 1
je 0x402660
jmp 0x4027ca
and eax, 0x80000001
jns 0x402696
dec eax
or eax, 0xfffffffe
add eax, 1
je 0x4026df
sub ebx, dword [ebp - 0x124]
add ebx, dword [ebp - 0x120]
mov dword [ebp - 0x120], ebx
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
jne 0x4027ca
nop dword [eax + eax]
mov eax, dword [ebp - 0x120]
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
je 0x4026c0
jmp 0x4027ca
mov eax, dword [ebp - 0x120]
and eax, 0x80000003
jns 0x4026f3
dec eax
or eax, 0xfffffffc
add eax, 1
je 0x402765
mov ecx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x124]
add ecx, 2
add eax, 3
imul ecx, eax
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp - 0x120]
and eax, 0x80000001
jns 0x402724
dec eax
or eax, 0xfffffffe
add eax, 1
jne 0x4027ca
mov edi, 5
nop
mov eax, dword [ebp - 0x120]
cdq
idiv edi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x402746
dec eax
jmp 0x402747
inc eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
and eax, 0x80000001
jns 0x402761
dec eax
or eax, 0xfffffffe
add eax, 1
je 0x402730
jmp 0x4027ca
mov eax, dword [ebp - 0x120]
mov edi, 5
cdq
idiv edi
test edx, edx
je 0x4027ca
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x124]
add eax, 0xb
cdq
add ecx, 0x17
idiv ecx
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
jne 0x4027ca
nop
mov eax, dword [ebp - 0x120]
cdq
idiv edi
mov eax, dword [ebp - 0x120]
test edx, edx
je 0x4027b6
inc eax
jmp 0x4027b7
dec eax
mov dword [ebp - 0x120], eax
mov eax, dword [ebp - 0x120]
cdq
idiv esi
test edx, edx
je 0x4027a0
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004279e2
mov esp, ebp
pop ebp
ret