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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
push esi
xor esi, esi
push edi
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
cmp word [ebp + 0x18], si
je 0x101a94d9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ecx]
test byte [edx + 0x4c], 0x40
je 0x101a94d9
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movzx eax, word [eax]
mov dword [esp + 0x70], eax
cmp eax, 0x3f
ja 0x101a94d0
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0xd], 1
mov dword [esp + 0x30], ecx
call fcn.101020d0
add eax, 0xffffffff
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x14]
adc edx, 0xffffffff
and eax, 0x800
mov dword [esp + 0x6c], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x4c], 0x182
mov dword [esp + 0x78], eax
je 0x101a953c
mov dword [esp + 0x4c], 0x183
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x6c]
ja 0x101a9bc3
jb 0x101a955e
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x68]
jae 0x101a9bc3
movzx eax, word [ebp + 0x18]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jg 0x101a9bc3
test ecx, ecx
jle 0x101a9584
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
or dword [esp + 0x58], esi
or dword [esp + 0x5c], edx
cmp ecx, eax
jge 0x101a95a5
cmp word [esp + 0x78], 0
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x18]
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x10], eax
jne 0x101a9b9d
mov edx, eax
jmp 0x101a95ac
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x10], edx
test dword [edx + 0x24], 0x400
jne 0x101a9bb7
mov eax, dword [ebp + 0x14]
and eax, 0x80
mov dword [esp + 0x74], eax
je 0x101a95cd
xor ecx, ecx
mov word [edx + 0x1e], cx
cmp dword [esp + 0x30], 0
movzx eax, byte [edx + 0x10]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*8]
mov edi, dword [ecx + eax*8 + 0x34]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x14], 0
jle 0x101a9704
mov edx, dword [ebp + 0xc]
add edx, 4
mov dword [esp + 0x28], edx
jmp 0x101a9605
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov eax, 1
xor edx, edx
call fcn.101020d0
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
and ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], ebx
or eax, ecx
jne 0x101a96e8
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
call fcn.1011c7e0
mov esi, eax
cmp byte [esi], 0xa4
jne 0x101a96e8
cmp dword [esi + 0x1c], edi
jne 0x101a96e8
movzx ecx, word [esp + 0x4c]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
push ecx
mov ecx, dword [esi + 0x20]
not edx
not eax
push eax
push edx
mov edx, dword [ebp + 8]
push ecx
add edx, 0x50
push edx
xor ecx, ecx
mov edx, edi
call fcn.101a5c90
add esp, 0x14
test eax, eax
je 0x101a96e8
cmp word [eax + 0xc], 1
jne 0x101a96b3
mov edx, dword [esp + 0x10]
movzx edi, word [edx + 0x28]
xor ecx, ecx
test edi, edi
jle 0x101a96ab
mov edx, dword [edx + 0x30]
cmp eax, dword [edx]
je 0x101a96ab
mov ebx, dword [esp + 0x10]
movzx ebx, word [ebx + 0x28]
inc ecx
add edx, 4
cmp ecx, ebx
jl 0x101a9697
cmp ecx, edi
jge 0x101a96e8
mov ebx, dword [esp + 0x40]
movzx ecx, word [eax + 0xc]
test cl, 0x82
je 0x101a96dc
cmp dword [esi + 0x20], 0
jl 0x101a96dc
mov eax, dword [eax]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx]
mov edi, dword [edx]
push eax
call fcn.10192710
add esp, 4
test eax, eax
je 0x101a96e8
mov eax, dword [esp + 0x44]
or dword [esp + 0x18], ebx
or dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
add dword [esp + 0x28], 0x14
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x30]
jl 0x101a9601
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x24]
test ecx, 0x1000
jne 0x101a9a8d
test ecx, 0x100
je 0x101a972c
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], eax
mov eax, 1
jmp 0x101a9769
mov edx, dword [edx + 0x20]
mov dword [esp + 0x28], edx
test edx, edx
je 0x101a94d0
test byte [edx + 0x38], 4
jne 0x101a94d0
cmp byte [edx + 0x36], 0
movzx eax, word [edx + 0x32]
mov dword [esp + 0x64], eax
movzx eax, word [edx + 0x34]
je 0x101a9764
mov byte [esp + 0xd], 1
test ecx, 0x8000
je 0x101a9769
mov byte [esp + 0xd], 0
movzx eax, ax
xor ebx, ebx
mov byte [esp + 0x26], 0
mov byte [esp + 0x27], 0
mov byte [esp + 0x25], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x7c], eax
cmp eax, ebx
jle 0x101a9a8d
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x10]
movzx edi, word [eax + 0x18]
mov byte [esp + 0xe], 1
cmp ebx, edi
jge 0x101a9804
movzx ecx, word [eax + 0x2a]
cmp ebx, ecx
jl 0x101a9804
mov edx, dword [eax + 0x30]
mov eax, dword [edx + ebx*4]
movzx ecx, word [eax + 0xc]
mov esi, ecx
and esi, dword [esp + 0x4c]
test si, si
je 0x101a97d5
test ecx, 0x180
je 0x101a9a74
mov byte [esp + 0xd], 0
jmp 0x101a9a74
test cl, 1
je 0x101a9804
mov esi, dword [eax]
lea eax, [ebx + 1]
cmp eax, edi
jge 0x101a9804
lea ecx, [edx + ebx*4 + 4]
mov edx, dword [ecx]
cmp dword [edx], esi
je 0x101a97ff
mov edx, dword [esp + 0x10]
movzx edx, word [edx + 0x18]
inc eax
add ecx, 4
cmp eax, edx
jl 0x101a97e7
jmp 0x101a9804
mov byte [esp + 0xe], 0
mov esi, dword [esp + 0x28]
test esi, esi
je 0x101a9831
mov ecx, dword [esi + 0x1c]
mov cl, byte [ebx + ecx]
mov eax, dword [esi + 4]
mov edx, dword [esi + 0xc]
movsx eax, word [eax + ebx*2]
and cl, 1
mov byte [esp + 0xf], cl
movsx ecx, word [edx + 0x28]
mov dword [esp + 0x34], eax
cmp eax, ecx
jne 0x101a983d
jmp 0x101a9836
mov byte [esp + 0xf], 0
or eax, 0xffffffff
mov dword [esp + 0x34], eax
cmp byte [esp + 0xd], 0
je 0x101a9861
test eax, eax
js 0x101a9861
cmp ebx, edi
jl 0x101a9861
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + 4]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 0xc], 0
jne 0x101a9861
mov byte [esp + 0xd], 0
xor edi, edi
cmp byte [esp + 0xe], 0
je 0x101a99a1
mov ebx, dword [ebp + 0xc]
add ebx, 4
cmp edi, dword [esp + 0x30]
jge 0x101a99a1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.101020d0
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or eax, edx
jne 0x101a99e4
mov eax, dword [ebx]
test eax, eax
je 0x101a98c4
mov ecx, dword [eax + 4]
test ecx, 0x41000
je 0x101a98c4
test ecx, 0x40000
je 0x101a98bd
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
jmp 0x101a98c0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x101a98a2
test byte [ebp + 0x14], 0xc0
jne 0x101a98cf
mov byte [esp + 0xe], 0
mov esi, dword [esp + 0x34]
cmp esi, 0xffffffff
jl 0x101a98f3
cmp byte [eax], 0xa4
jne 0x101a99e4
mov ecx, dword [esp + 0x3c]
cmp dword [eax + 0x1c], ecx
jne 0x101a99e4
cmp dword [eax + 0x20], esi
jmp 0x101a9911
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [ecx + edx + 4]
mov edx, dword [esp + 0x3c]
push edx
call fcn.1019f480
add esp, 4
test eax, eax
jne 0x101a99e4
cmp esi, 0xffffffff
je 0x101a995e
mov eax, dword [ebp + 8]
mov esi, dword [eax]
mov ecx, dword [ebx]
push esi
call fcn.10184330
add esp, 4
test eax, eax
jne 0x101a9935
mov ecx, dword [esi]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [eax]
mov esi, dword [ecx + edx*4]
sub esi, eax
movzx ecx, byte [eax]
movzx edx, byte [esi + eax]
cmp ecx, edx
jne 0x101a99cc
test ecx, ecx
jne 0x101a99de
cmp word [esp + 0x74], 0
je 0x101a9973
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc edx
mov word [eax + 0x1e], dx
test byte [ebp + 0x14], 0x40
jne 0x101a9a28
cmp byte [esp + 0x26], 0
je 0x101a99f5
mov edx, dword [ebp + 0xc]
mov al, byte [esp + 0xf]
xor al, byte [esp + 0x27]
lea ecx, [edi + edi*4]
mov cl, byte [edx + ecx*4 + 0xc]
and cl, 1
cmp al, cl
je 0x101a9a28
mov eax, dword [esp + 0x14]
test eax, eax
je 0x101a99b2
movzx edx, word [esp + 0x64]
cmp eax, edx
jge 0x101a99b7
mov byte [esp + 0xd], 0
cmp byte [esp + 0x25], 0
je 0x101a9a8d
mov byte [esp + 0xd], 1
jmp 0x101a9a98
movzx edx, byte [edx + 0x1026d428]
movzx ecx, byte [ecx + 0x1026d428]
sub ecx, edx
jne 0x101a99e4
inc eax
jmp 0x101a9947
inc edi
add ebx, 0x14
cmp byte [esp + 0xe], 0
jne 0x101a9874
jmp 0x101a99a1
mov eax, dword [ebp + 0xc]
lea edx, [edi + edi*4]
mov al, byte [eax + edx*4 + 0xc]
and al, 1
xor al, byte [esp + 0xf]
mov byte [esp + 0x27], al
je 0x101a9a23
mov ecx, dword [esp + 0x38]
mov eax, 1
xor edx, edx
call fcn.101020d0
mov ecx, dword [ebp + 0x20]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x26], 1
mov edx, dword [ebp + 0xc]
lea ecx, [edi + edi*4]
test byte [edx + ecx*4 + 0xc], 2
je 0x101a9a4e
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 0x18]
cmp dword [esp + 0x14], ecx
jne 0x101a99a1
or dword [eax + 0x24], 0x80000
cmp dword [esp + 0x34], 0xffffffff
jne 0x101a9a5a
mov byte [esp + 0x25], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.101020d0
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x14]
add dword [esp + 0x2c], 0x14
inc ebx
mov dword [esp + 0x14], ebx
cmp ebx, dword [esp + 0x7c]
jl 0x101a9791
jmp 0x101a99b7
cmp byte [esp + 0xd], 0
je 0x101a9b9d
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
or dword [esp + 0x50], ecx
mov edx, dword [eax + 0xc]
or dword [esp + 0x54], edx
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x30], ecx
jle 0x101a9b9d
mov eax, dword [ebp + 0xc]
add eax, 4
mov dword [esp + 0x2c], eax
mov eax, 1
xor edx, edx
call fcn.101020d0
mov ecx, edx
mov dword [esp + 0x40], eax
and eax, dword [esp + 0x18]
mov dword [esp + 0x44], ecx
and ecx, dword [esp + 0x1c]
or eax, ecx
jne 0x101a9b85
mov ecx, dword [esp + 0x2c]
mov esi, dword [ecx]
test esi, esi
je 0x101a9bae
mov edx, dword [ebp + 8]
add edx, 0x1e8
push esi
push edx
call fcn.10127570
mov ebx, edx
add esp, 8
mov edi, eax
or eax, ebx
jne 0x101a9b61
mov ecx, 1
mov word [esp + 0x98], cx
mov dword [esp + 0x88], fcn.1013afe0
mov dword [esp + 0x8c], 0x1011c670
mov dword [esp + 0x9c], 0
test esi, esi
je 0x101a9b61
lea edx, [esp + 0x84]
push esi
push edx
call fcn.10133ea0
add esp, 8
cmp word [esp + 0x98], 0
je 0x101a9b85
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
not eax
not ecx
and eax, edi
and ecx, ebx
or eax, ecx
jne 0x101a9b85
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
or dword [esp + 0x18], eax
or dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
add dword [esp + 0x2c], 0x14
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x30]
jl 0x101a9ac4
inc dword [esp + 0x38]
cmp byte [esp + 0xd], 0
jne 0x101a9540
jmp 0x101a9bc3
xor edi, edi
xor ebx, ebx
jmp 0x101a9b13
cmp byte [edx + 0x1d], 0
je 0x101a9bc3
test byte [ebp + 0x14], 0x80
je 0x101a9bd7
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x18], edx
jne 0x101a9be2
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x1c], eax
jne 0x101a9be2
mov al, byte [esp + 0x70]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0xd], 0
jne 0x101a9c3d
mov ebx, dword [esp + 0x30]
dec ebx
test ebx, ebx
jle 0x101a94d0
mov edi, dword [esp + 0x18]
lea ebx, [ebx]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.101020d0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and esi, dword [esp + 0x1c]
and ecx, edi
cmp ecx, eax
jne 0x101a9c26
cmp esi, edx
je 0x101a9c34
dec ebx
test ebx, ebx
jg 0x101a9c00
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
or al, 0xff
pop ebx
mov esp, ebp
pop ebp
ret