Function at 0x413d40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2c
mov ecx, dword [esp + 0x30]
push ebp
push esi
xor esi, esi
xor eax, eax
cmp ecx, esi
push edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
jne 0x413d6f
mov eax, 0xe101
cmp dword [esp + 0x40], esi
jne 0x413d7a
mov eax, 0xe111
cmp dword [esp + 0x58], esi
jne 0x413d85
mov eax, 0xe11c
mov ebp, dword [esp + 0x54]
cmp ebp, esi
jne 0x413d92
mov eax, 0xe11d
cmp dword [esp + 0x5c], esi
jne 0x413da4
pop edi
pop esi
mov eax, 0xe121
pop ebp
add esp, 0x2c
ret
cmp eax, esi
jne 0x414182
mov edi, dword [esp + 0x64]
push ebx
push edi
push ecx
call fcn.0040fd70
mov ebx, eax
mov eax, dword [esp + 0x4c]
push edi
push eax
mov dword [esp + 0x50], ebx
call fcn.0040fd70
add esp, 0x10
cmp ebx, esi
mov dword [esp + 0x44], eax
je 0x41415a
cmp eax, esi
je 0x41415a
cmp dword [ebx], 0x2001
je 0x413df2
mov esi, 0xe103
jmp 0x41415f
cmp dword [eax], 0x2002
je 0x413e04
mov esi, 0xe112
jmp 0x41415f
push edi
push ebx
call fcn.00418a70
mov ecx, dword [esp + 0x4c]
mov esi, eax
neg esi
sbb esi, esi
push edi
push ecx
inc esi
call fcn.00418a30
add esp, 0x10
neg eax
sbb eax, eax
inc eax
test esi, eax
jne 0x413e33
mov esi, 0xf003
jmp 0x4140da
mov eax, dword [ebx + 8]
test eax, eax
jne 0x413e44
mov esi, 0xe103
jmp 0x4140da
mov ecx, dword [eax]
mov dword [esp + 0x10], eax
cmp ecx, 0xd000
je 0x413e5c
mov esi, 0xe103
jmp 0x4140da
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x6c]
mov dl, byte [ecx]
push eax
push edx
push ebx
call fcn.004199e0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4140da
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x64]
sub ebp, edx
sub ebp, 0x14
test eax, eax
jne 0x413e9c
mov eax, dword [esp + 0x60]
mov dword [eax], ebp
jmp 0x4140da
mov ecx, dword [esp + 0x60]
cmp dword [ecx], ebp
jae 0x413eae
mov esi, 0xe123
jmp 0x4140da
mov eax, dword [ebx + 8]
lea edx, [esp + 0x1c]
push edi
push edx
push eax
call fcn.00419580
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4140da
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 8]
push edx
push eax
push ecx
call fcn.004195f0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4140da
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edi
push edx
push eax
call fcn.00419580
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4140da
mov ecx, dword [esp + 0x10]
push edi
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 8]
add eax, 7
shr eax, 3
add eax, 3
and al, 0xfc
lea esi, [eax + ebp + 0x14]
push esi
call fcn.0040fd90
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x413f3f
mov esi, 0xf001
jmp 0x4140d6
push edi
push esi
push 0
push ebx
call fcn.0040fe30
mov ecx, dword [esp + 0x20]
push edi
mov dword [esp + 0x38], ebx
mov edx, dword [ecx + 0x18]
mov eax, dword [edx + 8]
add eax, 7
shr eax, 3
add eax, 3
shr eax, 2
lea edx, [ebx + eax*4]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x34]
mov edx, dword [edx + 8]
push eax
push edx
push ecx
call dword [eax + 0x9c]
mov esi, eax
add esp, 0x24
cmp esi, 0xff00
jne 0x413f9b
mov esi, 0xf502
jmp 0x4140d6
cmp esi, 0xf001
je 0x4140d6
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push ebx
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
add ecx, 7
shr ecx, 3
push ecx
push edx
push eax
push 1
call fcn.00415e30
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x70]
add edx, ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x6c]
push edi
lea eax, [ebp + 0x14]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esi + 0x18]
push ecx
push edx
mov ecx, dword [eax + 8]
push ebx
add ecx, 7
shr ecx, 3
push ecx
call fcn.00419360
mov esi, eax
add esp, 0x30
test esi, esi
jne 0x4140d6
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x14]
push edi
push edx
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x60]
add eax, ebp
mov edx, dword [ecx + 0x14]
push edx
push eax
push 0x14
call fcn.004190f0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x4140d6
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x14]
push edi
push ebx
push ebp
push ecx
call fcn.004191d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4140d6
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
push edi
push edx
push eax
push ecx
call fcn.004191d0
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4140d6
lea edx, [esp + 0x28]
push edi
push edx
lea eax, [esp + 0x1c]
push 0x14
push eax
call fcn.00419280
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x4140d6
push edi
lea ecx, [ebx + ebp]
push 0x14
lea edx, [esp + 0x30]
push ecx
push edx
call fcn.0040fe10
add esp, 0x10
test eax, eax
je 0x4140ad
mov esi, 0xf501
jmp 0x4140d6
test ebp, ebp
jbe 0x4140ce
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x64]
sub ecx, ebx
mov eax, ebx
sub esi, ebx
mov edx, ebp
mov bl, byte [ecx + eax]
xor bl, byte [eax]
inc eax
dec edx
mov byte [esi + eax - 1], bl
jne 0x4140c1
mov eax, dword [esp + 0x60]
xor esi, esi
mov dword [eax], ebp
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4140f7
lea ecx, [esp + 0x28]
push edi
push ecx
lea edx, [esp + 0x1c]
push 0x14
push edx
call fcn.00419280
add esp, 0x10
mov eax, dword [esp + 0x24]
test eax, eax
je 0x414109
push edi
push eax
call fcn.0040fdc0
add esp, 8
mov eax, dword [esp + 0x18]
test eax, eax
je 0x414124
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push edi
push eax
push ecx
call fcn.00419070
add esp, 0xc
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41413f
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edi
push edx
push eax
call fcn.00419070
add esp, 0xc
push edi
push ebx
call fcn.00418900
mov ecx, dword [esp + 0x4c]
push edi
push ecx
call fcn.00418870
mov eax, dword [esp + 0x54]
add esp, 0x10
jmp 0x41415f
mov esi, 0xf003
test ebx, ebx
je 0x414171
push edi
push ebx
call fcn.0040fd80
mov eax, dword [esp + 0x4c]
add esp, 8
test eax, eax
pop ebx
je 0x414180
push edi
push eax
call fcn.0040fd80
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
add esp, 0x2c
ret