Function at 0x4014b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x348
push ebx
push esi
push edi
push 0x340
lea eax, [ebp - 0x344]
push 0
push eax
mov dword [ebp - 0x348], 0
call fcn.00402eb0
add esp, 0xc
xor edi, edi
mov ebx, 0x51f4
mov dword [ebp - 4], 0x3527
call fcn.004031c0
mov dword [ebp - 0x284], eax
inc edi
mov eax, 0x38e38e39
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, edi
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x401510
inc edi
cmp edi, 0x7530
jl 0x4014f5
lea eax, [ebp - 0x27c]
push eax
push 0x67d5
call fcn.004011f0
lea eax, [ebp - 0x24c]
push eax
push 0x7f24
call fcn.004011f0
add esp, 0x10
lea ecx, [ecx]
mov eax, 0x78787879
imul ebx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
jne 0x401540
mov ecx, 0x35b1
mov edi, 0x157c
lea ecx, [ecx]
mov eax, 0x151d07eb
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401560
xor eax, eax
jmp 0x401580
xor dword [ebp + eax*4 - 0x24c], 0x1641bd47
inc eax
cmp eax, 5
jb 0x401580
mov eax, 0x8fb823ef
imul edi
add edx, edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
jne 0x401591
mov ecx, 0xa89
jmp 0x4015b0
mov eax, 0xac769185
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4015b0
mov esi, 0x6db5
lea ebx, [ebx]
mov eax, 0x4d4873ed
imul esi
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x4015d0
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x27c]
push 9
push eax
call fcn.00402f10
lea eax, [ebp - 0x27c]
push eax
lea eax, [ebp - 0x338]
push eax
call fcn.00402e30
add esp, 0x14
mov esi, 0x6eb4
mov ecx, 0x335c
jmp 0x401620
mov eax, 0xa16b312f
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401620
lea eax, [ebp - 0x338]
push eax
call fcn.00402610
mov dword [ebp - 0x304], eax
lea eax, [ebp - 0x27c]
push eax
push 0x100c
call fcn.004011f0
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x27c]
push 0x14
push eax
call fcn.00402f10
push 0
push 0
lea eax, [ebp - 0x27c]
push eax
push dword [ebp - 0x304]
lea eax, [ebp - 0x210]
push eax
call fcn.004023a0
add esp, 0x2c
mov dword [ebp - 0x288], eax
lea eax, [ebp - 0x2f0]
push eax
push 0x1c
lea eax, [ebp - 0x2b4]
push eax
push 0
call fcn.004031c0
push eax
push 0xffffffffffffffff
call dword [ebp - 0x288]
mov dword [ebp - 0xb4], eax
test eax, eax
js 0x401ac7
test byte [ebp - 0x2a0], 0x40
jne 0x40174f
lea eax, [ebp - 0x27c]
push eax
push 0x3f56
call fcn.004011f0
add esp, 8
mov eax, 0x752
mov edx, 0x46
mov ecx, 0x89
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4016f1
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x27c]
push 0x16
push eax
call fcn.00402f10
add esp, 0xc
mov ecx, 0x6586
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401716
push ecx
push ecx
lea eax, [ebp - 0x27c]
push eax
push dword [ebp - 0x304]
lea eax, [ebp - 0x210]
push eax
call fcn.004023a0
add esp, 0x14
mov dword [ebp - 0x2d8], eax
call fcn.004031c0
mov dword [ebp - 0x290], eax
lea eax, [ebp - 0x31c]
mov dword [ebp - 0x310], eax
xor ebx, ebx
inc ebx
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x401783
add ebx, 2
cmp ebx, 0x743c
jl 0x401768
mov ecx, dword [ebp - 0x290]
xor edi, edi
jmp 0x4017a0
mov eax, dword [edi + ecx]
xor eax, 0xe26ba20
mov dword [ebp - 0x31c], eax
cmp al, 0x37
jne 0x4017c9
cmp ah, 0xf3
jne 0x4017c9
cmp byte [ebp - 0x31a], 0xd1
jne 0x4017c9
cmp byte [ebp - 0x319], 0x96
je 0x40181c
test esi, esi
je 0x4017e5
lea ecx, [ecx]
mov eax, 0xb40b40b5
imul esi
add edx, esi
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x4017d0
inc edi
cmp edi, 0x18000
jb 0x4017a0
mov esi, dword [ebp - 0x250]
mov dword [ebp - 0x218], 0x57be350
xor ebx, ebx
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*2]
sub ecx, eax
jne 0x401853
add ebx, 3
jmp 0x401854
xor ebx, ebx
mov edi, edi
inc ebx
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
add ecx, ecx
mov eax, ebx
sub eax, ecx
jne 0x40183b
inc ebx
cmp ebx, 0x725a
jl 0x401820
mov esi, dword [ebp - 0x290]
add esi, edi
mov dword [ebp - 0x250], esi
jmp 0x4017f4
inc ebx
cmp ebx, 0x2012
jl 0x401800
mov dword [ebp - 0x2f4], 0x57bc350
mov ecx, 0x38fe
jmp 0x401870
mov eax, 0x97012e03
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401870
mov dword [ebp - 0x2b8], 0x57be250
mov dword [ebp - 0x2c4], esi
xor ebx, ebx
inc ebx
mov eax, 0x38e38e39
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ecx, ebx
lea eax, [eax + eax*8]
sub ecx, eax
jne 0x4018b2
inc ebx
cmp ebx, 0x6439
jl 0x401897
mov dword [ebp - 0x18], 0x42e00
mov dword [ebp - 0x2e4], 0x2000
mov eax, 0x70d5
mov edx, 0x81
mov ecx, 0xfc
lea ebx, [ebx]
cmp ecx, edx
cmovg ecx, edx
dec eax
jne 0x4018e0
mov ecx, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x284]
mov dword [ebp - 0xc4], eax
test ecx, ecx
je 0x401969
mov eax, 0x2de
mov esi, 0x97
mov edx, 0xba
lea ecx, [ecx]
cmp edx, esi
cmovg edx, esi
dec eax
jne 0x401910
lea eax, [ebp - 0xfc]
push eax
push 0x40
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x250]
push eax
push 0xffffffffffffffff
call ecx
lea eax, [ebp - 0xfc]
push eax
push 0x40
lea eax, [ebp - 0x2e4]
push eax
lea eax, [ebp - 0x284]
push eax
push 0xffffffffffffffff
call dword [ebp - 0x2d8]
mov ecx, 0x20d8
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401954
mov esi, 0x35b1
mov ecx, 0x157c
mov eax, 0x151d07eb
imul esi
sar edx, 4
mov esi, edx
shr esi, 0x1f
add esi, edx
jne 0x401973
xor eax, eax
jmp 0x401990
xor dword [ebp + eax*4 - 0x24c], 0xe26ba20
inc eax
cmp eax, 5
jb 0x401990
mov eax, 0x8fb823ef
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4019a1
mov eax, dword [ebp - 0x2c4]
test eax, eax
je 0x401a0c
lea ecx, [ebp - 0x24c]
push ecx
push 0x42e00
push eax
call fcn.00402f10
add esp, 0xc
mov ecx, 0x1fd
lea ebx, [ebx]
mov eax, 0x92f11385
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4019e0
mov eax, 0x66666667
imul dword [ebp - 4]
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 4], eax
jne 0x4019f5
call fcn.004031c0
mov dword [ebp - 0x344], eax
add eax, 0xfffffffe
push eax
push dword [ebp - 0xc4]
call fcn.004010b0
add esp, 8
mov ecx, 0x4646
mov edi, edi
mov eax, 0x8d3dcb09
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401a30
lea eax, [ebp - 0x348]
push eax
push 0x42e00
push dword [ebp - 0x2c4]
call fcn.00401ad0
mov esi, dword [ebp - 0x2c4]
add esp, 0xc
lea esi, [esi + 0x2c8f0]
mov eax, 0x3b8e
dec eax
jne 0x401a70
xor ecx, ecx
inc ecx
mov eax, ecx
and eax, 0x80000001
jns 0x401a84
dec eax
or eax, 0xfffffffe
inc eax
jne 0x401a87
inc ecx
cmp ecx, 0x937
jl 0x401a75
lea eax, [ebp - 0x348]
push 0x344
push eax
call section..text
add esp, 8
mov ecx, 0x91e
jmp 0x401ab0
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x401ab0
call esi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret