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

Disassembly:
sub esp, 0x320
mov eax, dword [0x106499c8]
xor eax, esp
mov dword [esp + 0x31c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x33c]
mov edx, dword [eax + 0xc]
mov esi, dword [eax]
mov dword [esp + 0x14], esi
mov esi, dword [eax + 0x28]
mov ecx, dword [eax + 4]
mov ebp, dword [eax + 8]
mov ebx, dword [eax + 0x24]
mov dword [esp + 0x30], esi
mov esi, dword [eax + 0x2c]
mov dword [esp + 0x24], esi
mov esi, dword [eax + 0x30]
mov dword [esp + 0x28], esi
mov esi, dword [eax + 0x34]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x20], esi
mov esi, dword [eax + 0x38]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x44], esi
mov esi, dword [eax + 0x3c]
mov edi, dword [esp + 0x338]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x338]
shr edi, 3
add dword [eax + 0x40], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x1c]
adc dword [eax + 0x44], 0
cmp dword [eax + 0x44], 0
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x10], ebx
ja 0x10184471
jb 0x10184469
mov ecx, dword [esp + 0x338]
cmp dword [eax + 0x40], ecx
mov ecx, dword [esp + 0x18]
jae 0x10184471
add dword [eax + 0x48], 1
adc dword [eax + 0x4c], 0
test edi, edi
je 0x10184925
lea eax, [edi - 1]
mov edi, dword [esp + 0x30]
shr eax, 4
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1c]
lea esp, [esp]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x334]
mov dword [esp + 0x64], esi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], edi
xor ebp, ebp
mov ebx, dword [eax + 4]
mov edx, dword [eax]
mov ecx, ebx
mov eax, edx
shrd eax, ecx, 0x10
shr ecx, 0x10
mov edi, ebx
and edi, 0xff0000
or edi, ecx
xor esi, esi
or esi, eax
shrd esi, edi, 0x10
shr edi, 0x10
mov eax, ebx
and eax, 0xff00
or edi, eax
shrd esi, edi, 0x10
movzx eax, bl
mov dword [esp + 0xa8], ebx
shr edi, 0x10
or edi, eax
mov ecx, edx
shld ebx, ecx, 0x10
shl ecx, 0x10
mov eax, edx
and eax, 0xff00
or ecx, eax
shld ebx, ecx, 0x10
shl ecx, 0x10
mov eax, edx
and eax, 0xff0000
or ecx, eax
mov eax, dword [esp + 0x334]
shld ebx, ecx, 0x10
shl ecx, 0x10
and edx, 0xff000000
or ecx, edx
shrd esi, edi, 8
shld ebx, ecx, 8
shr edi, 8
shl ecx, 8
or esi, ecx
or edi, ebx
mov dword [esp + ebp*8 + 0xac], esi
mov dword [esp + ebp*8 + 0xb0], edi
add eax, 8
inc ebp
mov dword [esp + 0x334], eax
cmp ebp, 0x10
jb 0x10184515
lea eax, [esp + 0x11c]
mov dword [esp + 0x54], 0x40
mov ebp, dword [eax - 0x68]
mov ebx, dword [eax - 0x64]
mov ecx, ebp
mov edx, ebx
shrd ecx, edx, 8
shr edx, 8
mov edi, ebp
shl edi, 0x18
or edi, edx
xor esi, esi
or esi, ecx
mov ecx, ebp
mov edx, ebx
shrd ecx, edx, 1
shr edx, 1
mov dword [esp + 0x34], edi
mov edi, ebp
shrd ebp, ebx, 7
mov dword [esp + 0x58], esi
xor esi, esi
or esi, ecx
mov ecx, dword [esp + 0x58]
xor ecx, esi
xor ecx, ebp
shl edi, 0x1f
or edi, edx
mov edx, dword [esp + 0x34]
xor edx, edi
shr ebx, 7
xor edx, ebx
mov dword [esp + 0x58], ecx
mov ecx, dword [eax]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 4]
mov ebp, ecx
shrd ecx, edx, 0x13
shr edx, 0x13
shl ebp, 0xd
or ebp, edx
mov edx, dword [eax + 4]
xor ebx, ebx
or ebx, ecx
mov ecx, dword [eax]
mov edi, edx
shld edx, ecx, 3
shl ecx, 3
shr edi, 0x1d
or edi, ecx
mov ecx, dword [eax + 4]
xor esi, esi
or esi, edx
mov edx, dword [eax]
shrd edx, ecx, 6
shr ecx, 6
xor ebp, esi
xor ebx, edi
xor ebx, edx
mov edx, dword [esp + 0x34]
xor ebp, ecx
mov ecx, dword [esp + 0x58]
add ecx, ebx
adc edx, ebp
add ecx, dword [eax - 0x70]
adc edx, dword [eax - 0x6c]
add ecx, dword [eax - 0x28]
adc edx, dword [eax - 0x24]
dec dword [esp + 0x54]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
lea eax, [eax + 8]
jne 0x101845d1
xor eax, eax
mov dword [esp + 0x34], eax
lea esp, [esp]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x10]
mov ebp, ecx
xor ebx, ebx
mov eax, edi
shld ecx, eax, 0x17
or ebx, ecx
mov ecx, dword [esp + 0x10]
shl eax, 0x17
shr ebp, 9
or ebp, eax
xor edx, edx
mov eax, edi
shrd eax, ecx, 0x12
or edx, eax
shr ecx, 0x12
mov esi, edi
shl esi, 0xe
or esi, ecx
mov ecx, dword [esp + 0x10]
xor ebx, esi
xor ebp, edx
xor edx, edx
mov eax, edi
shrd eax, ecx, 0xe
or edx, eax
mov eax, dword [esp + 0x24]
and eax, dword [esp + 0x10]
shr ecx, 0xe
xor ebp, edx
mov edx, dword [esp + 0x10]
mov esi, edi
shl esi, 0x12
or esi, ecx
mov ecx, dword [esp + 0x30]
xor ebx, esi
and ecx, edi
mov esi, edi
not esi
and esi, dword [esp + 0x28]
not edx
and edx, dword [esp + 0x20]
xor esi, ecx
xor edx, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
add ebp, esi
adc ebx, edx
add ebp, dword [eax + 0x104bb0f0]
adc ebx, dword [eax + 0x104bb0f4]
add ebp, dword [esp + eax + 0xac]
adc ebx, dword [esp + eax + 0xb0]
add ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
adc ebx, dword [esp + 0x40]
xor edi, edi
mov dword [esp + 0x54], ebx
mov ebx, eax
shrd eax, ecx, 0x1c
shr ecx, 0x1c
or edi, eax
mov eax, dword [esp + 0x14]
shl ebx, 4
or ebx, ecx
mov ecx, dword [esp + 0x18]
mov esi, ecx
shld ecx, eax, 0x1e
shr esi, 2
shl eax, 0x1e
or esi, eax
mov eax, dword [esp + 0x14]
xor edx, edx
or edx, ecx
mov ecx, dword [esp + 0x18]
xor edi, esi
mov esi, ecx
shld ecx, eax, 0x19
xor ebx, edx
shr esi, 7
xor edx, edx
shl eax, 0x19
or edx, ecx
mov ecx, dword [esp + 0x4c]
or esi, eax
mov eax, dword [esp + 0x1c]
and eax, dword [esp + 0x18]
xor ebx, edx
mov edx, dword [esp + 0x1c]
xor edx, dword [esp + 0x18]
xor edi, esi
and edx, dword [esp + 0x2c]
mov esi, ecx
and ecx, dword [esp + 0x14]
xor esi, dword [esp + 0x14]
xor edx, eax
and esi, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
xor esi, ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
add esi, edi
adc ebx, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
mov edx, ebp
add edx, dword [esp + 0x48]
mov dword [esp + 0x20], eax
adc ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
add esi, ebp
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov ecx, ebx
adc ecx, dword [esp + 0x54]
add eax, 8
mov dword [esp + 0x50], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], eax
cmp eax, 0x280
jb 0x101846a0
add esi, dword [esp + 0x64]
mov ebp, dword [esp + 0x4c]
adc ecx, dword [esp + 0xa0]
add ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x1c]
adc eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x74]
add dword [esp + 0x38], edi
mov edi, dword [esp + 0x9c]
mov ebx, dword [esp + 0x10]
adc dword [esp + 0x2c], edi
mov edi, dword [esp + 0x7c]
add dword [esp + 0x48], edi
mov edi, dword [esp + 0x94]
mov dword [esp + 0x14], esi
adc dword [esp + 0x3c], edi
add edx, dword [esp + 0x84]
mov edi, dword [esp + 0x30]
adc ebx, dword [esp + 0x60]
add edi, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
adc dword [esp + 0x24], esi
mov esi, dword [esp + 0x78]
add dword [esp + 0x28], esi
mov esi, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
adc dword [esp + 0x20], esi
mov esi, dword [esp + 0x88]
add dword [esp + 0x44], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x4c], ebp
adc dword [esp + 0x40], esi
dec dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x30], edi
jne 0x10184490
mov eax, dword [esp + 0x98]
jmp 0x10184929
mov edi, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x28]
mov dword [eax + 0x30], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x34], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax], esi
mov esi, dword [esp + 0x3c]
mov dword [eax + 0x28], edi
pop edi
mov dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x1c], esi
pop esi
mov dword [eax + 8], ebp
mov dword [eax + 0x3c], ecx
mov ecx, dword [esp + 0x324]
pop ebp
mov dword [eax + 0x24], ebx
pop ebx
xor ecx, esp
mov dword [eax + 0x20], edx
call fcn.10311bec
add esp, 0x320
ret