Function at 0x42e868
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 4
add esp, 0xfffff004
push eax
dec eax
jne 0x42e871
mov eax, dword [ebp - 4]
add esp, 0xfffff954
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
call fcn.004262c0
lea edx, [ebp - 0x18]
push edx
call fcn.004262c0
lea ecx, [ebp - 0x20]
push ecx
call fcn.004262c0
lea eax, [ebp - 0x28]
push eax
call fcn.004262c0
push 0x269
call fcn.00408028
push eax
lea edx, [ebp - 0x46b0]
push edx
call fcn.00456f9c
add esp, 8
lea ecx, [ebp - 0x46b0]
push ecx
call fcn.00413e78
push 0
push esi
call fcn.0042758c
test al, al
je 0x42e92d
cmp byte [esi + 0xd13], 0
jne 0x42e92d
push 0
add esp, 0xfffffff8
push 0
lea eax, [esp + 4]
push eax
call fcn.004262cc
push esi
call fcn.00426df8
push 0x26b
call fcn.00408028
push eax
lea edx, [ebp - 0x46b0]
push edx
call fcn.00456f9c
add esp, 8
lea ecx, [ebp - 0x46b0]
push ecx
call fcn.00413e78
xor eax, eax
jmp 0x42f2fb
push 0x78
push esi
call fcn.004281cc
push 0x78
push esi
call fcn.00428ca4
cmp byte [esi + 0x47a], 0x78
jne 0x42e970
mov dx, word [0x473ac0]
not dx
cmp dx, word [esi + 0x478]
jne 0x42e970
cmp byte [esi + 0x484], 0x14
ja 0x42e970
cmp word [esi + 0x486], 0x20
jbe 0x42ec04
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x40]
push edx
call fcn.004262f8
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
lea eax, [esi + 0xcfc]
push eax
lea edx, [ebp - 0x48]
push edx
call fcn.004262f8
lea ecx, [ebp - 0x40b0]
mov dword [ebp - 4], ecx
push 0
add esp, 0xfffffff8
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov edx, dword [ebp - 0x24]
mov dword [esp + 4], edx
push esi
call fcn.00426df8
push 0x4000
mov ecx, dword [ebp - 4]
push ecx
push esi
call fcn.00426db0
mov dword [ebp - 0x38], eax
test eax, eax
je 0x42eb93
xor edi, edi
mov eax, dword [ebp - 4]
lea ebx, [eax + 2]
jmp 0x42eb66
mov eax, dword [ebp - 0x38]
sub eax, edi
cmp eax, 0x1a
jb 0x42eb64
cmp byte [ebx], 0x78
jne 0x42eb64
push 8
push 0x461ec3
mov edx, dword [ebp - 4]
add edx, edi
add edx, 0x12
push edx
call fcn.00452f88
add esp, 0xc
test eax, eax
jne 0x42eb64
xor eax, eax
xor ecx, ecx
mov al, byte [ebx - 1]
mov cl, byte [ebx - 2]
shl eax, 8
add cx, ax
mov word [esi + 0x478], cx
push 0x18
mov edx, dword [ebp - 4]
add edx, edi
add edx, 2
push edx
push 0xffffffffffffffff
call fcn.00433fa0
not ax
cmp ax, word [esi + 0x478]
jne 0x42eb64
mov cl, byte [ebx]
xor edx, edx
mov byte [esi + 0x47a], cl
xor eax, eax
mov dl, byte [ebx + 2]
mov al, byte [ebx + 1]
shl edx, 8
xor ecx, ecx
add ax, dx
xor edx, edx
mov word [esi + 0x47c], ax
xor eax, eax
mov al, byte [ebx + 4]
mov cl, byte [ebx + 3]
shl eax, 8
add cx, ax
mov word [esi + 0x47e], cx
xor ecx, ecx
mov cl, byte [ebx + 6]
mov dl, byte [ebx + 5]
movzx eax, cx
shl eax, 8
xor ecx, ecx
add edx, eax
mov cl, byte [ebx + 7]
xor eax, eax
mov al, byte [ebx + 8]
shl ecx, 0x10
shl eax, 0x18
add edx, ecx
add edx, eax
xor eax, eax
mov dword [esi + 0x480], edx
xor ecx, ecx
mov dl, byte [ebx + 9]
mov byte [esi + 0x484], dl
xor edx, edx
mov al, byte [ebx + 0xb]
mov cl, byte [ebx + 0xa]
shl eax, 8
add cx, ax
mov word [esi + 0x486], cx
xor ecx, ecx
mov cl, byte [ebx + 0xd]
mov dl, byte [ebx + 0xc]
movzx eax, cx
shl eax, 8
xor ecx, ecx
add edx, eax
mov cl, byte [ebx + 0xe]
xor eax, eax
mov al, byte [ebx + 0xf]
shl ecx, 0x10
shl eax, 0x18
add edx, ecx
add edx, eax
mov dword [esi + 0x488], edx
push 8
lea edx, [esi + 0x48c]
push 0x461ecc
push edx
call fcn.00452dbc
add esp, 0xc
add esp, 0xfffffff8
add esp, 0xfffffff8
push edi
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
add esp, 0xfffffff8
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov edx, dword [ebp - 0x24]
mov dword [esp + 4], edx
lea ecx, [esp + 0x10]
push ecx
call fcn.00426694
lea eax, [esi + 0xcfc]
push eax
lea edx, [ebp - 0x50]
push edx
call fcn.004262f8
jmp 0x42eb6f
inc edi
inc ebx
cmp edi, dword [ebp - 0x38]
jb 0x42e9f3
add esp, 0xfffffff8
push 0x3fe8
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x58]
push edx
call fcn.004266ec
jmp 0x42e9b4
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
add esp, 0xfffffff8
lea ebx, [esi + 0xcfc]
mov eax, dword [ebx]
mov dword [esp], eax
mov edx, dword [ebx + 4]
mov dword [esp + 4], edx
call fcn.004267ac
test al, al
je 0x42ec04
push 0
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
push esi
call fcn.00426df8
push 0x26b
call fcn.00408028
push eax
lea eax, [ebp - 0x46b0]
push eax
call fcn.00456f9c
add esp, 8
lea edx, [ebp - 0x46b0]
push edx
call fcn.00413e78
xor eax, eax
jmp 0x42f2fb
push 0x26a
call fcn.00408028
push eax
lea edx, [ebp - 0x46b0]
push edx
call fcn.00456f9c
add esp, 8
lea ecx, [ebp - 0x46b0]
push ecx
call fcn.00413e78
lea eax, [esi + 0xcfc]
add esp, 0xfffffff8
mov dword [ebp - 0x64], eax
add esp, 0xfffffff8
mov edx, dword [ebp - 0x64]
mov ecx, dword [edx]
mov dword [esp], ecx
lea ecx, [ebp - 0x10]
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + 4]
mov dword [esp + 4], edx
push ecx
lea eax, [esp + 0xc]
push eax
call fcn.004262f8
lea edx, [ebp - 0x18]
push edx
lea ecx, [ebp - 0x60]
push ecx
call fcn.004262f8
push 0x4000
push 0
lea eax, [ebp - 0x40b0]
push eax
call fcn.00452e2c
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x34], edx
push 0
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
push esi
call fcn.00426df8
jmp 0x42ed83
call fcn.00426030
add esp, 0xfffffff8
push 0x200
lea eax, [esp + 4]
push eax
call fcn.004262cc
add esp, 0xfffffff8
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
mov ecx, dword [ebp - 0xc]
mov dword [esp + 4], ecx
call fcn.004267f4
test al, al
je 0x42ed11
lea eax, [ebp - 0x10]
push eax
call fcn.0041844c
mov ebx, eax
mov eax, 0x200
sub eax, ebx
lea edx, [ebp - 0x42b0]
push eax
add edx, ebx
push 0
push edx
call fcn.00452e2c
add esp, 0xc
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x6c]
push edx
call fcn.004262f8
jmp 0x42ed24
mov ebx, 0x200
push 0x200
lea eax, [ebp - 0x10]
push eax
call fcn.00440042
push ebx
lea edx, [ebp - 0x42b0]
push edx
push esi
call fcn.00426db0
xor ecx, ecx
lea eax, [ebp - 0x40b0]
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x42b0]
mov edx, dword [ebp - 0x34]
shl edx, 9
mov ecx, dword [ebp - 0xac]
mov bl, byte [eax]
xor byte [ecx + edx], bl
inc dword [ebp - 0x70]
inc dword [ebp - 0xac]
inc eax
cmp dword [ebp - 0x70], 0x200
jl 0x42ed49
inc dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
movzx edx, word [esi + 0x486]
cmp eax, edx
jb 0x42ed83
xor ecx, ecx
mov dword [ebp - 0x34], ecx
add esp, 0xfffffff8
push 0
lea eax, [esp + 4]
push eax
call fcn.004262cc
add esp, 0xfffffff8
mov edx, dword [ebp - 0x10]
mov dword [esp], edx
mov ecx, dword [ebp - 0xc]
mov dword [esp + 4], ecx
call fcn.004267cc
test al, al
jne 0x42ec9d
push 0
add esp, 0xfffffff8
add esp, 0xfffffff8
push 0x1a
lea eax, [esp + 4]
push eax
call fcn.004262cc
add esp, 0xfffffff8
add esp, 0xfffffff8
mov edx, dword [esi + 0x488]
add edx, edx
push edx
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
add esp, 0xfffffff8
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
mov edx, dword [ebp - 0x14]
mov dword [esp + 4], edx
lea ecx, [esp + 0x10]
push ecx
call fcn.00426694
lea eax, [esp + 0x10]
push eax
call fcn.00426694
push esi
call fcn.00426df8
xor edx, edx
mov dword [ebp - 0x34], edx
jmp 0x42ee5d
push 0x200
lea ecx, [ebp - 0x42b0]
push ecx
push esi
call fcn.00426db0
xor eax, eax
lea edx, [ebp - 0x40b0]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x42b0]
mov dword [ebp - 0xb0], edx
mov edx, dword [ebp - 0x34]
shl edx, 9
mov ecx, dword [ebp - 0xb0]
mov bl, byte [eax]
xor byte [ecx + edx], bl
inc dword [ebp - 0x74]
inc dword [ebp - 0xb0]
inc eax
cmp dword [ebp - 0x74], 0x200
jl 0x42ee36
inc dword [ebp - 0x34]
movzx eax, word [esi + 0x486]
cmp eax, dword [ebp - 0x34]
ja 0x42ee0d
push 0
add esp, 0xfffffff8
push 0
lea edx, [esp + 4]
push edx
call fcn.004262cc
push esi
call fcn.00426df8
add esp, 0xfffffff8
add esp, 0xfffffff8
push 0x1a
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
add esp, 0xfffffff8
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
mov edx, dword [ebp - 0x14]
mov dword [esp + 4], edx
lea ecx, [esp + 0x10]
push ecx
call fcn.00426694
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x7c]
push edx
call fcn.004262f8
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x10]
mov dword [esp], ecx
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x84]
mov dword [esp + 4], eax
push edx
push ecx
call fcn.004262f8
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
jmp 0x42f276
call fcn.00426030
add esp, 0xfffffff8
push 0x200
lea edx, [esp + 4]
push edx
call fcn.004262cc
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
call fcn.004267f4
test al, al
je 0x42ef60
lea edx, [ebp - 0x10]
push edx
call fcn.0041844c
mov ebx, eax
mov eax, 0x200
sub eax, ebx
lea edx, [ebp - 0x42b0]
push eax
add edx, ebx
push 0
push edx
call fcn.00452e2c
add esp, 0xc
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x8c]
push edx
call fcn.004262f8
jmp 0x42ef73
mov ebx, 0x200
push 0x200
lea eax, [ebp - 0x10]
push eax
call fcn.00440042
push ebx
lea edx, [ebp - 0x42b0]
push edx
push esi
call fcn.00426db0
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x42b0]
mov ecx, dword [ebp - 0x38]
push ecx
push eax
mov edx, dword [ebp + 0xc]
push edx
call fcn.00426d68
push 0x200
lea ecx, [ebp - 0x42b0]
push ecx
push 0xffffffffffffffff
call fcn.00433fa0
mov word [ebp - 6], ax
push esi
lea eax, [ebp - 0x94]
push eax
call fcn.00426e58
push 0
add esp, 0xfffffff8
mov edx, dword [ebp - 0x20]
mov dword [esp], edx
mov ecx, dword [ebp - 0x1c]
mov dword [esp + 4], ecx
push esi
call fcn.00426df8
push esi
call fcn.00426eac
xor ebx, ebx
push esi
mov bl, al
call fcn.00426eac
and eax, 0xff
shl eax, 8
add bx, ax
mov word [ebp - 8], bx
add esp, 0xfffffff8
push 2
lea edx, [esp + 4]
push edx
call fcn.004262cc
lea ecx, [ebp - 0x20]
push ecx
lea eax, [ebp - 0x9c]
push eax
call fcn.004266ec
push 0
add esp, 0xfffffff8
mov edx, dword [ebp - 0x94]
mov dword [esp], edx
mov ecx, dword [ebp - 0x90]
mov dword [esp + 4], ecx
push esi
call fcn.00426df8
mov ax, word [ebp - 8]
cmp ax, word [ebp - 6]
je 0x42f25d
mov ebx, dword [ebp - 0x2c]
shl ebx, 9
mov eax, ebx
add eax, 0x200
push eax
push ebx
mov edx, dword [ebp - 0x2c]
push edx
push 0x26c
call fcn.00408028
push eax
lea ecx, [ebp - 0x46b0]
push ecx
call fcn.00456f9c
add esp, 0x14
lea eax, [ebp - 0x46b0]
push eax
call fcn.00413e78
push 0x200
lea edx, [ebp - 0x42b0]
push edx
lea ecx, [ebp - 0x44b0]
push ecx
call fcn.00452dbc
add esp, 0xc
mov byte [ebp - 0x9d], 0
xor eax, eax
lea edi, [ebp - 0x42b0]
lea ebx, [ebp - 0x40b0]
mov edx, dword [ebp - 0x34]
shl edx, 9
mov cl, byte [ebx + edx]
xor byte [edi], cl
inc eax
inc edi
inc ebx
cmp eax, 0x200
jl 0x42f0a7
push 0x200
lea eax, [ebp - 0x42b0]
push eax
push 0xffffffffffffffff
call fcn.00433fa0
mov word [ebp - 6], ax
mov ax, word [ebp - 8]
cmp ax, word [ebp - 6]
jne 0x42f0e9
mov byte [ebp - 0x9d], 1
jmp 0x42f1e1
push 0x200
lea edx, [ebp - 0x44b0]
push edx
lea ecx, [ebp - 0x42b0]
push ecx
call fcn.00452dbc
add esp, 0xc
xor eax, eax
lea ebx, [ebp - 0x42b0]
mov dword [ebp - 0xa4], eax
lea edi, [ebp - 0x40b0]
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x42b0]
shl eax, 9
mov dl, byte [edi + eax]
xor byte [ebx], dl
push 0x200
push ecx
push 0xffffffffffffffff
call fcn.00433fa0
mov word [ebp - 6], ax
mov ax, word [ebp - 8]
cmp ax, word [ebp - 6]
jne 0x42f14d
mov byte [ebp - 0x9d], 1
jmp 0x42f161
inc dword [ebp - 0xa4]
inc ebx
inc edi
cmp dword [ebp - 0xa4], 0x200
jl 0x42f118
cmp byte [ebp - 0x9d], 0
jne 0x42f1e1
push 0x200
lea edx, [ebp - 0x44b0]
push edx
lea ecx, [ebp - 0x42b0]
push ecx
call fcn.00452dbc
add esp, 0xc
mov dword [ebp - 0xa8], 0x1ff
lea edi, [ebp - 0x40b1]
lea ebx, [ebp - 0x3eb1]
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x42b0]
shl eax, 9
mov dl, byte [ebx + eax]
xor byte [edi], dl
push 0x200
push ecx
push 0xffffffffffffffff
call fcn.00433fa0
mov word [ebp - 6], ax
mov ax, word [ebp - 8]
cmp ax, word [ebp - 6]
jne 0x42f1d0
mov byte [ebp - 0x9d], 1
jmp 0x42f1e1
dec dword [ebp - 0xa8]
dec edi
dec ebx
cmp dword [ebp - 0xa8], 0
jge 0x42f19b
cmp byte [ebp - 0x9d], 0
je 0x42f24a
push 0
add esp, 0xfffffff8
add esp, 0xfffffff8
mov edx, dword [ebp - 0x38]
push edx
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
add esp, 0xfffffff8
mov eax, dword [ebp + 0xc]
push eax
lea edx, [esp + 4]
push edx
call fcn.00426e58
lea ecx, [esp + 0x10]
push ecx
call fcn.004266c0
mov eax, dword [ebp + 0xc]
push eax
call fcn.00426df8
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x42b0]
push edx
push ecx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00426d68
push 0x26d
call fcn.00408028
push eax
call fcn.00413e78
jmp 0x42f25d
push 0x26e
call fcn.00408028
push eax
call fcn.00413e78
inc dword [ebp - 0x30]
inc dword [ebp - 0x2c]
inc dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
movzx ecx, word [esi + 0x486]
cmp edx, ecx
jb 0x42f276
xor eax, eax
mov dword [ebp - 0x34], eax
add esp, 0xfffffff8
push 0
lea edx, [esp + 4]
push edx
call fcn.004262cc
add esp, 0xfffffff8
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov eax, dword [ebp - 0xc]
mov dword [esp + 4], eax
call fcn.004267cc
test al, al
jne 0x42eee9
push 0
add esp, 0xfffffff8
mov edx, dword [ebp - 0x18]
mov dword [esp], edx
mov ecx, dword [ebp - 0x14]
mov dword [esp + 4], ecx
push esi
call fcn.00426df8
add esp, 0xfffffff8
push 0
push 0x80000000
lea eax, [esp + 8]
push eax
call fcn.004262e0
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.0043fcfc
push 0
add esp, 0xfffffff8
push 0
lea ecx, [esp + 4]
push ecx
call fcn.004262cc
push esi
call fcn.00426df8
cmp dword [ebp - 0x30], 0
mov eax, 1
jne 0x42f2fb
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8