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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
mov eax, dword fs:[0]
mov ecx, dword [ebp + 8]
push 0x4ccba0
push eax
mov eax, dword [ebp + 0x20]
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
mov esi, dword [ebp + 0x1c]
push edi
xor edi, edi
mov byte [ecx], 0
cmp dword [0x4f3cb0], eax
jne 0x47cc23
cmp dword [0x4f3cac], esi
je 0x47d237
cmp dword [0x4f3cc0], eax
jne 0x47cc37
cmp dword [0x4f3cbc], esi
je 0x47d237
cmp dword [0x4f3cc8], eax
jne 0x47cc4b
cmp dword [0x4f3cc4], esi
je 0x47d237
cmp dword [ebp + 0x14], 1
jl 0x47d237
mov eax, dword [ebp + 0xc]
call fcn.0047d340
test al, al
jne 0x47d237
mov ecx, 0x4f33d0
call fcn.0046a880
test al, al
jne 0x47d237
call fcn.004137a0
xor edx, edx
mov ecx, 0x5a
div ecx
push 0x190
mov esi, 0xc8
push edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], esi
movzx edx, dx
mov dword [esp + 0x20], edx
call fcn.004bb6d7
add esp, 8
cmp eax, edi
jne 0x47ccbe
push edi
call fcn.004ba14c
add esp, 4
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], edi
jmp 0x47ccc9
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edi
mov byte [eax], 0
mov dword [esp + 0x74], edi
push 0x190
push edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x34], esi
call fcn.004bb6d7
add esp, 8
cmp eax, edi
jne 0x47ccf8
push edi
call fcn.004ba14c
add esp, 4
xor ebx, ebx
mov dword [esp + 0x2c], edi
jmp 0x47cd01
mov ebx, eax
mov dword [esp + 0x34], edi
mov byte [eax], 0
mov dword [esp + 0x30], ebx
push 1
push edi
push 0x4e3f78
lea esi, [esp + 0x2c]
mov byte [esp + 0x80], 1
call fcn.00414160
push 1
push edi
push 0x4d9a10
call fcn.00414160
movzx eax, word [esp + 0x18]
mov dword [esp + 0x14], eax
and eax, 0x80000001
jns 0x47cd40
dec eax
or eax, 0xfffffffe
inc eax
je 0x47cea4
xor edi, edi
cmp dword [ebp + 0x14], edi
jle 0x47ce00
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + edi*4]
mov cl, byte [esi]
xor eax, eax
test cl, cl
je 0x47cd82
mov bl, byte [0x4ec3d2]
mov edx, dword [ebp + 0x18]
cmp cl, bl
jne 0x47cd79
mov ecx, dword [edx + edi*4]
cmp byte [eax + ecx], 0
jne 0x47ce4c
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x47cd68
push 0xa
push esi
call fcn.004bb121
add esp, 8
test eax, eax
je 0x47cdd6
push 3
push esi
call fcn.004bb121
add esp, 8
test eax, eax
jne 0x47d2d9
push esi
lea eax, [esp + 0x30]
call fcn.00413c90
mov esi, eax
test esi, esi
je 0x47d2d9
push 0
push 0xffffffffffffffff
push 1
push 0x4ec3f4
push 0x4d9a10
push esi
xor eax, eax
or ecx, 0xffffffff
call fcn.004a36d0
add esp, 0x18
push 1
push 0
push esi
lea esi, [esp + 0x2c]
call fcn.00414160
push 1
push 0
push 0x4d9a10
call fcn.00414160
inc edi
cmp edi, dword [ebp + 0x14]
jl 0x47cd51
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
test esi, esi
je 0x47cf98
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x47ce11
sub eax, edx
cmp eax, 0xccd
jb 0x47cf98
test ebx, ebx
je 0x47ce42
mov eax, dword [esp + 0x2c]
push eax
push 0
push ebx
call fcn.004c16a0
add esp, 0xc
push ebx
call fcn.004ba14c
add esp, 4
mov ecx, dword [esp + 0x20]
push ecx
jmp 0x47d30b
mov esi, dword [esp + 0x30]
test esi, esi
je 0x47ce6d
mov edx, dword [esp + 0x2c]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov esi, dword [esp + 0x24]
test esi, esi
je 0x47d237
mov eax, dword [esp + 0x20]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x14]
dec edi
cmp edi, 0xffffffff
jle 0x47ce00
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + edi*4]
mov cl, byte [esi]
xor eax, eax
test cl, cl
je 0x47cee2
mov bl, byte [0x4ec3d2]
mov edx, dword [ebp + 0x18]
cmp cl, bl
jne 0x47ced9
mov ecx, dword [edx + edi*4]
cmp byte [eax + ecx], 0
jne 0x47cf61
mov cl, byte [eax + esi + 1]
inc eax
test cl, cl
jne 0x47cec8
push 0xa
push esi
call fcn.004bb121
add esp, 8
test eax, eax
je 0x47cf36
push 3
push esi
call fcn.004bb121
add esp, 8
test eax, eax
jne 0x47d2d9
push esi
lea eax, [esp + 0x30]
call fcn.00413c90
mov esi, eax
test esi, esi
je 0x47d2d9
push 0
push 0xffffffffffffffff
push 1
push 0x4ec3f4
push 0x4d9a10
push esi
xor eax, eax
or ecx, 0xffffffff
call fcn.004a36d0
add esp, 0x18
push 1
push 0
push esi
lea esi, [esp + 0x2c]
call fcn.00414160
push 1
push 0
push 0x4d9a10
call fcn.00414160
dec edi
cmp edi, 0xffffffff
jg 0x47ceb1
jmp 0x47cdfc
mov esi, dword [esp + 0x30]
test esi, esi
je 0x47cf82
mov edx, dword [esp + 0x2c]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov esi, dword [esp + 0x24]
test esi, esi
je 0x47d237
mov eax, dword [esp + 0x20]
push eax
jmp 0x47d30b
mov eax, dword [0x4f33d0]
cmp eax, 2
jne 0x47cfb6
mov eax, dword [esp + 0x18]
lea edx, [eax*4]
or edx, eax
mov byte [esp + 0x13], 0x80
jmp 0x47cfe6
cmp eax, 1
mov eax, dword [esp + 0x18]
jne 0x47cfd4
lea ecx, [eax*4]
or ecx, eax
add ecx, ecx
lea eax, [ecx + ecx]
mov byte [esp + 0x13], 0x40
jmp 0x47cfe9
lea edx, [eax*4]
or edx, eax
add edx, edx
add edx, edx
mov byte [esp + 0x13], 0
lea eax, [edx + edx]
xor eax, dword [ebp + 0xc]
and eax, 0xfff
test byte [0x4f495c], 1
jne 0x47d00d
mov ecx, dword [0x4f33d4]
or dword [0x4f495c], 1
mov dword [0x4f4960], ecx
mov ecx, dword [ebp + 0x14]
mov ebx, dword [0x4f33d8]
mov esi, dword [0x4f4960]
movzx edx, ax
mov eax, 0xfff
sub eax, edx
mov edx, dword [esp + 0x14]
push eax
push ecx
push 0x4e3f78
add edx, 0x20
push edx
push str._c_s_01x_03x
mov edi, ebx
mov dword [esp + 0x30], esi
call fcn.004a2f10
xor esi, esi
add esp, 0x14
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
push 0x4e3c9c
mov byte [esp + 0x78], 5
call fcn.0049be50
add esp, 4
push eax
push ebx
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x40]
call fcn.00475fa0
add esp, 8
test al, al
je 0x47d249
cmp dword [0x4ec3e8], 0x3f
jge 0x47d249
mov edi, dword [esp + 0x14]
inc edi
lea esi, [esp + 0x44]
call fcn.00413990
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x3c]
test esi, esi
je 0x47d253
mov al, byte [0x4ec3e8]
mov ecx, dword [esp + 0x14]
and al, 0x3f
or al, byte [esp + 0x13]
mov byte [esi], al
xor eax, eax
test ecx, ecx
je 0x47d0f2
mov dl, byte [edi + eax]
xor byte [esi], dl
inc eax
cmp eax, ecx
jb 0x47d0e8
test edi, edi
je 0x47d253
test ecx, ecx
je 0x47d253
lea eax, [ecx + 1]
cmp dword [esp + 0x44], eax
jb 0x47d253
mov eax, dword [esp + 0x14]
push eax
push edi
inc esi
push esi
call fcn.004c3030
add esp, 0xc
lea edi, [esp + 0x44]
lea esi, [esp + 0x38]
call fcn.00413a70
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
push edi
lea ecx, [esp + 0x60]
mov dword [esp + 0x18], eax
call fcn.00478390
add esp, 4
test eax, eax
jne 0x47d24f
push 0x4e3c9c
call fcn.0049be50
mov ecx, dword [esp + 0x28]
add esp, 4
push eax
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, esi
call fcn.00475a10
mov edi, dword [esp + 0x48]
add esp, 0xc
test al, al
je 0x47d24f
mov esi, dword [esp + 0x14]
xor eax, eax
test esi, esi
je 0x47d191
mov cl, byte [esp + 0x18]
xor byte [edi + eax], cl
inc eax
cmp eax, esi
jb 0x47d185
push esi
lea edx, [esp + 0x54]
push edi
push edx
call fcn.00478690
add esp, 0xc
test eax, eax
jne 0x47d24f
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x1c]
push eax
push ecx
push str._s_s
mov edi, ebx
call fcn.004a2f10
mov eax, ebx
add esp, 0xc
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x47d1d0
sub eax, edx
add dword [0x4f3ccc], eax
cmp eax, 0x4001
jae 0x47d201
mov edx, dword [0x4f3ca8]
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
push ebx
push edx
push eax
push ecx
call fcn.0047c1c0
mov edx, dword [ebp + 8]
mov byte [edx], 1
lea ecx, [esp + 0x44]
call fcn.004138f0
lea ecx, [esp + 0x38]
call fcn.004138f0
lea ecx, [esp + 0x50]
call fcn.004138f0
lea ecx, [esp + 0x5c]
call fcn.004138f0
lea ecx, [esp + 0x2c]
call fcn.004138f0
lea ecx, [esp + 0x20]
call fcn.004138f0
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x3c]
jmp 0x47d253
mov esi, dword [esp + 0x48]
mov dword [0x4f33f8], 2
test esi, esi
je 0x47d27a
mov eax, dword [esp + 0x44]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
test edi, edi
je 0x47d297
mov ecx, dword [esp + 0x38]
push ecx
push 0
push edi
call fcn.004c16a0
add esp, 0xc
push edi
call fcn.004ba14c
add esp, 4
mov esi, dword [esp + 0x54]
test esi, esi
je 0x47d2b8
mov edx, dword [esp + 0x50]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov esi, dword [esp + 0x60]
test esi, esi
je 0x47d2d9
mov eax, dword [esp + 0x5c]
push eax
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov esi, dword [esp + 0x30]
test esi, esi
je 0x47d2fa
mov ecx, dword [esp + 0x2c]
push ecx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
add esp, 4
mov esi, dword [esp + 0x24]
test esi, esi
je 0x47d237
mov edx, dword [esp + 0x20]
push edx
push 0
push esi
call fcn.004c16a0
add esp, 0xc
push esi
call fcn.004ba14c
mov ecx, dword [esp + 0x70]
add esp, 4
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret