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

Disassembly:
sub esp, 0x104
push ebx
push ebp
push esi
push edi
mov edi, edx
mov dword [esp + 0x20], ecx
xor edx, edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], edx
mov esi, edi
mov eax, dword [ecx]
add ecx, 4
mov ebp, dword [esp + eax*4 + 0x58]
lea eax, [esp + eax*4 + 0x58]
inc ebp
dec esi
mov dword [eax], ebp
jne 0x4ff3da
cmp dword [esp + 0x58], edi
jne 0x4ff414
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x128]
mov dword [ecx], edx
mov dword [eax], edx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x104
ret 0x20
mov ebx, dword [esp + 0x128]
mov ecx, 1
lea eax, [esp + 0x5c]
mov ebp, dword [ebx]
mov dword [esp + 0x10], ebp
cmp dword [eax], edx
jne 0x4ff437
inc ecx
add eax, 4
cmp ecx, 0xf
jbe 0x4ff42a
mov eax, ecx
cmp ebp, ecx
mov dword [esp + 0x14], eax
jae 0x4ff447
mov dword [esp + 0x10], ecx
mov ebp, ecx
mov esi, 0xf
lea edi, [esp + 0x94]
cmp dword [edi], edx
jne 0x4ff45f
dec esi
sub edi, 4
cmp esi, edx
jne 0x4ff453
cmp ebp, esi
mov dword [esp + 0x30], esi
jbe 0x4ff46d
mov dword [esp + 0x10], esi
mov ebp, esi
mov edi, 1
mov dword [ebx], ebp
shl edi, cl
cmp ecx, esi
jae 0x4ff48c
lea ebx, [esp + ecx*4 + 0x58]
sub edi, dword [ebx]
js 0x4ff4a7
inc ecx
add ebx, 4
shl edi, 1
cmp ecx, esi
jb 0x4ff47e
lea ecx, [esi*4]
mov dword [esp + 0x24], ecx
lea ebx, [esp + ecx + 0x58]
mov ecx, dword [esp + ecx + 0x58]
sub edi, ecx
mov dword [esp + 0x48], edi
jns 0x4ff4b9
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x104
ret 0x20
add ecx, edi
mov dword [esp + 0x9c], edx
mov dword [ebx], ecx
xor ecx, ecx
dec esi
je 0x4ff4de
xor edi, edi
mov ebx, dword [esp + edi + 0x5c]
add edi, 4
add ecx, ebx
dec esi
mov dword [esp + edi + 0x9c], ecx
jne 0x4ff4cb
mov esi, dword [esp + 0x20]
xor edi, edi
mov ecx, dword [esi]
add esi, 4
cmp ecx, edx
mov dword [esp + 0x1c], esi
je 0x4ff510
mov esi, dword [esp + ecx*4 + 0x98]
mov ebx, dword [esp + 0x134]
lea ecx, [esp + ecx*4 + 0x98]
mov dword [ebx + esi*4], edi
inc esi
mov dword [ecx], esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
inc edi
cmp edi, ecx
jb 0x4ff4e4
mov ecx, dword [esp + 0x24]
mov ebx, ebp
xor edi, edi
mov dword [esp + 0x18], 0xffffffff
mov ecx, dword [esp + ecx + 0x98]
mov dword [esp + 0x24], edi
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x134]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x30]
neg ebx
cmp eax, ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0xd8], edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], edx
jg 0x4ff7f9
mov esi, dword [esp + 0x38]
lea edx, [eax - 1]
lea ecx, [esp + eax*4 + 0x58]
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
mov ecx, edx
dec edx
test ecx, ecx
mov dword [esp + 0x28], edx
je 0x4ff7d2
jmp 0x4ff595
mov edx, dword [esp + 0x28]
lea ecx, [ebx + ebp]
cmp eax, ecx
jle 0x4ff6b2
inc edx
mov dword [esp + 0x54], edx
jmp 0x4ff5af
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add ebx, ebp
inc edx
add ecx, ebp
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
sub edx, ebx
mov dword [esp + 0x50], ecx
cmp edx, ebp
jbe 0x4ff5cc
mov edx, ebp
mov edi, dword [esp + 0x54]
mov ecx, eax
sub ecx, ebx
mov eax, 1
shl eax, cl
cmp eax, edi
jbe 0x4ff60a
mov ebp, dword [esp + 0x28]
or edi, 0xffffffff
sub edi, ebp
mov ebp, dword [esp + 0x2c]
add eax, edi
cmp ecx, edx
jae 0x4ff60a
inc ecx
cmp ecx, edx
jae 0x4ff60a
mov edi, dword [ebp + 4]
add ebp, 4
shl eax, 1
cmp eax, edi
jbe 0x4ff60a
sub eax, edi
inc ecx
cmp ecx, edx
jb 0x4ff5f7
mov ebp, dword [esp + 0x130]
mov edx, 1
shl edx, cl
mov eax, dword [ebp]
mov dword [esp + 0x3c], edx
add edx, eax
cmp edx, 0x5a0
ja 0x4ff820
mov edi, dword [esp + 0x12c]
mov dword [ebp], edx
mov edx, dword [esp + 0x18]
lea eax, [edi + eax*8]
mov edi, dword [esp + 0x18]
test edx, edx
lea edi, [esp + edi*4 + 0xd8]
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], edi
mov dword [edi], eax
je 0x4ff695
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x40]
mov byte [esp + 0x34], cl
mov ecx, ebx
mov dword [esp + edx*4 + 0x98], edi
mov edx, dword [esp + 0x4c]
mov byte [esp + 0x35], al
sub ecx, eax
mov eax, edi
shr eax, cl
mov ecx, dword [edx - 4]
mov edx, dword [esp + 0x34]
sub esi, ecx
sar esi, 3
sub esi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
jmp 0x4ff6a2
mov ecx, dword [esp + 0x124]
mov edi, dword [esp + 0x24]
mov dword [ecx], eax
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
cmp eax, ecx
jg 0x4ff5a7
mov ecx, dword [esp + 0x134]
mov dl, al
mov ebp, dword [esp + 0x1c]
sub dl, bl
mov byte [esp + 0x35], dl
mov edx, dword [esp + 0x44]
lea ecx, [ecx + edx*4]
cmp ebp, ecx
jb 0x4ff6d7
mov byte [esp + 0x34], 0xc0
jmp 0x4ff720
mov esi, dword [ebp]
mov ecx, dword [esp + 0x118]
cmp esi, ecx
jae 0x4ff6f9
cmp esi, 0x100
sbb dl, dl
and dl, 0xa0
add dl, 0x60
mov byte [esp + 0x34], dl
jmp 0x4ff719
sub esi, ecx
mov ecx, dword [esp + 0x120]
shl esi, 2
mov dl, byte [esi + ecx]
mov ecx, dword [esp + 0x11c]
add dl, 0x50
mov esi, dword [esi + ecx]
mov byte [esp + 0x34], dl
add ebp, 4
mov dword [esp + 0x1c], ebp
mov ecx, eax
mov edx, 1
sub ecx, ebx
mov eax, edi
shl edx, cl
mov ecx, ebx
shr eax, cl
cmp eax, dword [esp + 0x3c]
jae 0x4ff758
mov ecx, dword [esp + 0x40]
lea ecx, [ecx + eax*8]
mov ebp, dword [esp + 0x34]
add eax, edx
mov dword [ecx], ebp
lea ebp, [edx*8]
mov dword [ecx + 4], esi
add ecx, ebp
cmp eax, dword [esp + 0x3c]
jb 0x4ff73e
mov ecx, dword [esp + 0x20]
mov eax, 1
shl eax, cl
test edi, eax
je 0x4ff76f
xor edi, eax
shr eax, 1
test edi, eax
jne 0x4ff767
mov edx, dword [esp + 0x18]
mov ebp, 1
mov ecx, ebx
xor edi, eax
shl ebp, cl
mov ecx, dword [esp + edx*4 + 0x98]
lea eax, [esp + edx*4 + 0x98]
mov dword [esp + 0x24], edi
dec ebp
and ebp, edi
cmp ebp, ecx
je 0x4ff7b7
mov ebp, dword [esp + 0x10]
dec edx
sub ebx, ebp
mov ebp, 1
mov ecx, ebx
sub eax, 4
shl ebp, cl
mov ecx, dword [eax]
dec ebp
and ebp, edi
cmp ebp, ecx
jne 0x4ff797
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x10]
mov edx, eax
dec eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
test edx, edx
jne 0x4ff591
mov ecx, dword [esp + 0x2c]
xor edx, edx
add ecx, 4
inc eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jle 0x4ff57a
cmp dword [esp + 0x48], edx
je 0x4ff405
cmp dword [esp + 0x30], 1
je 0x4ff405
pop edi
pop esi
pop ebp
mov eax, 0xfffffffb
pop ebx
add esp, 0x104
ret 0x20
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x104
ret 0x20