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

Disassembly:
sub esp, 0xb4
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ecx, 0x10103106
mov dword [esp + 0x18], edi
call fcn.100d96c4
mov esi, dword [edi + 0xc]
xor ebx, ebx
mov ebp, dword [edi]
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x30], 1
movzx eax, byte [esi + 0x10]
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], ebp
lea ecx, [eax + eax*8]
mov eax, dword [ebp + 4]
lea ecx, [ecx + 1]
lea edx, [eax + ecx*8]
mov eax, dword [edi + 4]
mov edi, dword [edx + 0x44]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
test edi, edi
jne 0x100aad5e
test byte [ecx + 0x24], 0x20
je 0x100aacc4
mov edi, dword [ecx + 8]
jmp 0x100aad5e
xorps xmm0, xmm0
mov dword [esp + 0x58], ebx
lea eax, [esp + 0x4c]
movlpd qword [esp + 0x8f], xmm0
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x60], eax
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x80], xmm0
movlpd qword [esp + 0x97], xmm0
mov byte [esp + 0x9f], bl
mov dword [esp + 0x8a], 0x10001
mov byte [esp + 0x8e], 5
mov dword [esp + 0x64], ecx
movzx eax, word [ecx + 0x2e]
or dword [esp + 0x90], 3
mov word [esp + 0x88], ax
movzx eax, word [ecx + 0x2c]
mov word [esp + 0x44], ax
xor eax, eax
mov word [esp + 0x46], ax
test byte [edx + 0x28], 1
jne 0x100aad5a
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x6c], eax
lea edi, [esp + 0x58]
movzx eax, word [ecx + 0x2c]
mov ecx, eax
mov dword [esp + 0x1c], ecx
cmp cx, 0xa
jg 0x100aad72
xor eax, eax
jmp 0x100aad89
cwde
cdq
push edx
push eax
call fcn.10043580
mov edx, dword [esp + 0x1c]
add esp, 8
sub ax, 0x21
movzx eax, ax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x10], ebx
jne 0x100aaf2f
test byte [ebp + 0x2c], 0x20
jne 0x100aaf2f
mov eax, dword [ebp]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x8000
or eax, 0
je 0x100aaf2f
cmp dword [edx + 0x44], ebx
jne 0x100aaf2f
mov eax, dword [edx + 0x28]
test al, 1
jne 0x100aaf2f
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x24], 0x20
jne 0x100aaf2f
test al, 0x28
jne 0x100aaf2f
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x14]
lea ebp, [eax + eax*2]
shl ebp, 4
add ebp, esi
cmp esi, ebp
jae 0x100aaf27
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
and ecx, dword [esi + 0x20]
and eax, dword [esi + 0x24]
or ecx, eax
jne 0x100aaf0f
mov eax, dword [esi + 0x14]
cmp eax, dword [edx + 0x2c]
jne 0x100aaf0f
movzx ecx, word [esi + 0xc]
test cl, 0x82
je 0x100aaf0f
test byte [edx + 0x24], 8
je 0x100aae45
mov eax, dword [esi]
test byte [eax + 4], 1
jne 0x100aae45
test cl, cl
js 0x100aaf0f
mov ecx, dword [esi + 0x1c]
test ecx, ecx
js 0x100aaf0f
mov eax, dword [edx + 0x10]
add ecx, ecx
mov eax, dword [eax + 4]
mov dl, byte [eax + ecx*8 + 0xd]
mov ecx, dword [esi]
call fcn.100728c0
test eax, eax
je 0x100aaf0b
mov edx, dword [esp + 0x10]
mov ecx, 1
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + 0x30]
mov word [edx + 0x18], cx
mov dword [edx + 0x28], ecx
mov dword [edx + 0x20], 0
mov dword [eax], esi
mov eax, dword [esp + 0x1c]
add eax, ebx
mov word [edx + 0x12], ax
movzx ecx, ax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xc], 0
jne 0x100aaead
test byte [eax + 0x24], 2
mov eax, 0x1c
je 0x100aaeb2
mov eax, 0xfffffff6
add eax, ecx
movzx eax, ax
mov word [edx + 0x12], ax
test ax, ax
jns 0x100aaec6
xor eax, eax
mov word [edx + 0x12], ax
mov eax, 0x2b
mov ecx, ebx
mov word [edx + 0x16], ax
mov edx, eax
call fcn.100434f0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc8]
mov word [edx + 0x14], ax
mov eax, dword [esp + 0xcc]
mov dword [edx + 0x24], 0x4000
or ecx, dword [esi + 0x20]
or eax, dword [esi + 0x24]
mov dword [edx], ecx
mov ecx, dword [esp + 0x18]
mov dword [edx + 4], eax
call fcn.100a9ea0
mov ebx, eax
mov edx, dword [esp + 0x14]
add esi, 0x30
test ebx, ebx
je 0x100aadf6
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret
test ebx, ebx
jne 0x100aaf1a
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
test edi, edi
je 0x100aaf1a
mov eax, dword [edi + 0x24]
test eax, eax
je 0x100aaf56
mov edx, dword [esp + 0x28]
mov ecx, dword [ebp + 0x2c]
push eax
call fcn.100aab90
add esp, 4
test eax, eax
je 0x100ab30a
test dword [edi + 0x38], 0x100
jne 0x100ab30a
mov eax, dword [edi + 8]
xor ecx, ecx
movzx eax, word [eax]
mov dword [esi + 0x18], ecx
mov word [esi + 0x1c], cx
mov dword [esi + 0x28], ecx
mov byte [esi + 0x11], cl
mov word [esi + 0x12], cx
mov ecx, dword [esp + 0xc8]
mov dword [esi], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esi + 4], ecx
mov word [esi + 0x16], ax
mov dword [esi + 0x20], edi
test byte [edi + 0x38], 4
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x20], eax
jne 0x100ab09e
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x38], eax
test eax, eax
je 0x100ab09e
cmp dword [eax], 0
mov dword [esp + 0x48], 0
jle 0x100ab09e
add eax, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [eax]
call fcn.100726a0
mov ecx, dword [esp + 0x20]
mov ebp, eax
cmp byte [ebp], 0xa2
jne 0x100ab023
cmp dword [ebp + 0x1c], ecx
jne 0x100ab023
movzx edx, word [ebp + 0x20]
test dx, dx
js 0x100ab0f6
movzx esi, word [edi + 0x32]
xor ecx, ecx
test esi, esi
je 0x100ab07e
mov eax, dword [edi + 4]
nop word [eax + eax]
cmp dx, word [eax]
je 0x100ab0f6
inc ecx
add eax, 2
cmp ecx, esi
jl 0x100ab010
jmp 0x100ab07e
mov ebx, dword [edi + 0x28]
test ebx, ebx
je 0x100ab07e
xor eax, eax
xor esi, esi
cmp ax, word [edi + 0x32]
jae 0x100ab07e
add ebx, 4
nop word [eax + eax]
mov eax, dword [edi + 4]
cmp word [eax + esi*2], 0xfffe
jne 0x100ab06e
push ecx
mov ecx, dword [ebx]
call fcn.100726a0
push eax
mov ecx, ebp
call fcn.100726a0
mov edx, eax
xor ecx, ecx
call fcn.10078da0
add esp, 8
test eax, eax
je 0x100ab0f6
movzx eax, word [edi + 0x32]
inc esi
mov ecx, dword [esp + 0x20]
add ebx, 0x18
cmp esi, eax
jl 0x100ab040
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
inc ecx
mov eax, dword [esp + 0x1c]
add eax, 0x18
mov dword [esp + 0x48], ecx
mov dword [esp + 0x1c], eax
cmp ecx, dword [edx]
jl 0x100aafd8
xor edx, edx
mov ecx, dword [edi + 0x38]
mov eax, ecx
and eax, 3
cmp al, 3
jne 0x100ab0fd
mov ebx, dword [esp + 0x10]
xor ecx, ecx
mov eax, dword [esp + 0x30]
test edx, edx
mov ebp, dword [esp + 0x2c]
mov edx, ebx
movzx eax, al
cmovne ecx, eax
mov dword [ebx + 0x24], 0x100
mov byte [ebx + 0x11], cl
mov ecx, dword [esp + 0x28]
lea eax, [ebp + 0x10]
push ebp
mov word [ebx + 0x14], ax
call fcn.100aa0f0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov edx, ebx
call fcn.100a9ea0
mov word [ebx + 0x16], bp
jmp 0x100ab2cd
mov edx, 1
jmp 0x100ab0a0
test cl, 0x20
je 0x100ab11a
xorps xmm0, xmm0
mov eax, 0x240
movlpd qword [esp + 0x38], xmm0
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x100ab13a
mov eax, dword [esp + 0x14]
mov esi, dword [edi + 0x40]
mov ebx, dword [edi + 0x44]
and esi, dword [eax + 0x38]
and ebx, dword [eax + 0x3c]
mov eax, esi
or eax, ebx
mov eax, 0x240
je 0x100ab13a
mov eax, 0x200
mov ebp, dword [esp + 0x10]
mov dword [ebp + 0x24], eax
test edx, edx
jne 0x100ab19e
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x24], 0x20
jne 0x100ab19e
cmp dword [edi + 0x24], edx
jne 0x100ab19e
mov eax, esi
or eax, ebx
jne 0x100ab2d5
test byte [edi + 0x38], 4
jne 0x100ab2d5
mov ax, word [edi + 0x30]
cmp ax, word [ecx + 0x2e]
jge 0x100ab2d5
mov eax, dword [esp + 0x34]
test byte [eax + 0x2c], 4
jne 0x100ab2d5
cmp dword [0x100ff058], edx
je 0x100ab2d5
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x4c], 0x20
jne 0x100ab2d5
mov eax, dword [esp + 0x30]
xor ecx, ecx
movzx eax, al
test edx, edx
cmovne ecx, eax
mov byte [ebp + 0x11], cl
movsx ecx, word [edi + 0x30]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x24]
cdq
movsx ecx, word [ecx + 0x2e]
idiv ecx
mov ecx, dword [esp + 0x2c]
inc eax
add eax, ecx
or esi, ebx
mov word [ebp + 0x14], ax
je 0x100ab2ab
mov edx, dword [esp + 0x34]
lea eax, [ecx + 0x10]
movzx esi, ax
xor ebp, ebp
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x38], eax
cmp dword [edx + 0x5c], ebp
jle 0x100ab294
xor ecx, ecx
mov dword [esp + 0x1c], ecx
nop
mov ebx, dword [edx + 0x64]
xorps xmm0, xmm0
mov edx, dword [ebx + ecx]
add ebx, ecx
mov dword [esp + 0x54], eax
lea eax, [esp + 0x50]
mov dword [esp + 0xa4], 0
movlpd qword [esp + 0xac], xmm0
movlpd qword [esp + 0xb4], xmm0
mov dword [esp + 0x50], edi
mov dword [esp + 0xa8], 0x100795b0
mov dword [esp + 0xbc], eax
test edx, edx
je 0x100ab25a
lea ecx, [esp + 0xa4]
call fcn.1006fe90
mov ecx, dword [esp + 0x1c]
cmp byte [esp + 0xb8], 0
jne 0x100ab294
movzx eax, word [ebx + 8]
test ax, ax
jg 0x100ab271
add esi, eax
jmp 0x100ab27b
dec esi
test byte [ebx + 0xc], 0x82
je 0x100ab27b
sub esi, 0x13
mov edx, dword [esp + 0x34]
inc ebp
mov eax, dword [esp + 0x38]
add ecx, 0x30
mov dword [esp + 0x1c], ecx
cmp ebp, dword [edx + 0x5c]
jl 0x100ab200
mov ebp, dword [esp + 0x10]
mov edx, esi
mov cx, word [ebp + 0x14]
call fcn.100434f0
mov ecx, dword [esp + 0x2c]
mov word [ebp + 0x14], ax
push ecx
mov ecx, dword [esp + 0x2c]
mov edx, ebp
call fcn.100aa0f0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov edx, ebp
call fcn.100a9ea0
mov ecx, dword [esp + 0x2c]
mov word [ebp + 0x16], cx
test eax, eax
jne 0x100aaf1c
mov eax, dword [esp + 0x18]
mov ecx, eax
mov ebp, dword [esp + 0x14]
mov edx, ebp
push 0
push edi
mov dword [eax + 0x14], 0
call fcn.100aa3e0
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x14], 1
jne 0x100ab30a
mov eax, dword [esp + 0x24]
or dword [eax + 0x24], 0x100
cmp dword [ebp + 0x44], 0
je 0x100ab314
xor edi, edi
jmp 0x100ab317
mov edi, dword [edi + 0x14]
inc dword [esp + 0x30]
test ebx, ebx
jne 0x100aaf1a
mov esi, dword [esp + 0x10]
jmp 0x100aaf33