Function at 0x43013a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x4975a0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
cmp esi, ebx
jne 0x43015c
xor eax, eax
jmp 0x430468
push edi
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x18], ebx
call fcn.004278c1
push ebx
mov edi, eax
push edi
push 0x8c
push 0x403bf8
call fcn.0042977d
cmp edi, ebx
jl 0x430464
cmp dword [ebp - 0x30], 5
jne 0x43019c
cmp dword [ebp - 0x38], 1
je 0x4301a1
mov edi, 0x80004005
cmp edi, ebx
jl 0x430464
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push esi
call dword [fcn.0040119c]
cmp eax, 0xffffffff
mov dword [ebp - 0x20], eax
mov esi, 0x80070000
jne 0x4301f1
call dword [fcn.0040107c]
cmp eax, ebx
jle 0x4301de
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0x9d
push 0x403bf8
call fcn.0042977d
cmp edi, ebx
jl 0x430440
push ebx
push dword [ebp - 0x20]
call dword [fcn.00401210]
cmp eax, 0xffffffff
mov dword [ebp - 0x1c], eax
jne 0x43022f
call dword [fcn.0040107c]
cmp eax, ebx
jle 0x43021c
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0xa9
push 0x403bf8
call fcn.0042977d
cmp edi, ebx
jl 0x430440
push ebx
push ebx
push ebx
push 2
push ebx
push dword [ebp - 0x20]
call dword [0x40120c]
cmp eax, ebx
mov dword [ebp - 0x28], eax
jne 0x430271
call dword [fcn.0040107c]
cmp eax, ebx
jle 0x43025e
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0xb5
push 0x403bf8
call fcn.0042977d
cmp edi, ebx
jl 0x430432
push ebx
push ebx
push ebx
push 4
push dword [ebp - 0x28]
call dword [0x401208]
cmp eax, ebx
mov dword [ebp - 0x24], eax
jne 0x4302b2
call dword [fcn.0040107c]
cmp eax, ebx
jle 0x43029f
and eax, 0xffff
or eax, esi
push ebx
mov edi, eax
push edi
push 0xc0
push 0x403bf8
call fcn.0042977d
cmp edi, ebx
jl 0x430424
push dword [ebp - 0x1c]
call fcn.0041a6e0
mov esi, eax
cmp esi, ebx
pop ecx
mov dword [ebp - 0x3c], esi
jne 0x4302d1
mov edi, 0x8007000e
cmp edi, ebx
jl 0x430419
cmp dword [ebp - 0x24], ebx
je 0x4302ed
push dword [ebp - 0x1c]
push dword [ebp - 0x24]
push esi
call fcn.0041d1a9
add esp, 0xc
push dword [ebp - 0x1c]
push esi
call fcn.0042fda5
mov edi, eax
cmp edi, ebx
mov dword [ebp - 0x34], edi
jl 0x430419
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff8
cmp eax, ebx
mov byte [ebp - 0x14], 0x12
mov byte [ebp - 0x13], 0x98
mov byte [ebp - 0x12], 0xef
mov byte [ebp - 0x11], 0x6b
mov byte [ebp - 0x10], 0x12
mov byte [ebp - 0xf], 0xc5
mov byte [ebp - 0xe], 0xcc
mov byte [ebp - 0xd], 0xe4
mov byte [ebp - 0xc], 0x98
mov byte [ebp - 0xb], 0x42
mov byte [ebp - 0xa], 0x71
mov byte [ebp - 9], 8
mov byte [ebp - 8], 0x96
mov byte [ebp - 7], 0xee
mov byte [ebp - 6], 0xd2
mov byte [ebp - 5], 0x3e
jl 0x4303e8
mov edx, dword [eax + esi]
mov ecx, dword [eax + esi + 4]
mov dword [ebp - 0x18], ebx
add dword [ebp - 0x18], 0x77cf6050
add dword [ebp - 0x18], 0x4f1fd6d0
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x18], ebx
add dword [ebp - 0x18], 0x60b920f7
add dword [ebp - 0x18], 0x3d7e58c2
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x2c], 0x20
mov dword [ebp - 0x18], edi
mov edi, edx
shr edi, 5
mov ebx, edx
shl ebx, 4
xor edi, ebx
dec dword [ebp - 0x2c]
mov ebx, esi
shr ebx, 0xb
and ebx, 3
mov ebx, dword [ebp + ebx*4 - 0x14]
add ebx, esi
sub esi, dword [ebp - 0x18]
add edi, edx
xor edi, ebx
sub ecx, edi
mov edi, ecx
shr edi, 5
mov ebx, ecx
shl ebx, 4
xor edi, ebx
mov ebx, esi
and ebx, 3
mov ebx, dword [ebp + ebx*4 - 0x14]
add ebx, esi
add edi, ecx
xor edi, ebx
xor ebx, ebx
sub edx, edi
cmp dword [ebp - 0x2c], ebx
ja 0x43038a
mov esi, dword [ebp - 0x3c]
mov dword [eax + esi], edx
dec eax
mov dword [eax + esi + 5], ecx
jns 0x430351
mov edi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
inc eax
push eax
call fcn.0041a6e0
cmp eax, ebx
pop ecx
mov dword [ebp - 0x18], eax
jne 0x4303ff
mov edi, 0x8007000e
cmp edi, ebx
jl 0x430419
push dword [ebp - 0x1c]
push esi
push eax
call fcn.0041d1a9
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov byte [ecx + eax], bl
cmp esi, ebx
je 0x430424
push esi
call fcn.0041a1c2
pop ecx
cmp dword [ebp - 0x24], ebx
je 0x430432
push dword [ebp - 0x24]
call dword [0x401204]
cmp dword [ebp - 0x28], ebx
je 0x430440
push dword [ebp - 0x28]
call dword [fcn.004011a0]
cmp dword [ebp - 0x20], 0xffffffff
je 0x43044f
push dword [ebp - 0x20]
call dword [fcn.004011a0]
cmp edi, ebx
jge 0x430464
cmp dword [ebp - 0x18], ebx
je 0x430464
push dword [ebp - 0x18]
call fcn.0041a1c2
pop ecx
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.004193ff
leave
ret 4