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

Disassembly:
sub esp, 0x80
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov eax, dword [ecx]
push ebx
push ebp
push esi
xor esi, esi
cmp word [esp + 0xa0], si
push edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
je 0x100fd0d4
test byte [eax + 0x40], 0x80
je 0x100fd0d4
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov edx, dword [esp + 0x98]
movzx eax, word [edx]
cmp ax, 0x3f
mov dword [esp + 0x64], eax
ja 0x100fd0c7
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x16], 1
mov dword [esp + 0x38], ecx
call fcn.1010eea0
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x5c]
ja 0x100fd712
jb 0x100fd140
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x58]
jae 0x100fd712
movzx eax, word [esp + 0xa4]
mov edx, dword [esp + 0x3c]
cmp edx, eax
jg 0x100fd712
test edx, edx
jle 0x100fd16a
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
or dword [esp + 0x48], esi
or dword [esp + 0x4c], ecx
cmp edx, eax
jge 0x100fd17d
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x18]
mov esi, dword [ecx + edx*4]
jmp 0x100fd184
mov esi, dword [esp + 0xa8]
test dword [esi + 0x24], 0x400
mov dword [esp + 0x34], esi
jne 0x100fd70c
movzx eax, byte [esi + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + 4]
shl edx, 4
mov edx, dword [edx + ecx + 0x38]
xor ecx, ecx
cmp dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x1c], ecx
jle 0x100fd2e4
mov dword [esp + 0x18], ecx
jmp 0x100fd1d0
mov eax, 1
xor edx, edx
call fcn.1010eea0
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x20]
mov ecx, ebp
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x100fd2c6
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ecx]
call fcn.100c94e0
mov edi, eax
cmp byte [edi], 0x98
jne 0x100fd2c6
mov eax, dword [esp + 0x40]
cmp dword [edi + 0x1c], eax
jne 0x100fd2c6
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push 0
not edx
push 0x182
push edx
mov edx, dword [esp + 0xa0]
not ecx
push ecx
movsx ecx, word [edi + 0x20]
push eax
add edx, 0x148
call fcn.100f9c20
mov esi, eax
add esp, 0x14
test esi, esi
je 0x100fd2c6
test byte [esi + 0x12], 0x82
je 0x100fd2be
cmp word [edi + 0x20], 0
jl 0x100fd2be
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [eax + edx]
call fcn.100c9510
add esp, 4
test eax, eax
jne 0x100fd290
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x94]
mov edi, dword [eax]
mov eax, dword [edx]
mov ecx, dword [esi]
push eax
call fcn.100c9510
add esp, 4
test eax, eax
jne 0x100fd2b1
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov ecx, edi
call fcn.1009c270
test eax, eax
jne 0x100fd2c6
or dword [esp + 0x20], ebx
or dword [esp + 0x24], ebp
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x18], 0x18
add ecx, 1
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
jl 0x100fd1d0
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0x24]
test eax, 0x1000
jne 0x100fd5d7
xor edx, edx
test eax, 0x100
je 0x100fd30a
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], edx
lea eax, [edx + 1]
jmp 0x100fd338
mov edi, dword [esi + 0x1c]
cmp edi, edx
mov dword [esp + 0x1c], edi
je 0x100fd0c7
test byte [edi + 0x38], 4
jne 0x100fd0c7
movzx eax, word [edi + 0x32]
cmp byte [edi + 0x36], 0
mov dword [esp + 0x60], eax
movzx eax, word [edi + 0x34]
setne byte [esp + 0x16]
movzx eax, ax
cmp eax, edx
mov byte [esp + 0x2d], 0
mov byte [esp + 0x2f], 0
mov byte [esp + 0x2e], 0
mov dword [esp + 0x18], edx
mov dword [esp + 0x68], eax
jle 0x100fd5d7
mov dword [esp + 0x30], edx
mov edi, edi
movzx ecx, word [esi + 0x18]
cmp edx, ecx
jge 0x100fd395
cmp word [esi + 0x2a], 0
jne 0x100fd395
mov eax, dword [esi + 0x30]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x100fd395
test eax, 0x100
je 0x100fd5b4
mov byte [esp + 0x16], 0
jmp 0x100fd5b4
mov eax, dword [esp + 0x1c]
test edi, edi
mov edi, dword [esp + 0x18]
je 0x100fd3bf
mov edx, dword [eax + 4]
movsx esi, word [edx + edi*2]
mov edx, dword [eax + 0x1c]
mov dl, byte [edi + edx]
mov byte [esp + 0x17], dl
mov edx, dword [eax + 0xc]
movsx edx, word [edx + 0x20]
cmp esi, edx
jne 0x100fd3c7
jmp 0x100fd3c4
mov byte [esp + 0x17], 0
or esi, 0xffffffff
cmp byte [esp + 0x16], 0
je 0x100fd3ed
test esi, esi
jl 0x100fd3ed
cmp edi, ecx
jl 0x100fd3ed
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov ecx, esi
shl ecx, 4
cmp byte [edx + ecx + 0xc], 0
jne 0x100fd3ed
mov byte [esp + 0x16], 0
xor edi, edi
mov bl, 1
xor ebp, ebp
cmp edi, dword [esp + 0x38]
jge 0x100fd4f9
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.1010eea0
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0x100fd4eb
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + ebp]
test eax, eax
je 0x100fd454
lea esp, [esp]
mov ecx, dword [eax + 4]
test ecx, 0x1000
je 0x100fd454
test ecx, 0x40000
je 0x100fd44d
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x100fd450
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x100fd430
test dword [esp + 0xa0], 0x300
jne 0x100fd463
xor bl, bl
cmp esi, 0xffffffff
jl 0x100fd47e
cmp byte [eax], 0x98
jne 0x100fd4eb
mov ecx, dword [esp + 0x40]
cmp dword [eax + 0x1c], ecx
jne 0x100fd4eb
movsx edx, word [eax + 0x20]
cmp edx, esi
jmp 0x100fd4a0
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1c]
push ecx
mov ecx, dword [edx + 0x28]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x34]
mov edx, dword [edx + ecx]
push edx
push eax
call fcn.100ce030
add esp, 0xc
test eax, eax
jne 0x100fd4eb
test esi, esi
jl 0x100fd524
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
mov ecx, dword [ecx + ebp]
push eax
call fcn.100c9510
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x100fd4d2
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx]
call fcn.1009c270
test eax, eax
je 0x100fd524
add edi, 1
add ebp, 0x18
test bl, bl
jne 0x100fd3f3
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100fd50a
movzx ecx, word [esp + 0x60]
cmp eax, ecx
jge 0x100fd50f
mov byte [esp + 0x16], 0
cmp byte [esp + 0x2e], 0
je 0x100fd5d7
mov byte [esp + 0x16], 1
jmp 0x100fd5e2
test dword [esp + 0xa0], 0x100
jne 0x100fd591
cmp byte [esp + 0x2d], 0
je 0x100fd555
mov al, byte [esp + 0x17]
mov edx, dword [esp + 0x98]
xor al, byte [esp + 0x2f]
mov edx, dword [edx + 4]
lea ecx, [edi + edi*2]
cmp al, byte [edx + ecx*8 + 0xc]
jne 0x100fd4f9
jmp 0x100fd591
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
lea eax, [edi + edi*2]
mov al, byte [edx + eax*8 + 0xc]
xor al, byte [esp + 0x17]
mov byte [esp + 0x2f], al
je 0x100fd58c
mov ecx, dword [esp + 0x3c]
mov eax, 1
xor edx, edx
call fcn.1010eea0
mov ecx, dword [esp + 0xac]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x2d], 1
test esi, esi
jge 0x100fd59a
mov byte [esp + 0x2e], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.1010eea0
or dword [esp + 0x20], eax
or dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
add dword [esp + 0x30], 0x18
add edx, 1
cmp edx, dword [esp + 0x68]
mov dword [esp + 0x18], edx
jge 0x100fd50f
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
jmp 0x100fd360
cmp byte [esp + 0x16], 0
je 0x100fd6fa
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or dword [esp + 0x50], edx
or dword [esp + 0x54], eax
xor ecx, ecx
cmp dword [esp + 0x38], ecx
mov dword [esp + 0x1c], ecx
jle 0x100fd6fa
mov dword [esp + 0x30], ecx
mov eax, 1
xor edx, edx
call fcn.1010eea0
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x20]
mov dword [esp + 0x8c], ecx
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x100fd6e0
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x30]
mov esi, dword [eax + edx]
mov ecx, dword [esp + 0x94]
add ecx, 0x44
push esi
push ecx
call fcn.100f9400
mov edi, eax
mov ebp, edx
mov edx, edi
add esp, 8
or edx, ebp
jne 0x100fd6bd
xor eax, eax
cmp esi, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov byte [esp + 0x80], 1
mov dword [esp + 0x70], 0x100cae80
mov dword [esp + 0x74], 0x100caf70
mov dword [esp + 0x84], eax
je 0x100fd6bd
lea eax, [esp + 0x6c]
push esi
push eax
call fcn.100c76b0
add esp, 8
cmp byte [esp + 0x80], 0
je 0x100fd6e0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x100fd6e0
mov ecx, dword [esp + 0x8c]
or dword [esp + 0x20], ebx
or dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x1c]
add dword [esp + 0x30], 0x18
add ecx, 1
cmp ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ecx
jl 0x100fd608
add dword [esp + 0x3c], 1
cmp byte [esp + 0x16], 0
jne 0x100fd122
jmp 0x100fd712
cmp byte [esi + 0x1d], 0
jne 0x100fd726
mov edx, dword [esp + 0x58]
cmp dword [esp + 0x20], edx
jne 0x100fd735
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x24], eax
jne 0x100fd735
mov al, byte [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp byte [esp + 0x16], 0
jne 0x100fd798
mov ebx, dword [esp + 0x38]
add ebx, 0xffffffff
test ebx, ebx
jle 0x100fd0c7
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.1010eea0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x100fd777
cmp esi, edx
je 0x100fd78b
sub ebx, 1
test ebx, ebx
jg 0x100fd753
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x80
ret