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

Disassembly:
sub esp, 0xd4
mov eax, dword [0x10104008]
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 + 0x24], edx
push edi
mov ecx, 0x101080ea
mov dword [esp + 0x34], ebp
mov dword [esp + 0x20], ebx
call fcn.100de193
mov eax, dword [ebp]
xor ecx, ecx
mov esi, dword [ebp + 0xc]
xor edi, edi
mov dword [esp + 0x24], 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 0x100adf0e
lea eax, [edi + 7]
jmp 0x100ae638
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 + 0x28]
cmove ecx, edx
mov edx, dword [ebp + 4]
push ebx
push ecx
push edi
push dword [eax + 0x2c]
lea ecx, [esp + 0x88]
call fcn.100ac4b0
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 0x100adfbb
mov dword [esp + 0x3c], 0
jmp 0x100adfd2
cwde
cdq
push edx
push eax
call fcn.10044240
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 0x100ae518
movzx edx, word [ebp + 0xc]
mov eax, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], eax
cmp ax, cx
jne 0x100ae02c
mov eax, dword [ebx + 4]
movsx ecx, word [eax + edi*2]
test ecx, ecx
js 0x100ae023
mov eax, dword [ebx + 0xc]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*4 + 0xc]
test al, al
jne 0x100ae4fd
jmp 0x100ae02c
cmp ecx, 0xffffffff
je 0x100ae4fd
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
and ecx, dword [ebp + 0x20]
and eax, dword [ebp + 0x24]
or ecx, eax
jne 0x100ae4fd
mov eax, 0x100
test word [ebp + 0xa], ax
je 0x100ae054
cmp edx, 0x10
je 0x100ae4fd
mov eax, dword [esp + 0x28]
test byte [eax + 0x24], 8
je 0x100ae06b
mov eax, dword [ebp]
test byte [eax + 4], 1
je 0x100ae4fd
cmp byte [ebx + 0x36], 0
je 0x100ae084
movzx eax, word [ebx + 0x32]
dec eax
cmp edi, eax
jne 0x100ae084
mov edi, dword [esp + 0x34]
or dword [edi + 0x14], 2
jmp 0x100ae08c
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.100ad600
add esp, 4
test eax, eax
jne 0x100ae518
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 0x100ae1d5
mov edx, dword [ebp]
test dword [edx + 4], 0x800
je 0x100ae1ad
lea edi, [ebx - 1]
mov dword [esp + 0x14], 0x2e
xor ecx, ecx
test edi, edi
jle 0x100ae1ce
mov ebx, dword [esi + 0x30]
mov esi, dword [esp + 0x14]
nop
mov eax, dword [ebx + ecx*4]
test eax, eax
je 0x100ae156
cmp dword [eax], edx
mov dword [esp + 0x14], 0
cmove esi, dword [esp + 0x14]
inc ecx
cmp ecx, edi
jl 0x100ae140
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 0x100ae19d
mov eax, dword [ebx + 8]
mov edx, dword [esp + 0x18]
movzx edi, word [eax + edx*2]
call fcn.100ac860
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 0x100ae4f9
or dword [esi + 0x24], 4
mov edx, dword [esi + 0x24]
mov ecx, dword [esp + 0x1c]
jmp 0x100ae322
mov eax, dword [edx + 0x14]
test eax, eax
je 0x100ae163
mov eax, dword [eax]
test eax, eax
je 0x100ae163
cdq
push edx
push eax
call fcn.10044240
movsx ecx, ax
add esp, 8
mov dword [esp + 0x14], ecx
jmp 0x100ae167
mov ecx, 0x2e
jmp 0x100ae167
mov ebx, dword [esp + 0x20]
test al, 0x82
je 0x100ae252
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 0x100ae23e
mov edx, ecx
test eax, eax
js 0x100ae249
cmp word [esp + 0x30], 0
jne 0x100ae249
movzx edi, word [ebx + 0x32]
lea eax, [edi - 1]
cmp dword [esp + 0x18], eax
jne 0x100ae249
test byte [ebx + 0x38], 8
jne 0x100ae23e
cmp edi, 1
jne 0x100ae22a
cmp byte [ebx + 0x36], 0
je 0x100ae22a
cmp word [esp + 0x38], 2
je 0x100ae23e
mov edx, ecx
mov ecx, dword [esp + 0x1c]
or edx, 0x10000
mov dword [esi + 0x24], edx
jmp 0x100ae322
mov edx, ecx
or edx, 0x1000
mov dword [esi + 0x24], edx
mov ecx, dword [esp + 0x1c]
jmp 0x100ae322
mov edx, dword [esi + 0x24]
test eax, 0x100
je 0x100ae26b
mov ecx, dword [esp + 0x1c]
or edx, 8
mov dword [esi + 0x24], edx
jmp 0x100ae322
mov ecx, dword [esp + 0x50]
test al, 0x24
mov eax, dword [esp + 0x28]
push ebp
push dword [esp + 0x1c]
push ebx
je 0x100ae2ee
or edx, 0x22
mov dword [esi + 0x24], edx
mov edx, dword [eax + 0x2c]
call fcn.100adcf0
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 0x100ae2e5
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.100ad600
add esp, 4
test eax, eax
jne 0x100ae518
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 0x100ae322
or edx, 0x12
mov dword [esi + 0x24], edx
mov edx, dword [eax + 0x2c]
call fcn.100adcf0
mov edx, dword [esi + 0x24]
add esp, 0xc
mov word [esi + 0x1c], ax
mov dword [esp + 0x2c], ebp
test dl, 0x20
je 0x100ae31c
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
mov ecx, dword [eax + ecx*4 - 8]
jmp 0x100ae31e
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test dl, 2
je 0x100ae3bc
movzx eax, word [esi + 0x16]
movsx edi, ax
test ecx, ecx
je 0x100ae346
movzx ecx, word [ecx + 8]
test cx, cx
jg 0x100ae343
add eax, ecx
jmp 0x100ae346
sub eax, 0x14
mov ebp, dword [esp + 0x2c]
movzx ecx, ax
test ebp, ebp
je 0x100ae364
movzx ecx, word [ebp + 8]
test cx, cx
jg 0x100ae35e
add eax, ecx
jmp 0x100ae361
add eax, 0xffffffec
movzx ecx, ax
mov eax, dword [esp + 0x1c]
movzx edx, cx
test eax, eax
je 0x100ae387
cmp word [eax + 8], 0
jle 0x100ae387
test ebp, ebp
je 0x100ae387
cmp word [ebp + 8], 0
jle 0x100ae387
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 0x100ae415
inc word [esi + 0x18]
movzx ecx, word [ebp + 8]
movzx edx, word [esi + 0x18]
test cx, cx
jg 0x100ae3eb
mov eax, dword [ebx + 4]
mov ebp, dword [esp + 0x18]
cmp word [eax + ebp*2], 0
jl 0x100ae3eb
mov ebp, dword [esp + 0x14]
sub ecx, ebp
add word [esi + 0x16], cx
movzx edi, word [esi + 0x16]
jmp 0x100ae41d
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 0x100ae419
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 + 0x28]
mov eax, dword [eax + 0x10]
movsx ecx, word [eax + 0x30]
mov eax, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x3c]
inc eax
add eax, edi
movzx edx, ax
call fcn.100441b0
test dword [esi + 0x24], 0x140
movzx ecx, ax
mov word [esi + 0x14], cx
jne 0x100ae468
movzx edx, word [esi + 0x16]
add dx, 0x10
call fcn.100441b0
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.100adba0
add esp, 4
mov edx, esi
mov ecx, ebp
call fcn.100ad940
test byte [esi + 0x24], 2
mov ecx, edi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
movzx edx, ax
cmove edx, ecx
mov word [esi + 0x16], dx
test byte [esi + 0x24], 0x10
jne 0x100ae4ed
mov eax, dword [esp + 0x20]
mov cx, word [esi + 0x18]
cmp cx, word [eax + 0x34]
jae 0x100ae4e9
mov eax, dword [esp + 0x30]
mov ecx, ebp
mov edx, dword [esp + 0x28]
add eax, ebx
mov ebx, dword [esp + 0x20]
push eax
push ebx
call fcn.100adea0
add esp, 8
jmp 0x100ae4f1
mov ebx, eax
jmp 0x100ae4f1
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.100ac200
cmp dword [esp + 0x24], 0
mov ebp, eax
mov ecx, 0x100
je 0x100adfe2
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x5c]
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x60]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x44]
mov word [esi + 0x18], bp
mov word [esi + 0x2a], cx
mov word [esi + 0x16], ax
mov word [esi + 0x28], dx
cmp bp, cx
jne 0x100ae632
mov edi, dword [esp + 0x18]
movzx ecx, word [ebx + 0x32]
lea eax, [edi + 1]
cmp eax, ecx
jae 0x100ae632
cmp bp, dx
jne 0x100ae632
test byte [ebx + 0x38], 0x40
jne 0x100ae632
mov ecx, dword [esp + 0x40]
mov eax, 0x4000
test word [ecx + 0x4c], ax
jne 0x100ae632
mov eax, dword [ebx + 8]
cmp word [eax + edi*2 + 2], 0x2a
jl 0x100ae632
movzx eax, dx
mov edx, esi
inc eax
push eax
call fcn.100ad600
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x100ae636
movzx ecx, word [esi + 0x28]
mov eax, dword [esi + 0x30]
inc word [esi + 0x18]
inc word [esi + 0x2a]
mov edx, dword [esp + 0x28]
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.100adea0
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 0x100ae636
mov ebp, dword [esp + 0x24]
mov eax, ebp
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100dcb60
add esp, 0xd4
ret