Function at 0x106f390
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x10
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
push ebp
push esi
test eax, eax
mov eax, dword [esp + 0x1c]
push edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 1
je 0x106f3d9
mov esi, dword [eax + 0x68]
cmp esi, 8
jae 0x106f3d9
mov edi, dword [esp + 0x24]
mov dl, byte [edi]
mov byte [esi + eax + 0x60], dl
inc dword [eax + 0x68]
mov esi, dword [ecx]
inc edi
dec esi
mov edx, esi
test edx, edx
mov dword [esp + 0x24], edi
mov dword [ecx], esi
jne 0x106f3b4
mov edx, dword [eax + 0x68]
mov esi, 8
cmp edx, esi
jb 0x106f95a
mov edx, dword [eax + 0x74]
test edx, edx
je 0x106f409
mov edx, dword [esp + 0x28]
mov edi, dword [eax + 0x6c]
mov dword [edx], edi
mov edi, dword [eax + 0x70]
mov dword [edx + 4], edi
add edx, esi
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], esi
mov ecx, dword [ecx]
mov edx, dword [eax + 0x60]
mov esi, dword [eax + 0x64]
shr ecx, 3
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff8
mov dword [esp + 0x10], ecx
push ebx
mov ecx, edx
shr ecx, 8
mov edi, edx
shl edi, 8
xor ecx, edi
and ecx, 0xff00ff
shl edx, 8
xor ecx, edx
mov ebp, ecx
shl ecx, 0x10
mov ebx, dword [eax + 0x5c]
mov edi, dword [eax + 0x58]
shr ebp, 0x10
or ebp, ecx
mov ecx, esi
shr ecx, 8
mov edx, esi
shl edx, 8
xor ecx, edx
and ecx, 0xff00ff
shl esi, 8
xor ecx, esi
mov esi, ecx
shl ecx, 0x10
shr esi, 0x10
or esi, ecx
sub edi, esi
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov edi, edx
mov dword [esp + 0x24], edx
and edi, 0xff
add ecx, dword [edi*4 + 0x1013ae8]
shr edx, 0x18
mov ebx, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
xor ecx, ebx
mov ebx, dword [eax + 0x54]
shr edx, 0x10
movzx edx, dl
sub ecx, dword [edx*4 + 0x10142e8]
mov edi, dword [eax + 0x50]
xor ebp, ecx
xor edi, ebp
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
mov edi, edx
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov dword [esp + 0x24], edx
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
shr edx, 0x18
mov edi, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
sub ecx, ebx
shr edx, 0x10
add ecx, edi
movzx edx, dl
xor ecx, dword [edx*4 + 0x10142e8]
mov ebx, dword [eax + 0x4c]
xor esi, ecx
mov ecx, dword [eax + 0x48]
lea edi, [ecx + esi]
mov ecx, 0x20
sub ecx, ebx
mov edx, edi
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
mov edi, edx
mov dword [esp + 0x24], edx
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
movzx edi, byte [esp + 0x26]
xor ecx, ebx
add ecx, dword [edi*4 + 0x10142e8]
mov ebx, dword [eax + 0x44]
shr edx, 0x18
sub ecx, dword [edx*4 + 0x1013ee8]
mov edi, dword [eax + 0x40]
xor ebp, ecx
sub edi, ebp
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov edi, edx
mov dword [esp + 0x24], edx
and edi, 0xff
add ecx, dword [edi*4 + 0x1013ae8]
shr edx, 0x18
mov ebx, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
xor ecx, ebx
mov ebx, dword [eax + 0x3c]
shr edx, 0x10
movzx edx, dl
sub ecx, dword [edx*4 + 0x10142e8]
mov edi, dword [eax + 0x38]
xor esi, ecx
xor edi, esi
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
mov edi, edx
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov dword [esp + 0x24], edx
shr edx, 0x18
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
mov edi, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
sub ecx, ebx
shr edx, 0x10
add ecx, edi
movzx edx, dl
xor ecx, dword [edx*4 + 0x10142e8]
mov ebx, dword [eax + 0x34]
xor ebp, ecx
mov ecx, dword [eax + 0x30]
lea edi, [ecx + ebp]
mov ecx, 0x20
sub ecx, ebx
mov edx, edi
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
mov edi, edx
mov dword [esp + 0x24], edx
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
movzx edi, byte [esp + 0x26]
xor ecx, ebx
add ecx, dword [edi*4 + 0x10142e8]
mov ebx, dword [eax + 0x2c]
shr edx, 0x18
sub ecx, dword [edx*4 + 0x1013ee8]
mov edi, dword [eax + 0x28]
xor esi, ecx
sub edi, esi
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov edi, edx
mov dword [esp + 0x24], edx
and edi, 0xff
add ecx, dword [edi*4 + 0x1013ae8]
shr edx, 0x18
mov ebx, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
xor ecx, ebx
mov ebx, dword [eax + 0x24]
shr edx, 0x10
movzx edx, dl
sub ecx, dword [edx*4 + 0x10142e8]
mov edi, dword [eax + 0x20]
xor ebp, ecx
xor edi, ebp
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
mov edi, edx
mov dword [esp + 0x24], edx
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
shr edx, 0x18
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
mov edi, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
sub ecx, ebx
add ecx, edi
shr edx, 0x10
movzx edx, dl
xor ecx, dword [edx*4 + 0x10142e8]
mov ebx, dword [eax + 0x1c]
xor esi, ecx
mov ecx, dword [eax + 0x18]
lea edi, [esi + ecx]
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov edi, edx
mov dword [esp + 0x24], edx
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
movzx edi, byte [esp + 0x26]
xor ecx, ebx
add ecx, dword [edi*4 + 0x10142e8]
mov ebx, dword [eax + 0x14]
shr edx, 0x18
sub ecx, dword [edx*4 + 0x1013ee8]
mov edi, dword [eax + 0x10]
xor ebp, ecx
sub edi, ebp
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov edi, edx
and edi, 0xff
add ecx, dword [edi*4 + 0x1013ae8]
mov dword [esp + 0x24], edx
shr edx, 0x18
mov ebx, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
xor ecx, ebx
mov ebx, dword [eax + 0xc]
shr edx, 0x10
movzx edx, dl
sub ecx, dword [edx*4 + 0x10142e8]
mov edi, dword [eax + 8]
xor esi, ecx
xor edi, esi
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
mov edi, edx
mov dword [esp + 0x24], edx
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
shr edx, 0x18
mov edi, dword [edx*4 + 0x1013ee8]
mov edx, dword [esp + 0x24]
sub ecx, ebx
add ecx, edi
shr edx, 0x10
movzx edx, dl
xor ecx, dword [edx*4 + 0x10142e8]
mov ebx, dword [eax + 4]
xor ebp, ecx
mov ecx, dword [eax]
lea edi, [ecx + ebp]
mov edx, edi
mov ecx, 0x20
sub ecx, ebx
shr edx, cl
mov ecx, ebx
shl edi, cl
or edx, edi
mov edi, edx
and edi, 0xff
mov ebx, dword [edi*4 + 0x1013ae8]
movzx ecx, dh
mov ecx, dword [ecx*4 + 0x10136e8]
mov dword [esp + 0x24], edx
movzx edi, byte [esp + 0x26]
xor ecx, ebx
add ecx, dword [edi*4 + 0x10142e8]
shr edx, 0x18
sub ecx, dword [edx*4 + 0x1013ee8]
xor ecx, esi
mov edx, ecx
shr edx, 8
mov esi, ecx
mov ebx, dword [eax + 0x78]
mov edi, dword [eax + 0x7c]
shl esi, 8
xor edx, esi
and edx, 0xff00ff
shl ecx, 8
xor edx, ecx
mov esi, edx
shl edx, 0x10
shr esi, 0x10
or esi, edx
mov ecx, ebp
shr ecx, 8
mov edx, ebp
shl edx, 8
xor ecx, edx
and ecx, 0xff00ff
shl ebp, 8
xor ecx, ebp
mov edx, ecx
shr edx, 0x10
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x18]
xor edx, edi
xor esi, ebx
mov ebx, dword [esp + 0x2c]
mov dword [ebx + 4], edx
mov edx, dword [esp + 0x10]
mov edi, 8
add edx, edi
test ecx, ecx
mov dword [ebx], esi
mov dword [esp + 0x10], edx
je 0x106f8db
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 0x64]
mov dword [eax + 0x78], ecx
mov dword [eax + 0x7c], edx
mov dword [esp + 0x18], 0
jmp 0x106f8ea
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov dword [eax + 0x78], edx
mov ecx, dword [ecx + 4]
mov dword [eax + 0x7c], ecx
mov ecx, dword [esp + 0x1c]
mov edx, ecx
dec ecx
test edx, edx
mov dword [esp + 0x1c], ecx
je 0x106f91d
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
add ecx, edi
add ebp, edi
add ebx, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], ebx
jmp 0x106f424
mov edx, dword [esp + 0x30]
mov ecx, dword [edx]
mov esi, dword [esp + 0x28]
and ecx, 7
mov dword [eax + 0x68], ecx
mov ebp, ecx
shr ecx, 2
lea edi, [eax + 0x60]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov dword [edx], ecx
mov ecx, dword [ebx]
mov dword [eax + 0x6c], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 0x70], ecx
mov dword [eax + 0x74], 1
add dword [edx], 0xfffffff8
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x10
ret 0x10