Function at 0x42d030
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov esi, edx
mov dword [esp + 0x18], ecx
call fcn.0042c0d0
mov dh, byte [0x54e644]
movzx eax, byte [0x54e645]
movzx ecx, dh
cmp ecx, eax
mov dword [esp + 0x54], ecx
cmovbe eax, ecx
mov ecx, 8
shr eax, 1
mov di, word [eax*2 + 0x4bf39e]
mov al, byte [0x552503]
add di, 3
test al, al
mov word [esp + 0x12], di
mov word [0x54e646], di
mov edi, 0xb
cmovne ecx, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
movzx ecx, al
movzx eax, byte [0x54e63d]
lea ecx, [eax + ecx*2]
movzx eax, byte [0x54e623]
lea ecx, [eax + ecx*2]
lea eax, [ecx*8]
mov dword [esp + 0x68], ecx
sub eax, ecx
movzx ecx, word [eax*2 + 0x4bf51a]
lea ebx, [eax*2 + 0x4bf510]
movzx eax, word [ebx + 6]
mov dword [esp + 0x5c], eax
movzx eax, word [ebx + 8]
mov dword [esp + 0x60], eax
mov eax, edi
sub eax, ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x1c], eax
inc ecx
movzx eax, word [ebx + 0xc]
add eax, ecx
movzx ecx, word [ebx + 4]
movsx ebx, word [esi*2 + 0x54e740]
mov dword [esp + 0x4c], eax
mov eax, dword [esi*4 + 0x54e940]
mov dword [esp + 0x58], ebx
mov bl, byte [0x54e643]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], eax
test eax, eax
je 0x42d126
movzx ecx, bl
add eax, ecx
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
jmp 0x42d128
mov esi, eax
mov dl, byte [0x552508]
test dl, dl
je 0x42d154
mov dword [esp + 0x3c], 0x42c8b0
mov dword [esp + 0x40], 0x42c940
mov dword [esp + 0x44], 0x42ca30
mov dword [esp + 0x48], 0x42cb40
jmp 0x42d174
mov dword [esp + 0x3c], 0x42cc00
mov dword [esp + 0x40], 0x42ce40
mov dword [esp + 0x44], fcn.0042cf50
mov dword [esp + 0x48], 0x42cf60
mov eax, dword [0x54e3b4]
xor ebp, ebp
mov dword [esp + 0x6c], eax
mov eax, dword [0x54e3c4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x34], ebp
cmp dword [esp + 0x4c], ebp
jbe 0x42d398
mov edx, dword [esp + 0x1c]
lea eax, [edx + edx*4]
shl eax, 5
add eax, esi
mov dword [esp + 0x20], eax
test edx, edx
js 0x42d340
mov al, dl
cmp edx, edi
jne 0x42d1bc
mov edi, dword [0x54e3c4]
jmp 0x42d1d5
cmp byte [0x552507], 0
je 0x42d1cf
mov edi, dword [0x54e3bc]
test al, 3
je 0x42d1d5
mov edi, dword [0x54e3b4]
cmp byte [0x552504], 0
jne 0x42d1e7
movzx eax, al
mov al, byte [eax + 0x4bf410]
mov ebx, dword [0x54e3ac]
movzx esi, al
add ebx, 0x20
mov eax, dword [0x527bf8]
mov edx, esi
imul ecx, ecx, 0x9e0
and edx, 0xf
shr esi, 4
sub esi, edx
mov dword [esp + 0x38], 8
lea ebp, [eax + edx*8]
add ebx, ecx
mov dword [esp + 0x24], ebp
lea ecx, [esi*8]
add ecx, ebp
mov dword [esp + 0x28], ecx
lea eax, [ebx + 0x960]
mov dword [esp + 0x2c], eax
mov ecx, ebp
mov esi, ebx
mov ebp, dword [esp + 0x28]
xor edx, edx
sub esi, dword [esp + 0x2c]
add eax, 0x20
sub ebp, dword [esp + 0x24]
cmp byte [ecx + ebp], 0
je 0x42d251
mov dword [ebx + edx*4], edi
mov dword [eax - 0x20], edi
cmp byte [ecx], 0
je 0x42d25b
mov dword [esi + eax], edi
mov dword [eax], edi
inc edx
add eax, 4
inc ecx
cmp edx, 8
jl 0x42d245
mov ebp, dword [esp + 0x24]
add ebx, 0x9e0
mov eax, dword [esp + 0x2c]
add ebp, 0x270
add dword [esp + 0x28], 0x270
add eax, 0x9e0
sub dword [esp + 0x38], 1
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], eax
jne 0x42d230
cmp dword [esp + 0x30], 0
mov esi, 0x527c00
mov edx, dword [esp + 0x1c]
mov ecx, 4
cmovne esi, dword [esp + 0x20]
xor eax, eax
cmp edx, dword [esp + 0x18]
cmove eax, ecx
lea edi, [ecx + 0x19]
mov ebx, dword [esp + eax + 0x6c]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x42d334
add esi, 2
mov ebp, eax
nop word [eax + eax]
movzx eax, byte [esi - 2]
push ebx
push eax
push dword [esp + 0x1c]
push edi
call dword [esp + 0x4c]
movzx eax, byte [esi - 1]
push ebx
push eax
push dword [esp + 0x2c]
push edi
call dword [esp + 0x60]
movzx eax, byte [esi]
push ebx
push eax
push dword [esp + 0x3c]
push edi
call dword [esp + 0x74]
movzx eax, byte [esi + 2]
push ebx
push eax
movzx eax, byte [esi + 1]
push eax
push dword [esp + 0x50]
push edi
call dword [esp + 0x8c]
movzx eax, word [esp + 0x56]
lea esi, [esi + 5]
add esp, 0x44
add edi, eax
sub ebp, 1
jne 0x42d2d0
mov ax, word [0x54e646]
mov edx, dword [esp + 0x1c]
mov word [esp + 0x12], ax
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
inc edx
add eax, 0xa0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
cmp edx, dword [esp + 0x58]
jge 0x42d386
cmp edx, edi
jne 0x42d35e
mov ecx, dword [esp + 0x5c]
jmp 0x42d373
lea ecx, [edi + 1]
cmp edx, ecx
jne 0x42d36b
mov ecx, dword [esp + 0x60]
jmp 0x42d373
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x50]
inc ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x34], ebp
cmp ebp, dword [esp + 0x4c]
jl 0x42d1a6
mov dh, byte [0x54e644]
mov bl, byte [0x54e643]
mov dl, byte [0x552508]
movzx eax, dh
movzx ecx, byte [eax + 0x4bdf17]
movzx eax, dl
lea edx, [ecx + eax*4]
mov ax, word [0x54e4b6]
movsx ecx, ah
movzx esi, al
movzx eax, bl
sub esi, eax
movzx eax, word [esp + 0x12]
movzx edi, byte [ecx + edx*8 + 0x4bf5c8]
imul esi, eax
movzx eax, byte [ecx + edx*8 + 0x4bf608]
mov edx, 9
add esi, eax
movzx eax, word [0x54e568]
imul eax, eax, 0x278
add esi, eax
mov eax, dword [0x54e3ac]
lea esi, [eax + esi*4]
nop
xor ecx, ecx
test edi, edi
je 0x42d417
nop word [eax + eax]
movzx eax, byte [esi + ecx*4 + 3]
xor eax, 4
mov eax, dword [eax*4 + 0x54e3b0]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, edi
jl 0x42d400
add esi, 0x9e0
sub edx, 1
jne 0x42d3f0
mov ax, word [0x550b46]
cmp word [0x550b44], ax
je 0x42d445
push dword [esp + 0x64]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
call fcn.0042c660
add esp, 4
cmp byte [0x552509], 0
je 0x42d5b9
mov eax, dword [esp + 0x68]
movzx ebx, byte [0x54e643]
mov dl, byte [0x54e644]
inc ebx
mov ax, word [eax*8 + 0x4bf650]
add ax, 2
movzx ecx, ax
mov dword [esp + 0x60], ecx
movzx ecx, ax
mov dword [esp + 0x4c], ecx
movzx ecx, ax
mov dword [esp + 0x34], ecx
test dl, dl
je 0x42d5b9
lea eax, [ecx - 1]
mov edi, 0x1d
movzx eax, ax
mov dword [esp + 0x44], eax
lea eax, [ecx + 1]
movzx eax, ax
mov dword [esp + 0x40], eax
movzx eax, dl
mov dword [esp + 0x3c], eax
nop dword [eax]
movzx ecx, di
lea eax, [ecx + 2]
movzx edx, ax
lea eax, [ecx + 1]
mov dword [esp + 0x64], edx
movzx ebp, ax
cmp ebx, 0xa
jge 0x42d4db
lea eax, [ebx + 0x30]
movzx ecx, di
mov byte [esp + 0x50], al
movzx eax, dx
mov dword [esp + 0x48], eax
jmp 0x42d556
movzx eax, byte [ebx + 0x4bf3b0]
mov ecx, edi
mov edx, dword [esp + 0x34]
mov byte [esp + 0x68], al
mov esi, dword [esp + 0x68]
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x6c]
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x54]
mov ecx, ebp
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x58]
mov ecx, ebp
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x54]
mov ecx, ebp
push esi
push 0xc
call fcn.00410e80
lea eax, [edi + 0xa]
add esp, 0x28
movzx ebp, ax
movzx eax, byte [ebx + str.012345678901234567890123456789012]
mov byte [esp + 0x50], al
lea eax, [edi + 0xb]
movzx ecx, ax
add eax, 0xfffffffe
mov dword [esp + 0x48], ecx
movzx ecx, ax
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x54]
mov ecx, ebp
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x58]
mov ecx, ebp
push esi
push 0
call fcn.00410e80
mov edx, dword [esp + 0x80]
mov ecx, ebp
push esi
push 0xc
call fcn.00410e80
add di, word [0x54e646]
add esp, 0x28
inc ebx
sub dword [esp + 0x3c], 1
jne 0x42d4b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret