Function at 0x103f4da8
Capabilities:
Encrypt data using rc4 prga
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [ebp + 0xc]
test ebx, 0x1a335cd2
shl dx, 9
mov edx, dword [ebp - 0xc]
inc esi
cmp eax, esp
mov eax, dword [ebp + 8]
bts si, si
lea esi, [ebx + eax]
ror ax, cl
mov eax, dword [ebp + 0x10]
cmp ah, 0x8e
push eax
btc eax, 0x42
btr ax, 0xa8
sar esi, 1
mov eax, dword [edx + esi*4]
test di, cx
add eax, edi
call fcn.103de9e8
lea esp, [esp + 4]
cmc
cmp eax, 0xffffffff
je 0x103d3ce0
test eax, eax
je 0x103cdb1f
cmp eax, 1
jne 0x103d3ce5
inc esi
mov dword [ebp + 8], esi
jmp 0x103d3ce5
mov ecx, dword [ebp - 4]
xchg edx, eax
bswap edx
mov edx, dword [ecx + edi + 0x24]
mov al, cl
movzx cx, dl
lea eax, [edx + esi*2]
setno dh
movzx ecx, word [eax + edi]
mov dh, 0xb3
movsx dx, ah
cdq
lea edx, [ebx + 1]
mov dword [ebp - 8], ecx
mov dword [ebp + 8], edx
jmp 0x103d3ce5
pop esi
pop ebx
bswap ax
cbw
mov al, 0xff
lea eax, [ecx + edi]
mov di, bp
cmove edi, eax
pop edi
mov esp, ebp
mov ebp, 0x5db5d30
movsx ebp, sp
pop ebp
ret
mov ebx, dword [eax + edi + 0x18]
stc
test ebp, eax
test ebx, ebx
je 0x103d3d04
mov edx, dword [eax + edi + 0x20]
dec ebx
add edx, edi
test ah, dl
cmp ecx, esi
mov dword [ebp + 8], 0
test bx, 0x209c
cmc
mov dword [ebp - 0xc], edx
test ebx, ebx
jl 0x103d3d04
jmp 0x103cc84f
lea ebx, [esi - 1]
cmp edx, ebp
cmp dword [ebp + 8], ebx
jle 0x103cc83c
mov eax, dword [ebp - 4]
sbb esi, 0x122b486c
btr si, 0x3a
btc si, si
mov esi, dword [ebp - 8]
stc
cmp esi, dword [eax + edi + 0x14]
jae 0x103d3d81
mov ecx, dword [eax + edi + 0x1c]
btc dx, 0x2a
lea edx, [ecx + esi*4]
mov ecx, dword [edx + edi]
test ecx, ecx
je 0x103d3d81
cmp ecx, eax
jb 0x103cfe9b
mov edx, dword [ebp - 0x10]
clc
cmp ebx, 0x4f71ab3
add edx, eax
cmp bp, 0x6e85
cmp cx, di
cmp ecx, edx
jae 0x103cfe9b
lea eax, [ecx + edi]
bts si, bp
mov cl, byte [eax]
mov esi, eax
stc
clc
test cl, cl
je 0x103d3d81
mov edi, edi
test dx, dx
test sp, 0x491b
cmp cl, 0x2e
je 0x103f8bb2
mov cl, byte [esi + 1]
inc esi
clc
cmc
cmp ecx, esp
test cl, cl
jne 0x103d3d68
pop esi
pop ebx
not di
adc di, 0x5882
sub eax, eax
pop edi
mov esp, ebp
cmovg bp, dx
pop ebp
ret
push ebp
mov ebp, esp
cmp bl, 0x1e
sub esp, 0x114
cmc
push edi
cmc
btr edi, 0x8e
mov edi, dword [ebp + 8]
test edi, edi
je 0x103f4de9
mov ecx, dword [ebp + 0xc]
cmp di, sp
cmc
test ecx, ecx
je 0x103f4de9
mov eax, 0x5a4d
test cl, 0x24
test ch, dh
clc
cmp word [edi], ax
je 0x1040382c
sub eax, eax
mov di, 0x86e
pop edi
mov esp, ebp
xchg ebp, ebp
bswap ebp
pop ebp
ret
mov ebx, esi
test sp, 0x927
sub ebx, eax
test ebp, edx
cmp ebx, 0x104
jae 0x103d3d81
sub ecx, ecx
test edi, 0x7e2a33f3
test ebx, ebx
jbe 0x103f8c04
lea edi, [ebp - 0x114]
xor dl, cl
sub edi, eax
shr dl, 0x28
mov dl, byte [eax]
test di, ax
test dl, dl
je 0x103f8c04
mov byte [edi + eax], dl
inc ecx
inc eax
stc
test si, bp
cmp ecx, ebx
jb 0x103f8be6
lea eax, [ebp - 0x114]
push eax
not eax
mov byte [ebp + ecx - 0x114], 0
mov eax, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call eax
mov edi, eax
cmp bl, 0x6c
test edi, edi
jne 0x103f8c4e
lea ecx, [ebp - 0x114]
cmovg ax, si
cwde
push ecx
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryA_1]
call eax
mov edi, eax
test di, bp
test di, 0x2a2f
test edi, edi
je 0x103d3d81
cmp byte [esi + 1], 0x23
seta cl
mov cx, bp
movzx cx, dl
lea ecx, [esi + 1]
je 0x103fc19e
push 0
push ecx
push edi
call fcn.103f4da8
add esp, 0xc
pop esi
pop ebx
cmovl edi, ebx
pop edi
mov esp, ebp
movzx ebp, cx
not ebp
pop ebp
ret
mov cl, byte [esi + 2]
add esi, 2
xor edx, edx
test cl, cl
je 0x103fc1e5
mov al, cl
cmp ebp, 0x50754ef4
cmc
sub al, 0x30
inc esi
stc
cmp dx, di
test ebp, ebp
cmp al, 9
ja 0x103fc1e5
movsx eax, cl
sbb cl, 0x96
mov cl, byte [esi]
lea edx, [edx + edx*4]
lea edx, [eax + edx*2 - 0x30]
cmp ecx, 0x187d515f
test cl, cl
jne 0x103fc1ae
push 0
push edx
push edi
call fcn.103f4da8
add esp, 0xc
movsx edi, cx
pop esi
mov edi, 0x4d5033c0
not bl
movzx ebx, bp
pop ebx
bswap edi
pop edi
mov esp, ebp
mov ebp, 0x56f6c3d
movsx ebp, si
pop ebp
ret
mov edx, dword [edi + 0x3c]
add edx, edi
cmp si, bx
stc
cmp dword [edx], 0x4550
jne 0x103f4de9
mov eax, dword [edx + 0x78]
cmc
test di, 0x443f
mov dword [ebp - 4], eax
cmp edi, 0x33637b1b
test eax, eax
je 0x103f4de9
mov edx, dword [edx + 0x7c]
push ebx
cmp di, bp
clc
push esi
test ch, 0x28
cmc
or esi, 0xffffffff
mov dword [ebp - 0x10], edx
cmp edx, 0x26351092
test ebx, 0x51647faa
mov dword [ebp - 8], esi
cmp ecx, 0xffff
ja 0x103cfec6
sub ecx, dword [eax + edi + 0x10]
clc
stc
cmp ecx, dword [eax + edi + 0x14]
jae 0x103d3d81
mov edx, dword [eax + edi + 0x1c]
test esp, ebp
lea ecx, [edx + ecx*4]
mov ecx, dword [ecx + edi]
test ebp, 0x40b552f5
test ecx, ecx
jne 0x103d3d25
pop esi
bsf di, ax
pop ebx
btr di, 0xd5
bts edi, edx
sub eax, eax
movsx edi, sp
not di
mov edi, eax
pop edi
mov esp, ebp
bswap bp
pop ebp
ret