Function at 0x42d100
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov esi, edx
mov dword [esp + 0x1c], ecx
call fcn.0042c1a0
mov dh, byte [0x54e644]
movzx eax, byte [0x54e645]
movzx ecx, dh
cmp ecx, eax
mov dword [esp + 0x5c], ecx
cmovbe eax, ecx
mov ecx, 8
shr eax, 1
mov di, word [eax*2 + 0x4bf30e]
mov al, byte [0x552503]
add di, 3
test al, al
mov word [esp + 0x16], di
mov word [0x54e646], di
mov edi, 0xb
cmovne ecx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x54], 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]
sub eax, ecx
movzx ecx, word [eax*2 + 0x4bf48a]
lea ebx, [eax*2 + 0x4bf480]
movzx eax, word [ebx + 6]
mov dword [esp + 0x64], eax
movzx eax, word [ebx + 8]
mov dword [esp + 0x68], eax
mov eax, edi
sub eax, ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x20], 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 + 0x50], eax
mov eax, dword [esi*4 + 0x54e940]
mov dword [esp + 0x60], ebx
mov bl, byte [0x54e643]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], eax
test eax, eax
je 0x42d1f2
movzx ecx, bl
add eax, ecx
lea esi, [eax + ecx*4]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], esi
jmp 0x42d1f4
mov esi, eax
mov dl, byte [0x552508]
test dl, dl
je 0x42d220
mov dword [esp + 0x40], 0x42c980
mov dword [esp + 0x44], 0x42ca10
mov dword [esp + 0x48], 0x42cb00
mov dword [esp + 0x4c], 0x42cc10
jmp 0x42d240
mov dword [esp + 0x40], 0x42ccd0
mov dword [esp + 0x44], 0x42cf10
mov dword [esp + 0x48], fcn.0042d020
mov dword [esp + 0x4c], 0x42d030
mov eax, dword [0x54e3b4]
xor ebp, ebp
mov dword [esp + 0x6c], eax
mov eax, dword [0x54e3c4]
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], ebp
cmp dword [esp + 0x50], ebp
jbe 0x42d468
mov edx, dword [esp + 0x20]
lea eax, [edx + edx*4]
shl eax, 5
add eax, esi
mov dword [esp + 0x24], eax
test edx, edx
js 0x42d410
mov al, dl
cmp edx, edi
jne 0x42d288
mov edi, dword [0x54e3c4]
jmp 0x42d2a1
cmp byte [0x552507], 0
je 0x42d29b
mov edi, dword [0x54e3bc]
test al, 3
je 0x42d2a1
mov edi, dword [0x54e3b4]
cmp byte [0x552504], 0
jne 0x42d2b3
movzx eax, al
mov al, byte [eax + 0x4bf380]
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 + 0x3c], 8
lea ebp, [eax + edx*8]
add ebx, ecx
mov dword [esp + 0x28], ebp
lea ecx, [esi*8]
add ecx, ebp
mov dword [esp + 0x2c], ecx
lea eax, [ebx + 0x960]
mov dword [esp + 0x30], eax
nop dword [eax]
mov ecx, ebp
mov esi, ebx
mov ebp, dword [esp + 0x2c]
xor edx, edx
sub esi, dword [esp + 0x30]
add eax, 0x20
sub ebp, dword [esp + 0x28]
cmp byte [ecx + ebp], 0
je 0x42d321
mov dword [ebx + edx*4], edi
mov dword [eax - 0x20], edi
cmp byte [ecx], 0
je 0x42d32b
mov dword [esi + eax], edi
mov dword [eax], edi
inc edx
add eax, 4
inc ecx
cmp edx, 8
jl 0x42d315
mov ebp, dword [esp + 0x28]
add ebx, 0x9e0
mov eax, dword [esp + 0x30]
add ebp, 0x270
add dword [esp + 0x2c], 0x270
add eax, 0x9e0
sub dword [esp + 0x3c], 1
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], eax
jne 0x42d300
cmp dword [esp + 0x34], 0
mov esi, 0x527c00
mov edx, dword [esp + 0x20]
mov ecx, 4
cmovne esi, dword [esp + 0x24]
xor eax, eax
cmp edx, dword [esp + 0x1c]
cmove eax, ecx
lea edi, [ecx + 0x19]
mov ebx, dword [esp + eax + 0x6c]
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x42d404
add esi, 2
mov ebp, eax
nop word [eax + eax]
movzx eax, byte [esi - 2]
push ebx
push eax
push dword [esp + 0x20]
push edi
call dword [esp + 0x50]
movzx eax, byte [esi - 1]
push ebx
push eax
push dword [esp + 0x30]
push edi
call dword [esp + 0x64]
movzx eax, byte [esi]
push ebx
push eax
push dword [esp + 0x40]
push edi
call dword [esp + 0x78]
movzx eax, byte [esi + 2]
push ebx
push eax
movzx eax, byte [esi + 1]
push eax
push dword [esp + 0x54]
push edi
call dword [esp + 0x90]
movzx eax, word [esp + 0x5a]
lea esi, [esi + 5]
add esp, 0x44
add edi, eax
sub ebp, 1
jne 0x42d3a0
mov ax, word [0x54e646]
mov edx, dword [esp + 0x20]
mov word [esp + 0x16], ax
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
inc edx
add eax, 0xa0
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
cmp edx, dword [esp + 0x60]
jge 0x42d456
cmp edx, edi
jne 0x42d42e
mov ecx, dword [esp + 0x64]
jmp 0x42d443
lea ecx, [edi + 1]
cmp edx, ecx
jne 0x42d43b
mov ecx, dword [esp + 0x68]
jmp 0x42d443
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x54]
inc ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x38], ebp
cmp ebp, dword [esp + 0x50]
jl 0x42d272
mov dh, byte [0x54e644]
mov bl, byte [0x54e643]
mov dl, byte [0x552508]
movzx eax, dh
movzx ecx, byte [eax + 0x4bde87]
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 + 0x16]
movzx edi, byte [ecx + edx*8 + 0x4bf538]
imul esi, eax
movzx eax, byte [ecx + edx*8 + 0x4bf578]
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 0x42d4e7
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 0x42d4d0
add esi, 0x9e0
sub edx, 1
jne 0x42d4c0
mov ax, word [0x550b46]
mov esi, dword [esp + 0x58]
cmp word [0x550b44], ax
je 0x42d516
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
push esi
call fcn.0042c730
add esp, 4
cmp byte [0x552509], 0
je 0x42d679
movzx eax, word [esi + 4]
movzx ebx, byte [0x54e643]
mov ecx, eax
mov dl, byte [0x54e644]
inc ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x38], ecx
test dl, dl
je 0x42d679
lea eax, [ecx - 1]
mov edi, 0x1d
movzx eax, ax
mov dword [esp + 0x4c], eax
lea eax, [ecx + 1]
movzx eax, ax
mov dword [esp + 0x48], eax
movzx eax, dl
mov dword [esp + 0x44], eax
nop dword [eax + 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 0x42d59b
lea eax, [ebx + 0x30]
movzx ecx, di
mov byte [esp + 0x58], al
movzx eax, dx
mov dword [esp + 0x50], eax
jmp 0x42d616
movzx eax, byte [ebx + 0x4bf320]
mov ecx, edi
mov edx, dword [esp + 0x38]
mov byte [esp + 0x68], al
mov esi, dword [esp + 0x68]
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x5c]
mov ecx, ebp
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x60]
mov ecx, ebp
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x58]
mov ecx, ebp
push esi
push 0xc
call fcn.00410d00
lea eax, [edi + 0xa]
add esp, 0x28
movzx ebp, ax
movzx eax, byte [ebx + str.012345678901234567890123456789012]
mov byte [esp + 0x58], al
lea eax, [edi + 0xb]
movzx ecx, ax
add eax, 0xfffffffe
mov dword [esp + 0x50], ecx
movzx ecx, ax
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x5c]
mov ecx, ebp
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x60]
mov ecx, ebp
push esi
push 0
call fcn.00410d00
mov edx, dword [esp + 0x80]
mov ecx, ebp
push esi
push 0xc
call fcn.00410d00
add di, word [0x54e646]
add esp, 0x28
inc ebx
sub dword [esp + 0x44], 1
jne 0x42d570
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret