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

Disassembly:
sub esp, 0x6c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x7c]
push edi
mov edi, dword [esi]
mov ebx, dword [esi + 0xd8]
mov dword [esp + 0x30], edi
mov edx, dword [edi + 0x2e0]
mov eax, edx
mov ebp, dword [edi + 0x24]
and eax, 0x400
and edx, 1
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
test eax, eax
je 0x101ad90d
mov ecx, 0x26
jmp 0x101ad916
mov ecx, edx
neg ecx
sbb ecx, ecx
and ecx, 6
movzx eax, word [ebx + 0x18]
mov ebp, eax
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x34], ebp
add ebp, 0xe
lea ebp, [eax + ebp*2]
mov dword [esp + 0x2c], ebp
movzx ecx, word [ecx + ebp]
mov ebp, dword [esp + 0x18]
add ecx, eax
mov dword [esp + 0x38], ecx
mov cl, byte [ecx]
mov byte [esp + 0x13], cl
cmp cl, 4
je 0x101ae07b
cmp cl, 3
je 0x101ae07b
cmp dword [esp + 0x1c], 0
je 0x101ad977
mov ecx, dword [esp + 0x14]
lea eax, [eax + ecx*2]
add eax, 0x1a
mov dword [esp + 0x24], eax
movzx ecx, word [eax + 0x26]
mov eax, 0x26
jmp 0x101ad99e
mov ecx, dword [ebx + 8]
mov eax, edx
mov esi, dword [esp + 0x14]
neg eax
sbb eax, eax
and eax, 6
lea ecx, [ecx + esi*2]
add ecx, 0x1a
mov dword [esp + 0x24], ecx
movzx ecx, word [ecx + eax]
mov eax, edx
neg eax
sbb eax, eax
and eax, 6
mov esi, dword [esp + 0x2c]
movzx eax, word [esi + eax]
sub ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x20], ecx
dec ecx
mov esi, dword [esp + 0x20]
add ecx, eax
add eax, 3
add esi, eax
cmp byte [esp + 0x13], 2
cmove esi, ecx
mov dword [esp + 0x2c], esi
mov eax, dword [ebx + 0x4c]
mov eax, dword [eax + 0x14]
shr eax, 2
cmp esi, eax
mov esi, dword [esp + 0x80]
jbe 0x101ada36
cmp dword [esp + 0x20], 8
ja 0x101ae07b
cmp dword [esp + 0x1c], 0
je 0x101ad9fb
mov dword [esp + 0x28], 0x26
jmp 0x101ada08
mov eax, edx
neg eax
sbb eax, eax
and eax, 6
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 8]
movzx eax, word [ecx + 0x14]
movzx ecx, word [ecx + 0x16]
add eax, eax
sub ecx, eax
mov eax, 8
sub ecx, dword [esp + 0x28]
sub eax, dword [esp + 0x20]
sub ecx, 0x1a
cmp eax, ecx
jbe 0x101ae07b
mov ecx, 8
jmp 0x101ada87
cmp dword [esp + 0x1c], 0
je 0x101ada47
mov dword [esp + 0x28], 0x26
jmp 0x101ada54
mov eax, edx
neg eax
sbb eax, eax
and eax, 6
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 8]
movzx eax, word [ecx + 0x14]
movzx ecx, word [ecx + 0x16]
add eax, eax
sub ecx, eax
mov eax, dword [esp + 0x2c]
sub ecx, dword [esp + 0x28]
sub eax, dword [esp + 0x20]
sub ecx, 0x1a
cmp eax, ecx
jbe 0x101ae07b
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], eax
cmp word [esp + 0x34], 0
jne 0x101ada93
mov edi, dword [edi]
jmp 0x101adab9
cmp dword [esp + 0x1c], 0
je 0x101adaa1
mov eax, 0x26
jmp 0x101adaaa
mov eax, edx
neg eax
sbb eax, eax
and eax, 6
mov edi, dword [esp + 0x14]
lea eax, [eax + edi*2]
mov edi, dword [ebx + 8]
movzx edi, word [eax + edi + 0x18]
cmp dword [esp + 0x1c], 0
je 0x101adac7
mov edx, 0x26
jmp 0x101adace
neg edx
sbb edx, edx
and edx, 6
mov eax, dword [esp + 0x24]
movzx eax, word [eax + edx]
sub edi, eax
add ecx, edi
xor edi, edi
mov dword [esp + 0x14], edi
mov eax, dword [ebx + 8]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x101adb83
test edi, edi
je 0x101adb12
push dword [esi + 0x14]
push edi
push dword [esi + 0xc]
push ebp
call fcn.1010adb0
add esp, 0x10
test eax, eax
jne 0x101ae07d
lea eax, [esp + 0x14]
push eax
push 1
push dword [esi + 0x10]
lea eax, [esp + 0x38]
push dword [esi + 0xc]
push eax
push ebp
call fcn.10109150
add esp, 0x18
test eax, eax
jne 0x101ae07d
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x2e0]
test eax, 0x400
je 0x101adb4d
mov edx, 0x26
jmp 0x101adb59
and al, 1
movzx edx, al
neg edx
sbb edx, edx
and edx, 6
mov edi, dword [esp + 0x14]
movzx eax, word [edi + 0x14]
movzx ecx, word [edi + 0x16]
add eax, eax
sub ecx, eax
sub ecx, edx
sub ecx, 0x1a
cmp ecx, dword [esp + 0x28]
jae 0x101adb83
mov eax, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x101adaf6
push 0
push dword [esi + 0x14]
lea eax, [ebx + 8]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
push ebp
call fcn.101703a0
add esp, 0x18
test eax, eax
jne 0x101ae07d
cmp dword [esp + 0x14], eax
jne 0x101adbc4
lea eax, [esp + 0x14]
push eax
push 0
push dword [ebx + 8]
push esi
call fcn.10170bf0
add esp, 0x10
test eax, eax
jne 0x101ae07d
push 0
push dword [esi + 0x14]
lea eax, [esp + 0x1c]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
push ebp
call fcn.101703a0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x101adf57
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x2e0]
test eax, 0x400
je 0x101adbff
mov edx, 0x26
jmp 0x101adc0b
and al, 1
movzx edx, al
neg edx
sbb edx, edx
and edx, 6
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + 0x14]
movzx ecx, word [ecx + 0x16]
add eax, eax
sub ecx, eax
sub ecx, edx
sub ecx, 0x1a
cmp ecx, dword [esp + 0x28]
jae 0x101adc61
lea eax, [esp + 0x14]
push eax
push 1
push dword [esp + 0x1c]
push esi
call fcn.10170bf0
add esp, 0x10
mov dword [esp + 0x34], eax
test eax, eax
je 0x101adc61
push dword [esi + 0x14]
push dword [esp + 0x18]
push dword [esi + 0xc]
push ebp
call fcn.1010adb0
mov eax, dword [esp + 0x44]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp dword [esi + 0x10], 0
je 0x101adf74
mov eax, dword [esi + 8]
cmp dword [eax + 0x74], 0
je 0x101adf74
test dword [esi + 0x13c], 0x2000
jne 0x101adf74
mov eax, dword [eax + 0x80]
test eax, eax
je 0x101adca6
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x101adca6
test byte [eax + 0x31c], 8
jne 0x101adf74
mov dword [esp + 0x5c], 0
mov dword [esp + 0x78], 0
mov ecx, dword [edi + 0x2e0]
mov eax, ecx
and eax, 0x400
mov dword [esp + 0x1c], 0x20
and ecx, 1
mov dword [esp + 0x30], eax
test eax, eax
je 0x101adcdd
mov edx, 0x26
jmp 0x101adce6
mov edx, ecx
neg edx
sbb edx, edx
and edx, 6
movzx eax, word [ebx + 0x18]
mov ebp, dword [ebx + 8]
lea ebp, [ebp + eax*2]
movzx eax, word [edx + ebp + 0x1a]
mov edx, dword [ebx + 8]
cmp byte [eax + edx], 3
jne 0x101add39
cmp dword [esp + 0x30], 0
mov dword [esp + 0x1c], 0x21
je 0x101add15
mov ecx, 0x26
jmp 0x101add1c
neg ecx
sbb ecx, ecx
and ecx, 6
movzx eax, word [ecx + ebp + 0x1a]
add eax, edx
mov dword [esp + 0x48], 0xc
mov dword [esp + 0x44], eax
mov eax, 3
jmp 0x101addcf
cmp dword [esp + 0x30], 0
je 0x101add47
mov ecx, 0x26
jmp 0x101add4e
neg ecx
sbb ecx, ecx
and ecx, 6
movzx eax, word [ecx + ebp + 0x1a]
inc edx
add eax, edx
mov dword [esp + 0x44], eax
movzx edx, word [ebx + 0x18]
test dx, dx
jne 0x101add69
mov edx, dword [edi]
xor ebp, ebp
jmp 0x101add96
mov eax, dword [edi + 0x2e0]
test eax, 0x400
je 0x101add7d
mov ecx, 0x26
jmp 0x101add89
and al, 1
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 6
mov eax, dword [ebx + 8]
mov ebp, edx
lea eax, [eax + ebp*2]
movzx edx, word [eax + ecx + 0x18]
mov eax, dword [edi + 0x2e0]
test eax, 0x400
je 0x101addaa
mov ecx, 0x26
jmp 0x101addb6
and al, 1
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 6
mov eax, dword [ebx + 8]
lea eax, [eax + ebp*2]
sub dx, word [eax + ecx + 0x1a]
dec dx
movzx eax, dx
mov dword [esp + 0x48], eax
mov eax, 1
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x28]
push ecx
push eax
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x24]
push esi
call fcn.10171bf0
mov ebp, dword [esp + 0x30]
add esp, 0x18
test eax, eax
jne 0x101ae07d
mov ecx, dword [esp + 0x38]
mov edx, dword [edi + 0x2e0]
mov eax, edx
and eax, 0x400
mov dword [esp + 0x34], eax
cmp byte [ecx], 3
jne 0x101ade51
or dword [esp + 0x1c], 2
test eax, eax
je 0x101ade22
mov edx, 0x26
jmp 0x101ade2f
and dl, 1
movzx edx, dl
neg edx
sbb edx, edx
and edx, 6
movzx eax, word [ebx + 0x18]
mov ecx, dword [ebx + 8]
lea eax, [edx + eax*2]
movzx eax, word [eax + ecx + 0x1c]
add eax, ecx
mov dword [esp + 0x64], 0xc
mov dword [esp + 0x60], eax
jmp 0x101adf22
test eax, eax
je 0x101ade5c
mov ecx, 0x26
jmp 0x101ade6a
mov eax, edx
and al, 1
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 6
movzx eax, word [ebx + 0x18]
lea eax, [eax*2 + 0x1c]
add eax, dword [ebx + 8]
mov dword [esp + 0x38], eax
movzx eax, word [eax + ecx]
mov ecx, dword [ebx + 8]
cmp byte [eax + ecx], 2
jne 0x101ade8e
or dword [esp + 0x1c], 4
cmp dword [esp + 0x34], 0
je 0x101ade9c
mov eax, 0x26
jmp 0x101adea9
and dl, 1
movzx eax, dl
neg eax
sbb eax, eax
and eax, 6
mov edx, dword [esp + 0x38]
inc ecx
movzx eax, word [edx + eax]
add eax, ecx
mov dword [esp + 0x60], eax
mov eax, dword [edi + 0x2e0]
mov ecx, eax
movzx edx, word [ebx + 0x18]
and ecx, 1
test eax, 0x400
je 0x101adee0
mov eax, dword [ebx + 8]
mov ecx, 0x26
lea eax, [eax + edx*2]
movzx edx, word [eax + ecx + 0x1a]
jmp 0x101adf06
movzx esi, word [ebx + 0x18]
mov eax, ecx
mov edx, dword [ebx + 8]
neg eax
sbb eax, eax
and eax, 6
neg ecx
sbb ecx, ecx
and ecx, 6
lea eax, [eax + esi*2]
mov esi, dword [esp + 0x80]
movzx edx, word [eax + edx + 0x1a]
movzx ebp, word [ebx + 0x18]
mov eax, dword [ebx + 8]
lea eax, [eax + ebp*2]
mov ebp, dword [esp + 0x18]
sub dx, word [eax + ecx + 0x1c]
dec dx
movzx eax, dx
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x48]
push eax
movzx eax, word [esp + 0x28]
push ecx
push eax
push dword [ecx + 8]
lea eax, [esp + 0x50]
push dword [esp + 0x30]
push 0
push eax
push dword [esi + 0x10]
push edi
call fcn.10198500
mov edi, eax
add esp, 0x28
test edi, edi
je 0x101adf8c
push dword [esi + 0x14]
push dword [esp + 0x18]
push dword [esi + 0xc]
push ebp
call fcn.1010adb0
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 1
mov dword [esp + 0x20], 0xffff
push 0
push dword [esi + 0x14]
lea eax, [esp + 0x1c]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
push ebp
call fcn.101703a0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x101adf57
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [eax], ecx
mov dword [eax + 4], edx
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x18]
movzx eax, word [ebx + 0x18]
push eax
push dword [ebx + 8]
push esi
call fcn.10170d10
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x101ae034
movzx eax, word [esp + 0x20]
push eax
mov eax, dword [esp + 0x18]
push dword [eax + 8]
movzx eax, word [ebx + 0x18]
push eax
mov eax, dword [ebx + 8]
push dword [eax + 8]
push esi
call fcn.101aeae0
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x101ae034
push 2
push esi
call fcn.10171030
add esp, 8
mov edi, eax
test dword [esi + 0x13c], 0x100
jne 0x101ae02e
mov eax, dword [esi + 8]
test byte [eax + 0x9c], 1
jne 0x101ae02e
cmp dword [eax + 0x70], 0
jne 0x101ae034
mov eax, dword [ebx + 0x4c]
inc dword [eax + 0x58]
push dword [esi + 0x14]
push dword [ebx + 8]
push dword [esi + 0xc]
push ebp
call fcn.1010adb0
add esp, 0x10
test eax, eax
je 0x101ae04f
test edi, edi
cmove edi, eax
mov eax, dword [esp + 0x14]
mov dword [ebx + 8], eax
mov eax, dword [eax + 8]
mov dword [ebx + 0x14], eax
mov ax, word [esp + 0x20]
mov word [ebx + 0x18], ax
mov eax, dword [ebx + 0x74]
and eax, 0xfffffffd
or eax, 8
mov dword [ebx + 0x74], eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret