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

Disassembly:
sub esp, 0x578
push ebx
push ebp
push esi
mov esi, dword [esp + 0x58c]
push edi
mov edi, dword [esp + 0x58c]
xor ebx, ebx
mov ecx, edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov edx, esi
mov eax, dword [ecx]
add ecx, 4
mov ebp, dword [esp + eax*4 + 0x4c]
lea eax, [esp + eax*4 + 0x4c]
inc ebp
dec edx
mov dword [eax], ebp
jne 0x47a207
cmp dword [esp + 0x4c], esi
jne 0x47a23f
mov ecx, dword [esp + 0x5a0]
mov edx, dword [esp + 0x5a4]
xor eax, eax
mov dword [ecx], ebx
mov dword [edx], ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x578
ret
mov esi, dword [esp + 0x5a4]
mov ecx, 1
lea eax, [esp + 0x50]
mov ebp, dword [esi]
mov dword [esp + 0x14], ebp
cmp dword [eax], ebx
jne 0x47a262
inc ecx
add eax, 4
cmp ecx, 0xf
jbe 0x47a255
cmp ebp, ecx
mov dword [esp + 0x10], ecx
jae 0x47a270
mov dword [esp + 0x14], ecx
mov ebp, ecx
mov eax, 0xf
lea edx, [esp + 0x88]
cmp dword [edx], ebx
jne 0x47a288
dec eax
sub edx, 4
cmp eax, ebx
jne 0x47a27c
cmp ebp, eax
mov dword [esp + 0x2c], eax
jbe 0x47a296
mov dword [esp + 0x14], eax
mov ebp, eax
mov dword [esi], ebp
mov esi, 1
shl esi, cl
cmp ecx, eax
jae 0x47a2b5
lea edx, [esp + ecx*4 + 0x4c]
sub esi, dword [edx]
js 0x47a2c1
inc ecx
add edx, 4
shl esi, 1
cmp ecx, eax
jb 0x47a2a7
mov ecx, dword [esp + eax*4 + 0x4c]
sub esi, ecx
mov dword [esp + 0x44], esi
jns 0x47a2d1
mov eax, 0xfffffffd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x578
ret
add ecx, esi
mov dword [esp + 0x90], ebx
mov dword [esp + eax*4 + 0x4c], ecx
xor ecx, ecx
dec eax
je 0x47a2f6
xor edx, edx
add ecx, dword [esp + edx + 0x50]
add edx, 4
dec eax
mov dword [esp + edx + 0x90], ecx
jne 0x47a2e5
xor edx, edx
mov eax, dword [edi]
add edi, 4
cmp eax, ebx
je 0x47a319
mov ecx, dword [esp + eax*4 + 0x8c]
lea eax, [esp + eax*4 + 0x8c]
mov dword [esp + ecx*4 + 0x108], edx
inc ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x590]
inc edx
cmp edx, eax
jb 0x47a2f8
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x108]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
mov eax, ebp
xor edi, edi
neg eax
cmp edx, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x8c], edi
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xcc], edi
mov dword [esp + 0x40], edi
jg 0x47a607
lea ecx, [esp + edx*4 + 0x4c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
mov esi, ecx
dec ecx
test esi, esi
mov dword [esp + 0x34], ecx
je 0x47a5e7
jmp 0x47a38b
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
lea esi, [eax + ebp]
cmp edx, esi
jle 0x47a4b3
inc ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x48], ecx
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
add eax, ebp
sub edx, eax
inc ecx
add edi, ebp
cmp edx, ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edi
jbe 0x47a3c4
mov edx, ebp
mov ebx, dword [esp + 0x10]
sub ebx, eax
mov eax, 1
mov ecx, ebx
shl eax, cl
cmp eax, dword [esp + 0x48]
jbe 0x47a404
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
or ecx, 0xffffffff
sub ecx, edi
add eax, ecx
cmp ebx, edx
jae 0x47a404
inc ebx
cmp ebx, edx
jae 0x47a404
mov ecx, dword [esi + 4]
add esi, 4
shl eax, 1
cmp eax, ecx
jbe 0x47a404
sub eax, ecx
inc ebx
cmp ebx, edx
jb 0x47a3f1
mov esi, dword [esp + 0x5a8]
mov edi, 1
mov ecx, ebx
push 8
mov eax, dword [esi + 0x28]
shl edi, cl
lea edx, [edi + 1]
push edx
push eax
call dword [esi + 0x20]
add esp, 0xc
test eax, eax
je 0x47a62f
mov edx, dword [esp + 0x5a0]
lea ecx, [eax + 8]
add eax, 4
mov dword [esp + 0x40], ecx
mov dword [edx], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5a0], eax
mov dword [eax], 0
lea esi, [edx*4]
test edx, edx
lea eax, [esp + esi + 0xcc]
mov dword [eax], ecx
je 0x47a497
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov dword [esp + esi + 0x8c], ebp
mov esi, ecx
mov ecx, dword [esp + 0x3c]
mov eax, dword [eax - 4]
sub ecx, edx
mov byte [esp + 0x21], dl
shr ebp, cl
mov byte [esp + 0x20], bl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], esi
mov dword [eax + ebp*8], ecx
mov dword [eax + ebp*8 + 4], esi
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp eax, edx
mov eax, dword [esp + 0x3c]
jg 0x47a39f
mov ebx, dword [esp + 0x28]
mov cl, byte [esp + 0x10]
mov edx, dword [esp + 0x590]
sub cl, al
mov byte [esp + 0x21], cl
mov ecx, dword [esp + 0x1c]
lea edx, [esp + edx*4 + 0x108]
cmp ecx, edx
jb 0x47a4da
mov byte [esp + 0x20], 0xc0
jmp 0x47a52a
mov ecx, dword [ecx]
mov edx, dword [esp + 0x594]
cmp ecx, edx
jae 0x47a4fb
cmp ecx, 0x100
sbb edx, edx
and edx, 0xffffffa0
add edx, 0x60
mov byte [esp + 0x20], dl
jmp 0x47a51b
sub ecx, edx
mov edx, dword [esp + 0x59c]
shl ecx, 2
mov dl, byte [edx + ecx]
add dl, 0x50
mov byte [esp + 0x20], dl
mov edx, dword [esp + 0x598]
mov ecx, dword [edx + ecx]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
add ecx, 4
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov esi, 1
sub ecx, eax
mov edx, ebx
shl esi, cl
mov ecx, eax
shr edx, cl
cmp edx, edi
jae 0x47a56c
mov ecx, dword [esp + 0x40]
lea ebx, [esi*8]
lea ecx, [ecx + edx*8]
mov ebp, dword [esp + 0x20]
add edx, esi
mov dword [ecx], ebp
mov ebp, dword [esp + 0x24]
mov dword [ecx + 4], ebp
add ecx, ebx
cmp edx, edi
jb 0x47a54f
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
lea ecx, [edx - 1]
mov edx, 1
shl edx, cl
test ebx, edx
je 0x47a586
xor ebx, edx
shr edx, 1
test ebx, edx
jne 0x47a57e
mov ecx, dword [esp + 0x18]
xor ebx, edx
mov esi, 1
mov dword [esp + 0x28], ebx
lea edx, [esp + ecx*4 + 0x8c]
mov ecx, eax
shl esi, cl
mov ecx, dword [edx]
dec esi
and esi, ebx
cmp esi, ecx
je 0x47a5ca
mov esi, dword [esp + 0x18]
sub eax, ebp
dec esi
mov ecx, eax
mov dword [esp + 0x18], esi
mov esi, 1
shl esi, cl
mov ecx, dword [edx - 4]
sub edx, 4
dec esi
and esi, ebx
cmp esi, ecx
jne 0x47a5a9
mov ecx, dword [esp + 0x34]
mov edx, ecx
dec ecx
test edx, edx
mov dword [esp + 0x34], ecx
jne 0x47a383
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
jmp 0x47a5eb
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
inc edx
add ecx, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
jle 0x47a36c
test esi, esi
je 0x47a622
cmp dword [esp + 0x2c], 1
je 0x47a622
mov eax, 0xfffffffb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x578
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x578
ret
mov eax, dword [esp + 0x18]
test eax, eax
je 0x47a66d
mov ecx, dword [esp + 0xcc]
xor eax, eax
test ecx, ecx
je 0x47a652
mov edx, dword [ecx - 4]
mov dword [ecx - 4], eax
mov eax, ecx
mov ecx, edx
test edx, edx
jne 0x47a644
test eax, eax
je 0x47a66d
mov edi, dword [eax - 4]
sub eax, 8
push eax
mov eax, dword [esi + 0x28]
push eax
call dword [esi + 0x24]
add esp, 8
mov eax, edi
test edi, edi
jne 0x47a656
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x578
ret