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

Disassembly:
sub esp, 0xcc
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x1c], edx
push esi
xor ebx, ebx
mov dword [esp + 0x34], ebp
push edi
mov eax, dword [ebp]
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], ebx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x68], esi
mov ecx, dword [eax]
xor eax, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
cmp byte [ecx + 0x57], al
je 0x101ac9f1
lea eax, [ebx + 7]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
mov eax, dword [esi + 0x2c]
mov edx, 0x18
movzx ecx, word [esi + 0x18]
test al, 0x20
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x48], eax
mov eax, 0x1bf
cmove edx, eax
mov dword [esp + 0x3c], ecx
movzx eax, word [esi + 0x1a]
mov dword [esp + 0x58], eax
movzx eax, word [esi + 0x1c]
mov dword [esp + 0x5c], eax
movzx eax, word [esi + 0x32]
mov dword [esp + 0x64], eax
movzx eax, word [esi + 0x30]
mov dword [esp + 0x60], eax
mov eax, dword [esi]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x54], eax
movzx eax, word [esi + 0x16]
mov ebx, eax
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x70], ebx
movzx ebx, cx
mov ecx, edx
and ecx, 0xffffffc3
mov dword [esp + 0x20], ebx
and al, 4
push edi
cmove ecx, edx
mov edx, dword [esp + 0x28]
push ecx
push ebx
lea ecx, [esp + 0x84]
push dword [edx + 0x2c]
mov edx, dword [ebp + 4]
call fcn.101aff30
mov ebp, eax
add esp, 0x10
xor eax, eax
mov word [esi + 0x12], ax
mov eax, dword [edi + 8]
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x6c], ecx
cmp cx, 0xa
jg 0x101acaa5
mov dword [esp + 0x34], 0
jmp 0x101acabc
cwde
cdq
push edx
push eax
call fcn.10232320
add esp, 8
sub ax, 0x21
movzx eax, ax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xe4]
mov ecx, 0x100
mov dword [esp + 0x2c], eax
nop dword [eax]
test ebp, ebp
je 0x101ad0a5
movzx edx, word [ebp + 0xc]
mov eax, edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x40], eax
cmp ax, cx
je 0x101acaf5
test byte [ebp + 0xa], 0x80
je 0x101acb20
mov eax, dword [edi + 4]
movsx ecx, word [eax + ebx*2]
test ecx, ecx
js 0x101acb17
mov eax, dword [edi + 0xc]
add ecx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8 + 4]
and eax, 0xf
jne 0x101ad08a
jmp 0x101acb20
cmp ecx, 0xffffffff
je 0x101ad08a
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0xc]
and ecx, dword [ebp + 0x20]
and eax, dword [ebp + 0x24]
or ecx, eax
jne 0x101ad08a
mov eax, 0x100
test word [ebp + 0xa], ax
je 0x101acb48
cmp edx, 0x10
je 0x101ad08a
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x24], 0x58
je 0x101acb6b
mov eax, dword [ebp]
test byte [eax + 4], 3
je 0x101ad08a
mov eax, dword [eax + 0x24]
cmp eax, dword [ecx + 0x2c]
jne 0x101ad08a
cmp byte [edi + 0x36], 0
je 0x101acb84
movzx eax, word [edi + 0x32]
dec eax
cmp ebx, eax
jne 0x101acb84
mov ebx, dword [esp + 0x38]
or byte [ebx + 0x10], 2
jmp 0x101acb8c
mov eax, dword [esp + 0x38]
or byte [eax + 0x10], 1
mov eax, dword [esp + 0x48]
mov edx, esi
mov ebx, dword [esp + 0x28]
mov ecx, ebx
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x58]
mov word [esi + 0x1a], ax
mov eax, dword [esp + 0x5c]
mov word [esi + 0x1c], ax
mov eax, dword [esp + 0x60]
mov word [esi + 0x30], ax
movzx eax, ax
inc eax
push eax
call fcn.101adf30
add esp, 4
test eax, eax
jne 0x101ad0a9
movzx ecx, word [esi + 0x30]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], ebp
mov ax, word [esi + 0x30]
mov ecx, dword [esi + 8]
inc ax
mov word [esi + 0x30], ax
not ecx
mov edx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x20]
or edx, dword [esp + 0x54]
or edi, dword [esp + 0x50]
movzx ebx, ax
and edi, ecx
mov eax, dword [esi + 0xc]
not eax
mov dword [esi], edi
and edx, eax
mov eax, dword [esp + 0x40]
mov dword [esi + 4], edx
test al, 1
je 0x101acd14
mov edx, dword [ebp]
test dword [edx + 4], 0x1000
je 0x101acce0
lea edi, [ebx - 1]
mov dword [esp + 0x14], 0x2e
xor ecx, ecx
test edi, edi
jle 0x101acd0a
mov ebx, dword [esi + 0x38]
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + ecx*4]
test eax, eax
je 0x101acc56
cmp dword [eax], edx
mov dword [esp + 0x14], 0
cmove esi, dword [esp + 0x14]
inc ecx
cmp ecx, edi
jl 0x101acc40
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0xe0]
test byte [ebx + 0x38], 0x80
je 0x101accc9
cmp word [esp + 0x34], 0xa
jl 0x101accc9
movzx edi, ax
mov ecx, edi
call fcn.101afb50
mov cx, ax
mov eax, dword [ebx + 8]
mov ebx, dword [esp + 0x20]
mov ax, word [eax + ebx*2]
sub ax, di
sub ax, word [esp + 0x34]
add cx, ax
add cx, 0xa
jns 0x101accc9
cmp word [esp + 0x2c], 2
jge 0x101ad083
mov ecx, dword [esp + 0x28]
test dword [ecx + 0x50], 0x20000
jne 0x101ad083
or dword [esi + 0x2c], 0x100000
or dword [esi + 0x2c], 4
mov ebx, dword [esi + 0x2c]
mov edi, dword [esp + 0xe0]
mov edx, dword [esp + 0x1c]
jmp 0x101ace6d
mov eax, dword [edx + 0x14]
test eax, eax
je 0x101acc63
mov eax, dword [eax]
test eax, eax
je 0x101acc63
cdq
push edx
push eax
call fcn.10232320
cwde
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x101acc67
mov eax, 0x2e
jmp 0x101acc67
mov edi, dword [esp + 0xe0]
test al, 0x82
je 0x101acd9d
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x20]
movsx eax, word [eax + ecx*2]
mov ecx, dword [esi + 0x2c]
or ecx, 1
mov dword [esi + 0x2c], ecx
cmp eax, 0xffffffff
je 0x101acd76
mov ebx, ecx
test eax, eax
js 0x101acd81
cmp word [esp + 0x2c], 0
jne 0x101acd81
movzx edx, word [edi + 0x32]
lea eax, [edx - 1]
cmp dword [esp + 0x20], eax
jne 0x101acd81
test byte [edi + 0x38], 8
jne 0x101acd76
cmp edx, 1
jne 0x101acd6c
cmp byte [edi + 0x36], 0
je 0x101acd6c
cmp word [esp + 0x40], 2
je 0x101acd76
mov ebx, ecx
or ebx, 0x10000
jmp 0x101acd7e
mov ebx, ecx
or ebx, 0x1000
mov dword [esi + 0x2c], ebx
cmp byte [esp + 0x91], 1
jbe 0x101acd94
or ebx, 0x200000
mov dword [esi + 0x2c], ebx
mov edx, dword [esp + 0x1c]
jmp 0x101ace6d
mov ebx, dword [esi + 0x2c]
test eax, 0x100
je 0x101acdb6
mov edx, dword [esp + 0x1c]
or ebx, 8
mov dword [esi + 0x2c], ebx
jmp 0x101ace6d
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
push ebp
push dword [esp + 0x24]
push edi
test al, 0x24
je 0x101ace39
or ebx, 0x22
mov dword [esi + 0x2c], ebx
mov edx, dword [edx + 0x2c]
call fcn.101ad1f0
mov word [esi + 0x1a], ax
xor ebx, ebx
mov eax, 0x100
mov dword [esp + 0x28], ebp
add esp, 0xc
mov dword [esp + 0x30], ebx
test word [ebp + 0xa], ax
je 0x101ace30
movzx eax, word [esi + 0x30]
lea ebx, [ebp + 0x30]
mov ecx, dword [esp + 0x28]
inc eax
push eax
mov edx, esi
mov dword [esp + 0x34], ebx
call fcn.101adf30
add esp, 4
test eax, eax
jne 0x101ad0a5
movzx ecx, word [esi + 0x30]
mov eax, dword [esi + 0x38]
mov dword [eax + ecx*4], ebx
mov eax, 1
inc word [esi + 0x30]
or dword [esi + 0x2c], 0x10
mov word [esi + 0x1c], ax
mov ebx, dword [esi + 0x2c]
mov edx, dword [esp + 0x1c]
jmp 0x101ace6d
or ebx, 0x12
mov dword [esi + 0x2c], ebx
mov edx, dword [edx + 0x2c]
call fcn.101ad1f0
mov ebx, dword [esi + 0x2c]
add esp, 0xc
mov word [esi + 0x1c], ax
mov dword [esp + 0x30], ebp
test bl, 0x20
je 0x101ace67
movzx ecx, word [esi + 0x30]
mov eax, dword [esi + 0x38]
mov edx, dword [eax + ecx*4 - 8]
jmp 0x101ace69
xor edx, edx
mov dword [esp + 0x1c], edx
test bl, 2
je 0x101acf14
movzx eax, word [esi + 0x16]
movsx edi, ax
test edx, edx
je 0x101ace97
movzx ecx, word [edx + 8]
test cx, cx
jg 0x101ace8e
add eax, ecx
jmp 0x101ace97
test byte [edx + 0xa], 0x80
jne 0x101ace97
sub eax, 0x14
mov ebx, dword [esp + 0x30]
movzx ecx, ax
test ebx, ebx
je 0x101acebb
movzx edx, word [ebx + 8]
test dx, dx
jg 0x101aceaf
add eax, edx
jmp 0x101aceb8
test byte [ebx + 0xa], 0x80
jne 0x101acebb
add eax, 0xffffffec
movzx ecx, ax
mov ebp, dword [esp + 0x1c]
movzx edx, cx
test ebp, ebp
je 0x101acede
cmp word [ebp + 8], 0
jle 0x101acede
test ebx, ebx
je 0x101acede
cmp word [ebx + 8], 0
jle 0x101acede
lea eax, [ecx - 0x14]
movzx edx, ax
xor eax, eax
test ebp, ebp
setne al
sub edi, eax
xor eax, eax
test ebx, ebx
mov ebx, dword [esi + 0x2c]
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 ebp, eax
jmp 0x101acf6b
inc word [esi + 0x18]
movzx ecx, word [ebp + 8]
movzx edx, word [esi + 0x18]
test cx, cx
jg 0x101acf41
mov eax, dword [edi + 4]
mov ebp, dword [esp + 0x20]
cmp word [eax + ebp*2], 0
jl 0x101acf41
sub ecx, dword [esp + 0x14]
add word [esi + 0x16], cx
movzx ebp, word [esi + 0x16]
jmp 0x101acf6f
mov eax, dword [edi + 8]
mov cx, word [esi + 0x16]
sub cx, word [eax + edx*2 - 2]
add cx, word [eax + edx*2]
test dword [esp + 0x40], 0x100
movzx eax, cx
mov word [esi + 0x16], cx
movzx ebp, cx
je 0x101acf6f
add eax, 0xa
movzx ebp, ax
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
movsx edi, word [eax + 0x28]
mov eax, dword [esp + 0xe0]
movsx ecx, word [eax + 0x30]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x34]
cdq
idiv edi
lea edx, [eax + 1]
add edx, ebp
call fcn.102323c0
movzx ecx, ax
mov word [esi + 0x14], ax
movzx eax, ax
test ebx, 0x140
jne 0x101acfba
lea edx, [ebp + 0x10]
call fcn.102323c0
movzx eax, ax
mov ecx, dword [esp + 0x14]
mov edx, esi
mov ebx, dword [esp + 0x38]
push dword [esp + 0x6c]
movzx edi, cx
add eax, edi
add eax, dword [esp + 0x30]
mov ecx, dword [ebx + 4]
mov word [esi + 0x14], ax
lea eax, [edi + ebp]
add eax, dword [esp + 0x30]
mov word [esi + 0x16], ax
call fcn.101ad3b0
add esp, 4
mov edx, esi
mov ecx, ebx
call fcn.101ad550
test byte [esi + 0x2c], 2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
movzx edx, ax
movzx ecx, bp
cmove edx, ecx
mov word [esi + 0x16], dx
test byte [esi + 0x2c], 0x10
jne 0x101ad06e
mov eax, dword [esp + 0xe0]
movzx ecx, word [esi + 0x18]
cmp cx, word [eax + 0x34]
jae 0x101ad05e
cmp cx, word [eax + 0x32]
jb 0x101ad033
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x101ad06e
mov eax, dword [esp + 0x2c]
mov ecx, ebx
mov edx, dword [esp + 0x24]
add eax, edi
mov edi, dword [esp + 0xe0]
push eax
push edi
call fcn.101ac9a0
mov eax, dword [esp + 0x4c]
add esp, 8
mov ebx, dword [esp + 0x20]
mov word [esi + 0x16], ax
jmp 0x101ad08a
mov ebx, dword [esp + 0x20]
mov edi, eax
mov eax, dword [esp + 0x44]
mov word [esi + 0x16], ax
jmp 0x101ad08a
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0x20]
mov word [esi + 0x16], ax
jmp 0x101ad08a
mov edi, dword [esp + 0xe0]
lea ecx, [esp + 0x78]
call fcn.101b0030
cmp dword [esp + 0x18], 0
mov ebp, eax
mov ecx, 0x100
je 0x101acad0
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov word [esi + 0x1a], cx
mov ecx, dword [esp + 0x5c]
mov dword [esi], eax
mov eax, dword [esp + 0x54]
mov word [esi + 0x1c], cx
mov ecx, dword [esp + 0x48]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x2c], ecx
mov ecx, dword [esp + 0x44]
mov word [esi + 0x18], ax
mov word [esi + 0x32], bp
mov word [esi + 0x16], cx
mov word [esi + 0x30], dx
cmp ax, bp
jne 0x101ad1d1
mov ebp, dword [esp + 0x20]
movzx ecx, word [edi + 0x32]
lea eax, [ebp + 1]
cmp eax, ecx
jae 0x101ad1d1
cmp word [esp + 0x3c], dx
jne 0x101ad1d1
mov eax, dword [edi + 0x38]
test al, 0x40
jne 0x101ad1d1
test al, al
jns 0x101ad1d1
test dword [ebx + 0x50], 0x4000
jne 0x101ad1d1
mov eax, dword [edi + 8]
cmp word [eax + ebp*2 + 2], 0x2a
jl 0x101ad1d1
movzx eax, dx
mov ecx, ebx
inc eax
mov edx, esi
push eax
call fcn.101adf30
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x101ad1d5
movzx ecx, word [esi + 0x30]
mov eax, dword [esi + 0x38]
inc word [esi + 0x18]
inc word [esi + 0x32]
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4], ebx
inc word [esi + 0x30]
or dword [esi + 0x2c], 0x8000
mov eax, dword [edi + 8]
mov cx, word [eax + ebp*2]
sub cx, word [eax + ebp*2 + 2]
movzx eax, cx
mov ecx, dword [esp + 0x2c]
sub word [esi + 0x16], ax
add ecx, 5
add eax, ecx
mov ecx, dword [esp + 0x38]
push eax
push edi
call fcn.101ac9a0
mov eax, dword [esp + 0x4c]
add esp, 8
mov word [esi + 0x16], ax
mov eax, dword [esp + 0x3c]
mov word [esi + 0x18], ax
mov eax, dword [esp + 0x64]
mov word [esi + 0x32], ax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x2c], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
mov ebx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xcc
ret