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

Disassembly:
sub esp, 0xd7c
push ebx
push ebp
push esi
mov ebx, dword [esp + 0xd8c]
push edi
mov edi, dword [esp + 0xd94]
push 0
push 0x8002
mov dword [edi], 0
mov ecx, dword [0x107ab964]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, eax
cmp esi, 0xffffffff
je 0x1005c9d8
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x20]
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x28], ebp
jle 0x1005c9cc
mov edx, dword [0x107ab964]
lea ecx, [esp + 0x1c]
push ecx
push esi
push edx
mov dword [esp + 0x28], 0
call fcn.10025680
add esp, 0xc
test eax, eax
je 0x1005c9cc
mov eax, dword [esp + 0x1c]
cmp ebp, eax
jl 0x1005c9cc
jg 0x1005c6f7
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [0x107ab964]
push edi
push ebx
push ecx
call fcn.1002bac0
add esp, 0xc
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0xd7c
ret
xor edx, edx
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x64]
mov dword [esp + 0x38], edx
rep stosd dword es:[edi], eax
mov dword [esp + 0x3c], edx
lea eax, [esp + 0x64]
lea ecx, [esp + 0x38]
mov byte [esp + 0x40], dl
mov edx, dword [0x107ab964]
push eax
push ecx
push esi
push edx
call fcn.10010ab0
add esp, 0x10
test eax, eax
je 0x1005c9cc
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
lea eax, [edx + ecx - 0x4a00]
cmp eax, 0x400
jbe 0x1005c9cc
lea ecx, [esp + 0x2c]
push 1
lea edx, [esp + 0x90]
push ecx
push edx
push 0x500
push 0x500
push eax
mov eax, dword [0x107ab964]
push ebp
push esi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005ccd5
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x500
jb 0x1005ccd5
add ecx, 0xffffffc0
xor bl, bl
xor eax, eax
mov byte [esp + 0x13], bl
test ecx, ecx
jle 0x1005c8a2
mov ebx, 0xfdff2404
mov ebp, 0xbff64fe
mov edi, 0x40049
mov dl, 0xf3
cmp dword [esp + eax + 0x8c], 0xff1c63fe
jne 0x1005c884
cmp dword [esp + eax + 0x90], 0x6800021c
jne 0x1005c884
cmp dword [esp + eax + 0x94], 0x8a000808
jne 0x1005c884
cmp dword [esp + eax + 0x98], 0xfc460114
jne 0x1005c884
cmp dword [esp + eax + 0x9c], 0xff4428fe
jne 0x1005c884
cmp dword [esp + eax + 0xa0], 0x8080001
jne 0x1005c884
cmp dword [esp + eax + 0xa4], 0x488900
jne 0x1005c884
cmp dword [esp + eax + 0xa8], 0x808e7
jne 0x1005c884
cmp dword [esp + eax + 0xac], 0x4d011406
jne 0x1005c884
cmp dword [esp + eax + 0xb0], 0x4008ff54
jne 0x1005c884
cmp dword [esp + eax + 0xb4], 0xaff2404
jne 0x1005c884
cmp dword [esp + eax + 0xb8], 0x100048
jne 0x1005c884
cmp dword [esp + eax + 0xbc], ebx
jne 0x1005c884
cmp dword [esp + eax + 0xc0], ebp
jne 0x1005c884
cmp dword [esp + eax + 0xc4], edi
jne 0x1005c884
cmp byte [esp + eax + 0xc8], dl
je 0x1005c88f
inc eax
cmp eax, ecx
jl 0x1005c7b4
jmp 0x1005c89a
mov dl, byte [esp + eax + 0xc9]
mov byte [esp + 0x13], dl
mov ebp, dword [esp + 0x28]
mov bl, byte [esp + 0x13]
cmp eax, ecx
jge 0x1005c9cc
test bl, bl
je 0x1005c9cc
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x107ab964]
push eax
push ebp
push esi
push ecx
call fcn.1002b090
add esp, 0x10
test eax, eax
jne 0x1005cb83
mov edx, dword [esp + 0x1c]
mov eax, dword [0x107ab964]
push edx
push esi
push eax
call fcn.10029b90
mov ecx, dword [0x107ab964]
add esp, 0xc
test eax, eax
jne 0x1005c901
mov edx, dword [ecx]
push esi
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd7c
ret
mov eax, dword [ecx]
push esi
call dword [eax + 0x20]
mov ebp, eax
test ebp, ebp
jle 0x1005ccd5
cmp ebp, 0x12
jl 0x1005ccd5
cmp ebp, 0xc800
mov ecx, 0x200
jle 0x1005c987
xor eax, eax
lea edi, [esp + 0x58c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push 1
lea edx, [esp + 0x590]
push ecx
push edx
push 0x800
push 0x800
push eax
mov eax, dword [0x107ab964]
push ebp
push esi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005c96e
cmp dword [esp + 0x14], 0x800
jae 0x1005cb0e
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd7c
ret
xor eax, eax
lea edi, [esp + 0x58c]
cmp ebp, 0x800
push 1
rep stosd dword es:[edi], eax
jae 0x1005c9e5
mov edx, dword [0x107ab964]
lea eax, [esp + 0x18]
lea ecx, [esp + 0x590]
push eax
push ecx
push 0x800
push ebp
push 0
push ebp
push esi
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005c9cc
cmp dword [esp + 0x14], ebp
jge 0x1005ca1c
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd7c
ret
mov eax, dword [0x107ab964]
lea ecx, [esp + 0x18]
lea edx, [esp + 0x590]
push ecx
push edx
push 0x800
push 0x800
push 0
push ebp
push esi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005c9cc
cmp dword [esp + 0x14], 0x800
jb 0x1005c9cc
mov eax, ebp
push 1
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, 8
cmp edi, 0x20
jae 0x1005ca72
mov eax, dword [0x107ab964]
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x48]
push ecx
push edx
push 0x20
push edi
push edi
push ebp
push esi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005ca59
mov ecx, dword [esp + 0x18]
cmp ecx, edi
jge 0x1005caa7
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd7c
ret
mov edx, dword [0x107ab964]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x48]
push eax
push ecx
push 0x20
push 0x20
push edi
push ebp
push esi
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005ccd5
mov ecx, dword [esp + 0x18]
cmp ecx, 0x20
jb 0x1005ccd5
xor eax, eax
test ecx, ecx
jle 0x1005cabc
mov dl, byte [esp + eax + 0x44]
xor dl, bl
mov byte [esp + eax + 0x44], dl
inc eax
cmp eax, ecx
jl 0x1005caad
mov eax, dword [esp + 0x58c]
mov edx, dword [esp + 0x590]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push 8
push eax
push ecx
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x34], edx
call fcn.100241a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x1005cb0e
mov edx, dword [0x107ab964]
push 1
add eax, edi
push 0x13a3
push eax
push esi
push edx
call fcn.10013800
add esp, 0x14
test eax, eax
je 0x1005c9cc
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x30], ecx
lea edx, [esp + 0x30]
mov dword [esp + 0x34], ecx
push edx
lea ecx, [esp + 0x590]
push eax
push ecx
call fcn.101d2100
mov ecx, dword [0x107ab964]
add esp, 0xc
test eax, eax
jne 0x1005cb4f
mov edx, dword [ecx]
push esi
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd7c
ret
mov eax, dword [ecx]
push esi
call dword [eax + 0x18]
mov edx, dword [esp + 0xd90]
mov eax, dword [0x107ab964]
lea ecx, [esp + 0x30]
push ecx
push edx
push eax
call fcn.1002b460
add esp, 0xc
test eax, eax
jne 0x1005ccfa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd7c
ret
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ebp, eax
test ebp, ebp
jle 0x1005ccd5
cmp ebp, 0x12
jl 0x1005ccd5
cmp ebp, 0xc800
jge 0x1005ccee
lea edx, [esp + 0x14]
push 1
lea eax, [esp + 0x24]
xor ecx, ecx
push edx
push eax
mov dword [esp + 0x2c], ecx
push 8
push 8
mov dword [esp + 0x38], ecx
push ecx
mov ecx, dword [0x107ab964]
push ebp
push esi
push ecx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005ccd5
cmp dword [esp + 0x14], 8
jb 0x1005ccd5
mov eax, ebp
cdq
sub eax, edx
mov edi, eax
sar edi, 1
sub edi, 8
cmp edi, 0x20
jae 0x1005cc52
cmp edi, 8
jge 0x1005cc1c
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd7c
ret
mov edx, dword [0x107ab964]
lea eax, [esp + 0x18]
push 1
lea ecx, [esp + 0x48]
push eax
push ecx
push 0x20
push edi
push edi
push ebp
push esi
push edx
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005c9cc
mov ecx, dword [esp + 0x18]
cmp ecx, edi
jge 0x1005cc88
jmp 0x1005c9cc
mov eax, dword [0x107ab964]
lea ecx, [esp + 0x18]
push 1
lea edx, [esp + 0x48]
push ecx
push edx
push 0x20
push 0x20
push edi
push ebp
push esi
push eax
call fcn.100253e0
add esp, 0x24
test eax, eax
je 0x1005c9cc
mov ecx, dword [esp + 0x18]
cmp ecx, 0x20
jb 0x1005c9cc
xor eax, eax
test ecx, ecx
jle 0x1005cc9d
mov dl, byte [esp + eax + 0x44]
xor dl, bl
mov byte [esp + eax + 0x44], dl
inc eax
cmp eax, ecx
jl 0x1005cc8e
lea edx, [esp + 0x20]
push 8
push edx
lea eax, [esp + 0x4c]
push ecx
push eax
call fcn.100241a0
add esp, 0x10
cmp eax, 0xffffffff
je 0x1005ccee
mov ecx, dword [0x107ab964]
push 1
add eax, edi
push 0x13a3
push eax
push esi
push ecx
call fcn.10013800
add esp, 0x14
test eax, eax
jne 0x1005ccee
mov ecx, dword [0x107ab964]
push esi
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd7c
ret
mov ecx, dword [0x107ab964]
push esi
mov eax, dword [ecx]
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xd7c
ret