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

Disassembly:
sub esp, 0xd4
mov eax, dword [0x100ff008]
xor eax, esp
mov dword [esp + 0xcc], eax
push ebx
mov ebx, dword [esp + 0xdc]
push ebp
push esi
mov ebp, ecx
mov dword [esp + 0x20], edx
push edi
mov ecx, 0x10103106
mov dword [esp + 0x34], ebp
mov dword [esp + 0x20], ebx
call fcn.100d96c4
mov eax, dword [ebp]
xor ecx, ecx
mov esi, dword [ebp + 0xc]
xor edi, edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], edi
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x6c], esi
mov eax, dword [eax]
mov dword [esp + 0x40], eax
cmp byte [eax + 0x51], cl
je 0x100aa44e
lea eax, [edi + 7]
jmp 0x100aab6f
mov eax, dword [esi + 0x24]
mov edx, 0x18
test al, 0x20
movzx ecx, word [esi + 0x18]
mov dword [esp + 0x4c], eax
mov eax, 0x1bf
cmove edx, eax
mov dword [esp + 0x48], ecx
movzx eax, word [esi + 0x1a]
mov dword [esp + 0x5c], eax
movzx eax, word [esi + 0x1c]
mov dword [esp + 0x60], eax
movzx eax, word [esi + 0x2a]
mov dword [esp + 0x68], eax
movzx eax, word [esi + 0x28]
mov dword [esp + 0x64], eax
mov eax, dword [esi]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x58], eax
movzx eax, word [esi + 0x16]
mov edi, eax
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x74], edi
movzx edi, cx
mov ecx, edx
and ecx, 0xffffffc3
mov dword [esp + 0x18], edi
and al, 4
mov eax, dword [esp + 0x24]
cmove ecx, edx
mov edx, dword [ebp + 4]
push ebx
push ecx
push edi
push dword [eax + 0x2c]
lea ecx, [esp + 0x88]
call fcn.100a8a30
mov ebp, eax
add esp, 0x10
xor eax, eax
mov word [esi + 0x12], ax
mov eax, dword [ebx + 8]
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x70], ecx
cmp cx, 0xa
jg 0x100aa4fb
mov dword [esp + 0x3c], 0
jmp 0x100aa512
cwde
cdq
push edx
push eax
call fcn.10043580
add esp, 8
sub ax, 0x21
movzx eax, ax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xec]
mov ecx, 0x100
mov dword [esp + 0x30], eax
test ebp, ebp
je 0x100aaa58
movzx edx, word [ebp + 0xc]
mov eax, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], eax
cmp ax, cx
jne 0x100aa56b
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x100aa562
mov eax, dword [ebx + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xc]
test al, al
jne 0x100aaa3d
jmp 0x100aa56b
cmp ecx, 0xffffffff
je 0x100aaa3d
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
and ecx, dword [ebp + 0x20]
and eax, dword [ebp + 0x24]
or ecx, eax
jne 0x100aaa3d
mov eax, 0x100
test word [ebp + 0xa], ax
je 0x100aa593
cmp edx, 0x10
je 0x100aaa3d
mov eax, dword [esp + 0x24]
test byte [eax + 0x24], 8
je 0x100aa5aa
mov eax, dword [ebp]
test byte [eax + 4], 1
je 0x100aaa3d
cmp byte [ebx + 0x36], 0
je 0x100aa5c3
movzx eax, word [ebx + 0x32]
dec eax
cmp edi, eax
jne 0x100aa5c3
mov edi, dword [esp + 0x34]
or dword [edi + 0x14], 2
jmp 0x100aa5cb
mov eax, dword [esp + 0x34]
or dword [eax + 0x14], 1
mov eax, dword [esp + 0x4c]
mov edx, esi
mov ecx, dword [esp + 0x40]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x48]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x5c]
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x60]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x64]
mov word [esi + 0x28], ax
movzx eax, ax
inc eax
push eax
call fcn.100a9b70
add esp, 4
test eax, eax
jne 0x100aaa58
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov dword [eax + ecx*4], ebp
mov ax, word [esi + 0x28]
mov ecx, dword [esi + 8]
inc ax
mov word [esi + 0x28], ax
not ecx
or edx, dword [ebp + 0x24]
or edi, dword [ebp + 0x20]
movzx ebx, ax
and edi, ecx
mov eax, dword [esi + 0xc]
not eax
mov dword [esi], edi
and edx, eax
mov eax, dword [esp + 0x38]
mov dword [esi + 4], edx
test al, 1
je 0x100aa715
mov edx, dword [ebp]
test dword [edx + 4], 0x800
je 0x100aa6ed
lea edi, [ebx - 1]
mov dword [esp + 0x14], 0x2e
xor ecx, ecx
test edi, edi
jle 0x100aa70e
mov ebx, dword [esi + 0x30]
mov esi, dword [esp + 0x14]
nop dword [eax]
mov eax, dword [ebx + ecx*4]
test eax, eax
je 0x100aa696
cmp dword [eax], edx
mov dword [esp + 0x14], 0
cmove esi, dword [esp + 0x14]
inc ecx
cmp ecx, edi
jl 0x100aa680
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
test byte [ebx + 0x38], 0x80
je 0x100aa6dd
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x18]
movzx edi, word [eax + edx*2]
call fcn.100a8de0
movsx ecx, ax
movsx eax, di
add eax, 0xa
add ecx, eax
mov eax, dword [esp + 0x3c]
cwde
add eax, dword [esp + 0x14]
cmp ecx, eax
jl 0x100aaa39
or dword [esi + 0x24], 4
mov edx, dword [esi + 0x24]
mov ecx, dword [esp + 0x1c]
jmp 0x100aa862
mov eax, dword [edx + 0x14]
test eax, eax
je 0x100aa6a3
mov eax, dword [eax]
test eax, eax
je 0x100aa6a3
cdq
push edx
push eax
call fcn.10043580
movsx ecx, ax
add esp, 8
mov dword [esp + 0x14], ecx
jmp 0x100aa6a7
mov ecx, 0x2e
jmp 0x100aa6a7
mov ebx, dword [esp + 0x20]
test al, 0x82
je 0x100aa792
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x18]
movsx eax, word [eax + ecx*2]
mov ecx, dword [esi + 0x24]
or ecx, 1
mov dword [esi + 0x24], ecx
cmp eax, 0xffffffff
je 0x100aa77e
mov edx, ecx
test eax, eax
js 0x100aa789
cmp word [esp + 0x30], 0
jne 0x100aa789
movzx edi, word [ebx + 0x32]
lea eax, [edi - 1]
cmp dword [esp + 0x18], eax
jne 0x100aa789
test byte [ebx + 0x38], 8
jne 0x100aa77e
cmp edi, 1
jne 0x100aa76a
cmp byte [ebx + 0x36], 0
je 0x100aa76a
cmp word [esp + 0x38], 2
je 0x100aa77e
mov edx, ecx
mov ecx, dword [esp + 0x1c]
or edx, 0x10000
mov dword [esi + 0x24], edx
jmp 0x100aa862
mov edx, ecx
or edx, 0x1000
mov dword [esi + 0x24], edx
mov ecx, dword [esp + 0x1c]
jmp 0x100aa862
mov edx, dword [esi + 0x24]
test eax, 0x100
je 0x100aa7ab
mov ecx, dword [esp + 0x1c]
or edx, 8
mov dword [esi + 0x24], edx
jmp 0x100aa862
mov ecx, dword [esp + 0x50]
test al, 0x24
mov eax, dword [esp + 0x24]
push ebp
push dword [esp + 0x1c]
push ebx
je 0x100aa82e
or edx, 0x22
mov dword [esi + 0x24], edx
mov edx, dword [eax + 0x2c]
call fcn.100aa240
mov word [esi + 0x1a], ax
xor edi, edi
mov eax, 0x100
mov dword [esp + 0x28], ebp
add esp, 0xc
mov dword [esp + 0x2c], edi
test word [ebp + 0xa], ax
je 0x100aa825
movzx eax, word [esi + 0x28]
lea edi, [ebp + 0x30]
mov ecx, dword [esp + 0x40]
inc eax
push eax
mov edx, esi
mov dword [esp + 0x30], edi
call fcn.100a9b70
add esp, 4
test eax, eax
jne 0x100aaa58
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov dword [eax + ecx*4], edi
mov eax, 1
inc word [esi + 0x28]
or dword [esi + 0x24], 0x10
mov word [esi + 0x1c], ax
mov edx, dword [esi + 0x24]
mov ecx, dword [esp + 0x1c]
jmp 0x100aa862
or edx, 0x12
mov dword [esi + 0x24], edx
mov edx, dword [eax + 0x2c]
call fcn.100aa240
mov edx, dword [esi + 0x24]
add esp, 0xc
mov word [esi + 0x1c], ax
mov dword [esp + 0x2c], ebp
test dl, 0x20
je 0x100aa85c
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4 - 8]
jmp 0x100aa85e
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test dl, 2
je 0x100aa8fc
movzx eax, word [esi + 0x16]
movsx edi, ax
test ecx, ecx
je 0x100aa886
movzx ecx, word [ecx + 8]
test cx, cx
jg 0x100aa883
add eax, ecx
jmp 0x100aa886
sub eax, 0x14
mov ebp, dword [esp + 0x2c]
movzx ecx, ax
test ebp, ebp
je 0x100aa8a4
movzx ecx, word [ebp + 8]
test cx, cx
jg 0x100aa89e
add eax, ecx
jmp 0x100aa8a1
add eax, 0xffffffec
movzx ecx, ax
mov eax, dword [esp + 0x1c]
movzx edx, cx
test eax, eax
je 0x100aa8c7
cmp word [eax + 8], 0
jle 0x100aa8c7
test ebp, ebp
je 0x100aa8c7
cmp word [ebp + 8], 0
jle 0x100aa8c7
lea eax, [ecx - 0x14]
movzx edx, ax
xor eax, eax
cmp dword [esp + 0x1c], eax
setne al
sub edi, eax
xor eax, eax
test ebp, ebp
setne al
sub edi, eax
cmp dx, 0xa
mov eax, 0xa
cmovl edx, eax
movzx eax, di
movsx ecx, dx
cmp ecx, edi
movzx edx, cx
cmovge edx, eax
movzx eax, dx
mov edi, eax
jmp 0x100aa955
inc word [esi + 0x18]
movzx ecx, word [ebp + 8]
movzx edx, word [esi + 0x18]
test cx, cx
jg 0x100aa92b
mov eax, dword [ebx + 4]
mov ebp, dword [esp + 0x18]
cmp word [eax + ebp*2], 0
jl 0x100aa92b
mov ebp, dword [esp + 0x14]
sub ecx, ebp
add word [esi + 0x16], cx
movzx edi, word [esi + 0x16]
jmp 0x100aa95d
mov eax, dword [ebx + 8]
mov cx, word [esi + 0x16]
sub cx, word [eax + edx*2 - 2]
add cx, word [eax + edx*2]
test dword [esp + 0x38], 0x100
movzx eax, cx
mov word [esi + 0x16], cx
movzx edi, cx
je 0x100aa959
add eax, 0xa
movzx edi, ax
mov word [esi + 0x16], ax
mov ebp, dword [esp + 0x14]
movsx eax, word [ebx + 0x30]
mov edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
movsx ecx, word [eax + 0x2e]
mov eax, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x3c]
inc eax
add eax, edi
movzx edx, ax
call fcn.100434f0
test dword [esi + 0x24], 0x140
movzx ecx, ax
mov word [esi + 0x14], cx
jne 0x100aa9a8
movzx edx, word [esi + 0x16]
add dx, 0x10
call fcn.100434f0
mov word [esi + 0x14], ax
mov ecx, dword [esp + 0x30]
mov edx, esi
movzx edi, word [esi + 0x16]
push dword [esp + 0x70]
movzx ebx, bp
mov ebp, dword [esp + 0x38]
lea eax, [ebx + ecx]
add word [esi + 0x14], ax
lea eax, [ebx + edi]
add eax, ecx
mov word [esi + 0x16], ax
mov ecx, dword [ebp + 4]
call fcn.100aa0f0
add esp, 4
mov edx, esi
mov ecx, ebp
call fcn.100a9ea0
test byte [esi + 0x24], 2
mov ecx, edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
movzx edx, ax
cmove edx, ecx
mov word [esi + 0x16], dx
test byte [esi + 0x24], 0x10
jne 0x100aaa2d
mov eax, dword [esp + 0x20]
mov cx, word [esi + 0x18]
cmp cx, word [eax + 0x34]
jae 0x100aaa29
mov eax, dword [esp + 0x30]
mov ecx, ebp
mov edx, dword [esp + 0x24]
add eax, ebx
mov ebx, dword [esp + 0x20]
push eax
push ebx
call fcn.100aa3e0
add esp, 8
jmp 0x100aaa31
mov ebx, eax
jmp 0x100aaa31
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
mov word [esi + 0x16], ax
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x78]
call fcn.100a8770
cmp dword [esp + 0x28], 0
mov ebp, eax
mov ecx, 0x100
je 0x100aa522
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov word [esi + 0x1a], cx
mov ecx, dword [esp + 0x60]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
mov word [esi + 0x1c], cx
mov ecx, dword [esp + 0x4c]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x24], ecx
mov ecx, dword [esp + 0x44]
mov word [esi + 0x18], ax
mov word [esi + 0x2a], bp
mov word [esi + 0x16], cx
mov word [esi + 0x28], dx
cmp ax, bp
jne 0x100aab69
mov edi, dword [esp + 0x18]
movzx ecx, word [ebx + 0x32]
lea eax, [edi + 1]
cmp eax, ecx
jae 0x100aab69
test byte [ebx + 0x38], 0x40
jne 0x100aab69
mov ecx, dword [esp + 0x40]
mov eax, 0x4000
test word [ecx + 0x4c], ax
jne 0x100aab69
mov eax, dword [ebx + 8]
cmp word [eax + edi*2 + 2], 0x2a
jl 0x100aab69
movzx eax, dx
mov edx, esi
inc eax
push eax
call fcn.100a9b70
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x100aab6d
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
inc word [esi + 0x18]
inc word [esi + 0x2a]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], ebp
inc word [esi + 0x28]
or dword [esi + 0x24], 0x8000
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x18]
mov di, word [eax + edi*2]
sub di, word [eax + ecx*2 + 2]
mov ecx, dword [esp + 0x34]
movzx eax, di
mov edi, dword [esp + 0x30]
sub word [esi + 0x16], ax
add edi, 5
add eax, edi
push eax
push ebx
call fcn.100aa3e0
mov eax, dword [esp + 0x4c]
add esp, 8
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x48]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x68]
mov word [esi + 0x2a], ax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x24], eax
jmp 0x100aab6d
mov ebp, dword [esp + 0x28]
mov eax, ebp
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100d8362
add esp, 0xd4
ret