Function at 0x10107280
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 0x101072c4
test byte [eax + 0x40], 0x80
je 0x101072c4
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 0x101072b7
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x16], 1
mov dword [esp + 0x38], ecx
call fcn.1013fb70
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 0x10107902
jb 0x10107330
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x58]
jae 0x10107902
movzx eax, word [esp + 0xa4]
mov edx, dword [esp + 0x3c]
cmp edx, eax
jg 0x10107902
test edx, edx
jle 0x1010735a
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 0x1010736d
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x18]
mov esi, dword [ecx + edx*4]
jmp 0x10107374
mov esi, dword [esp + 0xa8]
test dword [esi + 0x24], 0x400
mov dword [esp + 0x34], esi
jne 0x101078fc
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 0x101074d4
mov dword [esp + 0x18], ecx
jmp 0x101073c0
mov eax, 1
xor edx, edx
call fcn.1013fb70
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x20]
mov ecx, ebp
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x101074b6
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ecx]
call fcn.100d3660
mov edi, eax
cmp byte [edi], 0x98
jne 0x101074b6
mov eax, dword [esp + 0x40]
cmp dword [edi + 0x1c], eax
jne 0x101074b6
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.10103e10
mov esi, eax
add esp, 0x14
test esi, esi
je 0x101074b6
test byte [esi + 0x12], 0x82
je 0x101074ae
cmp word [edi + 0x20], 0
jl 0x101074ae
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.100d3690
add esp, 4
test eax, eax
jne 0x10107480
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.100d3690
add esp, 4
test eax, eax
jne 0x101074a1
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov ecx, edi
call fcn.100a6c20
test eax, eax
jne 0x101074b6
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 0x101073c0
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0x24]
test eax, 0x1000
jne 0x101077c7
xor edx, edx
test eax, 0x100
je 0x101074fa
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], edx
lea eax, [edx + 1]
jmp 0x10107528
mov edi, dword [esi + 0x1c]
cmp edi, edx
mov dword [esp + 0x1c], edi
je 0x101072b7
test byte [edi + 0x38], 4
jne 0x101072b7
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 0x101077c7
mov dword [esp + 0x30], edx
mov edi, edi
movzx ecx, word [esi + 0x18]
cmp edx, ecx
jge 0x10107585
cmp word [esi + 0x2a], 0
jne 0x10107585
mov eax, dword [esi + 0x30]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x10107585
test eax, 0x100
je 0x101077a4
mov byte [esp + 0x16], 0
jmp 0x101077a4
mov eax, dword [esp + 0x1c]
test edi, edi
mov edi, dword [esp + 0x18]
je 0x101075af
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 0x101075b7
jmp 0x101075b4
mov byte [esp + 0x17], 0
or esi, 0xffffffff
cmp byte [esp + 0x16], 0
je 0x101075dd
test esi, esi
jl 0x101075dd
cmp edi, ecx
jl 0x101075dd
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov ecx, esi
shl ecx, 4
cmp byte [edx + ecx + 0xc], 0
jne 0x101075dd
mov byte [esp + 0x16], 0
xor edi, edi
mov bl, 1
xor ebp, ebp
cmp edi, dword [esp + 0x38]
jge 0x101076e9
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.1013fb70
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0x101076db
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + ebp]
test eax, eax
je 0x10107644
lea esp, [esp]
mov ecx, dword [eax + 4]
test ecx, 0x1000
je 0x10107644
test ecx, 0x40000
je 0x1010763d
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x10107640
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10107620
test dword [esp + 0xa0], 0x300
jne 0x10107653
xor bl, bl
cmp esi, 0xffffffff
jl 0x1010766e
cmp byte [eax], 0x98
jne 0x101076db
mov ecx, dword [esp + 0x40]
cmp dword [eax + 0x1c], ecx
jne 0x101076db
movsx edx, word [eax + 0x20]
cmp edx, esi
jmp 0x10107690
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.100d81b0
add esp, 0xc
test eax, eax
jne 0x101076db
test esi, esi
jl 0x10107714
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.100d3690
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x101076c2
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.100a6c20
test eax, eax
je 0x10107714
add edi, 1
add ebp, 0x18
test bl, bl
jne 0x101075e3
mov eax, dword [esp + 0x18]
test eax, eax
je 0x101076fa
movzx ecx, word [esp + 0x60]
cmp eax, ecx
jge 0x101076ff
mov byte [esp + 0x16], 0
cmp byte [esp + 0x2e], 0
je 0x101077c7
mov byte [esp + 0x16], 1
jmp 0x101077d2
test dword [esp + 0xa0], 0x100
jne 0x10107781
cmp byte [esp + 0x2d], 0
je 0x10107745
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 0x101076e9
jmp 0x10107781
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 0x1010777c
mov ecx, dword [esp + 0x3c]
mov eax, 1
xor edx, edx
call fcn.1013fb70
mov ecx, dword [esp + 0xac]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x2d], 1
test esi, esi
jge 0x1010778a
mov byte [esp + 0x2e], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.1013fb70
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 0x101076ff
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
jmp 0x10107550
cmp byte [esp + 0x16], 0
je 0x101078ea
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 0x101078ea
mov dword [esp + 0x30], ecx
mov eax, 1
xor edx, edx
call fcn.1013fb70
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 0x101078d0
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.101035f0
mov edi, eax
mov ebp, edx
mov edx, edi
add esp, 8
or edx, ebp
jne 0x101078ad
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], 0x100d5000
mov dword [esp + 0x74], 0x100d50f0
mov dword [esp + 0x84], eax
je 0x101078ad
lea eax, [esp + 0x6c]
push esi
push eax
call fcn.100d1830
add esp, 8
cmp byte [esp + 0x80], 0
je 0x101078d0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x101078d0
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 0x101077f8
add dword [esp + 0x3c], 1
cmp byte [esp + 0x16], 0
jne 0x10107312
jmp 0x10107902
cmp byte [esi + 0x1d], 0
jne 0x10107916
mov edx, dword [esp + 0x58]
cmp dword [esp + 0x20], edx
jne 0x10107925
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x24], eax
jne 0x10107925
mov al, byte [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp byte [esp + 0x16], 0
jne 0x10107988
mov ebx, dword [esp + 0x38]
add ebx, 0xffffffff
test ebx, ebx
jle 0x101072b7
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.1013fb70
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x10107967
cmp esi, edx
je 0x1010797b
sub ebx, 1
test ebx, ebx
jg 0x10107943
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