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

Disassembly:
sub esp, 0x4c
mov dword [esp + 0xc], edx
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov dword [esp + 8], 0
mov dword [esp + 0x34], 0
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
test edx, edx
je 0x1010aa4e
mov eax, dword [esp + 0x60]
mov ecx, edx
add eax, 0x24
nop word [eax + eax]
mov dword [eax], 1
lea eax, [eax + 0x28]
sub ecx, 1
jne 0x1010aa40
mov eax, dword [esp + 0x64]
mov ecx, edi
mov dword [eax], edx
lea edx, [esp + 0x48]
call fcn.10109aa0
test eax, eax
jne 0x1010af3f
nop word [eax + eax]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
cmp ebx, 0xd
jne 0x1010aafb
test ebp, ebp
jne 0x1010aafb
mov ebp, dword [esp + 0x64]
xor esi, esi
mov dword [ebp], 0
cmp dword [esp + 0x1c], esi
jbe 0x1010ab52
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x14]
add edi, 0x24
lea edx, [esp + 0x38]
mov ecx, ebx
call fcn.10109aa0
test eax, eax
jne 0x1010af3f
mov ecx, dword [esp + 0x3c]
test ecx, ecx
ja 0x1010ab6d
mov eax, dword [esp + 0x38]
jb 0x1010aae8
cmp eax, 0x80000000
jae 0x1010ab6d
test ecx, ecx
ja 0x1010ab6d
jb 0x1010aae8
cmp eax, 0x4000000
jae 0x1010ab6d
add dword [ebp], eax
inc esi
mov dword [edi], eax
add edi, 0x28
cmp esi, dword [esp + 0x1c]
jb 0x1010aaa3
mov edi, ebx
jmp 0x1010ab52
cmp ebx, 0xa
jne 0x1010ab04
test ebp, ebp
je 0x1010ab7a
cmp ebx, 9
jne 0x1010ab0d
test ebp, ebp
je 0x1010ab7a
mov eax, ebx
or eax, ebp
je 0x1010ab7a
lea edx, [esp + 0x30]
mov ecx, edi
call fcn.10109aa0
test eax, eax
jne 0x1010af3f
cmp dword [esp + 0x34], 0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x30]
jb 0x1010ab41
ja 0x1010ab3a
cmp ecx, eax
jbe 0x1010ab41
mov eax, 0x10
jmp 0x1010ab4a
add dword [edi], ecx
sub eax, ecx
mov dword [edi + 4], eax
xor eax, eax
test eax, eax
jne 0x1010af3f
lea edx, [esp + 0x48]
mov ecx, edi
call fcn.10109aa0
test eax, eax
je 0x1010aa70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov esi, dword [esp + 0x64]
mov eax, dword [esi]
test eax, eax
jne 0x1010aba0
mov ecx, dword [esp + 0x68]
mov dword [ecx], eax
mov eax, dword [esp + 0x6c]
mov dword [eax], 0
mov eax, dword [esp + 0x70]
mov dword [eax], 0
jmp 0x1010abfb
shl eax, 3
push eax
mov eax, dword [esp + 0x78]
push eax
mov eax, dword [eax]
call eax
mov ecx, dword [esp + 0x70]
add esp, 8
mov dword [ecx], eax
test eax, eax
jne 0x1010abc7
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
mov eax, dword [esp + 0x74]
push dword [esi]
push eax
mov eax, dword [eax]
call eax
mov ecx, dword [esp + 0x74]
add esp, 8
mov dword [ecx], eax
test eax, eax
je 0x1010abba
mov eax, dword [esi]
shl eax, 2
push eax
mov eax, dword [esp + 0x78]
push eax
mov eax, dword [eax]
call eax
mov ecx, dword [esp + 0x78]
add esp, 8
mov dword [ecx], eax
test eax, eax
je 0x1010abba
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x1010ad5a
mov edi, dword [esp + 0x60]
add edi, 0x24
mov dword [esp + 0x30], edi
nop dword [eax + eax]
mov edi, dword [edi]
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
test edi, edi
je 0x1010ad3a
cmp ebx, 9
jne 0x1010aca9
test ebp, ebp
jne 0x1010aca9
cmp edi, 1
jbe 0x1010aca9
mov eax, dword [esp + 0x24]
lea esi, [ebx - 8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x50]
call fcn.10109aa0
test eax, eax
jne 0x1010af3f
mov eax, dword [esp + 0x68]
inc esi
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x50]
mov eax, dword [eax]
inc dword [esp + 0x18]
add dword [esp + 0x20], edx
mov dword [eax + ecx*8], edx
mov ecx, dword [esp + 0x54]
adc dword [esp + 0x2c], ecx
mov dword [eax + ebp*8 + 4], ecx
mov ebp, dword [esp + 0x4c]
cmp esi, edi
jb 0x1010ac60
jmp 0x1010acb9
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x30]
lea ecx, [edi - 0x24]
call fcn.10109610
mov edx, eax
test edx, edx
je 0x1010ad01
sub edx, 1
js 0x1010ad01
mov esi, dword [edi - 0x10]
xor ecx, ecx
test esi, esi
je 0x1010acec
mov eax, dword [edi - 0x20]
add eax, 4
nop
cmp dword [eax], edx
je 0x1010acf8
inc ecx
add eax, 8
cmp ecx, esi
jb 0x1010ace0
mov eax, dword [edi - 0x18]
mov esi, dword [eax + edx*8]
mov ecx, dword [eax + edx*8 + 4]
jmp 0x1010ad12
test ecx, ecx
js 0x1010acec
sub edx, 1
jns 0x1010acd3
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x18]
sub esi, dword [esp + 0x20]
mov eax, dword [eax]
sbb ecx, dword [esp + 0x2c]
mov dword [eax + edx*8], esi
mov dword [eax + edx*8 + 4], ecx
inc edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
jmp 0x1010ad3e
mov edi, dword [esp + 0x30]
inc eax
add edi, 0x28
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edi
cmp eax, ecx
jb 0x1010ac20
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x64]
cmp ebx, 9
jne 0x1010ad7e
test ebp, ebp
jne 0x1010ad7e
lea edx, [esp + 0x48]
mov ecx, edi
call fcn.10109aa0
test eax, eax
jne 0x1010af3f
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov edx, dword [esi]
xor eax, eax
test edx, edx
je 0x1010ada5
mov ecx, dword [esp + 0x6c]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx]
mov byte [esi + eax], 0
lea ecx, [ecx + 4]
inc eax
mov dword [ecx - 4], 0
cmp eax, edx
jb 0x1010ad92
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x1010add7
mov eax, dword [esp + 0x60]
mov edx, ecx
add eax, 0x1c
xor edi, edi
mov ecx, dword [eax + 8]
cmp ecx, 1
jne 0x1010adc5
cmp dword [eax], 0
jne 0x1010adc7
add edi, ecx
add eax, 0x28
sub edx, 1
jne 0x1010adb8
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x14]
xor esi, esi
nop dword [eax]
cmp ebx, 0xa
jne 0x1010aedc
test ebp, ebp
jne 0x1010aedc
mov eax, dword [esp + 0x74]
xor edi, edi
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x68], edi
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x38], edi
push eax
call fcn.10109e10
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x1010aeb7
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1010aeb7
mov ebx, dword [esp + 0x60]
mov ebp, eax
add ebx, 0x1c
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], ebx
mov edx, dword [ebx + 8]
cmp edx, 1
jne 0x1010ae6a
cmp dword [ebx], 0
je 0x1010ae6e
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
mov byte [esi + eax], dl
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
mov eax, dword [ebx + 4]
mov dword [ecx + esi*4], eax
inc esi
jmp 0x1010aea3
test edx, edx
je 0x1010aea3
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x64]
mov ebp, dword [eax]
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
lea ecx, [eax + esi*4]
mov al, byte [ebx + edi]
lea ecx, [ecx + 4]
mov byte [esi + ebp], al
inc esi
mov eax, dword [esp + 0x30]
mov eax, dword [eax + edi*4]
inc edi
mov dword [ecx - 4], eax
sub edx, 1
jne 0x1010ae81
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x2c]
add ebx, 0x28
sub ebp, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x2c], ebp
jne 0x1010ae45
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x74]
push dword [esp + 0x64]
push edi
mov eax, dword [edi + 4]
call eax
push dword [esp + 0x38]
mov eax, dword [edi + 4]
push edi
call eax
add esp, 0x10
test ebx, ebx
jne 0x1010af33
mov edi, dword [esp + 0x14]
jmp 0x1010af17
or ebx, ebp
je 0x1010af3d
lea edx, [esp + 0x50]
mov ecx, edi
call fcn.10109aa0
test eax, eax
jne 0x1010af3f
cmp dword [esp + 0x54], 0
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x50]
jb 0x1010af0a
ja 0x1010af03
cmp ecx, eax
jbe 0x1010af0a
mov eax, 0x10
jmp 0x1010af13
add dword [edi], ecx
sub eax, ecx
mov dword [edi + 4], eax
xor eax, eax
test eax, eax
jne 0x1010af3f
lea edx, [esp + 0x48]
mov ecx, edi
call fcn.10109aa0
test eax, eax
jne 0x1010af3f
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
jmp 0x1010ade0
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret