Function at 0x414900
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x28
mov ecx, dword [esp + 0x2c]
xor edx, edx
xor eax, eax
cmp ecx, edx
mov dword [esp + 0xc], edx
mov dword [esp], edx
mov dword [esp + 8], edx
mov dword [esp + 0x10], edx
mov dword [esp + 4], edx
jne 0x414928
mov eax, 0xe101
push ebx
push esi
mov esi, dword [esp + 0x38]
push edi
cmp esi, edx
jne 0x414938
mov eax, 0xe111
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jne 0x414945
mov eax, 0xe11c
cmp dword [esp + 0x50], edx
jne 0x414950
mov eax, 0xe11d
cmp dword [esp + 0x58], edx
jne 0x414962
pop edi
pop esi
mov eax, 0xe121
pop ebx
add esp, 0x28
ret
cmp eax, edx
jne 0x414d97
mov edi, dword [esp + 0x60]
push ebp
push edi
push ecx
call fcn.0040ff50
mov ebp, eax
push edi
push esi
mov dword [esp + 0x4c], ebp
call fcn.0040ff50
add esp, 0x10
mov dword [esp + 0x40], eax
test ebp, ebp
je 0x414d9e
test eax, eax
je 0x414d9e
cmp dword [ebp], 0x2001
je 0x4149ad
mov esi, 0xe103
jmp 0x414d74
cmp dword [eax], 0x2002
je 0x4149bf
mov esi, 0xe112
jmp 0x414d74
push edi
push ebp
call fcn.00419eb0
mov esi, eax
mov eax, dword [esp + 0x48]
neg esi
sbb esi, esi
push edi
push eax
inc esi
call fcn.00419e70
add esp, 0x10
neg eax
sbb eax, eax
inc eax
test esi, eax
jne 0x4149ee
mov esi, 0xf003
jmp 0x414d13
mov edx, dword [ebp + 8]
xor esi, esi
test edx, edx
jne 0x414a01
mov esi, 0xe103
jmp 0x414d13
mov eax, dword [edx]
mov dword [esp + 0x1c], edx
cmp eax, 0xd000
je 0x414a18
mov esi, 0xe103
jmp 0x414d13
mov eax, dword [ebp + 4]
mov cl, byte [ebx]
test al, 1
je 0x414a82
and eax, 6
sub eax, 2
je 0x414a7d
sub eax, 2
je 0x414a61
sub eax, 2
jne 0x414ac8
cmp cl, 6
je 0x414a4b
cmp cl, 7
je 0x414a4b
mov esi, 0xe11e
jmp 0x414d13
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx + 8]
add eax, 7
shr eax, 3
lea ecx, [eax + eax + 1]
mov dword [esp + 0x10], ecx
jmp 0x414ac8
cmp cl, 2
je 0x414a75
cmp cl, 3
je 0x414a75
mov esi, 0xe11e
jmp 0x414d13
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 8]
jmp 0x414abd
cmp cl, 4
jmp 0x414a3f
cmp cl, 2
je 0x414ab7
cmp cl, 3
je 0x414ab7
cmp cl, 4
je 0x414aa5
cmp cl, 6
je 0x414aa5
cmp cl, 7
je 0x414aa5
mov esi, 0xe11e
jmp 0x414d13
mov eax, dword [edx + 0x14]
mov ecx, dword [eax + 8]
add ecx, 7
shr ecx, 3
lea eax, [ecx + ecx + 1]
jmp 0x414ac4
mov ecx, dword [edx + 0x14]
mov eax, dword [ecx + 8]
add eax, 7
shr eax, 3
inc eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
sub ebx, eax
mov eax, dword [esp + 0x60]
sub ebx, 0x14
test eax, eax
mov dword [esp + 0x64], ebx
jne 0x414aec
mov edx, dword [esp + 0x5c]
mov dword [edx], ebx
jmp 0x414d13
mov eax, dword [esp + 0x5c]
cmp dword [eax], ebx
jae 0x414afe
mov esi, 0xe123
jmp 0x414d13
lea ecx, [esp + 0x18]
push edi
push ecx
push edx
call dword [edx + 0x5c]
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x414d13
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
push edx
push eax
push ecx
push ebp
call fcn.0041a940
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x414d13
mov ebp, dword [esp + 0x1c]
push edi
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
add edx, 7
shr edx, 3
add edx, 3
and edx, 0xfffffffc
add ebx, edx
lea esi, [ebx + eax*4 + 0x14]
push esi
call fcn.0040ff80
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x20], ebx
jne 0x414b74
mov esi, 0xf001
jmp 0x414d0f
push edi
push esi
push 0
push ebx
call fcn.00410020
mov eax, dword [ebp + 0x14]
push edi
push ebx
mov dword [esp + 0x38], ebx
mov edx, dword [eax + 8]
mov ecx, dword [eax + 4]
add edx, 7
shr edx, 3
add edx, 3
lea ecx, [ebx + ecx*4]
shr edx, 2
mov ebp, ecx
lea eax, [ecx + edx*4]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x6c], eax
mov eax, dword [edx + 8]
push ecx
push eax
mov eax, dword [esp + 0x3c]
push eax
call dword [eax + 0x44]
mov esi, eax
add esp, 0x24
cmp esi, 0xff00
jne 0x414bd1
mov esi, 0xf502
jmp 0x414d0f
cmp esi, 0xf001
je 0x414d0f
mov esi, dword [esp + 0x1c]
push ebp
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
add ecx, 7
shr ecx, 3
push ecx
push ebx
push edx
push 1
call fcn.00416f00
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x5c]
add ebx, eax
mov eax, dword [esp + 0x68]
push edi
add ecx, 0x14
push eax
mov eax, dword [esp + 0x60]
push ecx
mov ecx, dword [esi + 0x14]
push edx
push eax
mov edx, dword [ecx + 8]
push ebp
add edx, 7
shr edx, 3
push edx
call fcn.0041a700
mov esi, eax
add esp, 0x30
test esi, esi
jne 0x414d0f
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x64]
lea eax, [esp + 0x14]
push edi
mov edx, dword [ecx + 8]
mov ecx, dword [esp + 0x58]
push eax
add ecx, ebp
mov eax, dword [edx + 0x10]
push eax
push ecx
push 0x14
call fcn.0041a4a0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x414d0f
mov edx, dword [esp + 0x14]
push edi
push ebx
push ebp
push edx
call fcn.0041a580
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x414d0f
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
push edi
push eax
push ecx
push edx
call fcn.0041a580
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x414d0f
lea eax, [esp + 0x24]
push edi
push eax
lea ecx, [esp + 0x1c]
push 0x14
push ecx
call fcn.0041a630
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x414d0f
push edi
add ebp, ebx
push 0x14
lea edx, [esp + 0x2c]
push ebp
push edx
call fcn.00410000
add esp, 0x10
test eax, eax
je 0x414cde
mov esi, 0xf501
jmp 0x414d0f
mov edx, dword [esp + 0x5c]
xor ebp, ebp
cmp dword [edx], 0
jbe 0x414d07
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x60]
sub ecx, ebx
mov eax, ebx
sub esi, ebx
mov bl, byte [ecx + eax]
xor bl, byte [eax]
inc ebp
mov byte [esi + eax], bl
mov ebx, dword [edx]
inc eax
cmp ebp, ebx
jb 0x414cf7
mov eax, dword [esp + 0x64]
xor esi, esi
mov dword [edx], eax
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x414d2c
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push edi
push ecx
push eax
call dword [eax + 0x60]
add esp, 0xc
push edi
push ebp
call fcn.00419dd0
mov edx, dword [esp + 0x48]
push edi
push edx
call fcn.00419d40
mov eax, dword [esp + 0x30]
add esp, 0x10
test eax, eax
je 0x414d53
push edi
push eax
call fcn.0040ffb0
add esp, 8
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414d70
lea eax, [esp + 0x24]
push edi
push eax
lea ecx, [esp + 0x1c]
push 0x14
push ecx
call fcn.0041a630
add esp, 0x10
mov eax, dword [esp + 0x40]
test ebp, ebp
je 0x414d86
push edi
push ebp
call fcn.0040ff50
mov eax, dword [esp + 0x48]
add esp, 8
test eax, eax
pop ebp
je 0x414d95
push edi
push eax
call fcn.0040ff50
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x28
ret
mov esi, 0xf003
jmp 0x414d74