Function at 0x10107060
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 0x101070a4
test byte [eax + 0x40], 0x80
je 0x101070a4
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 0x10107097
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x16], 1
mov dword [esp + 0x38], ecx
call fcn.10139f80
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 0x101076e2
jb 0x10107110
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x58]
jae 0x101076e2
movzx eax, word [esp + 0xa4]
mov edx, dword [esp + 0x3c]
cmp edx, eax
jg 0x101076e2
test edx, edx
jle 0x1010713a
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 0x1010714d
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x18]
mov esi, dword [ecx + edx*4]
jmp 0x10107154
mov esi, dword [esp + 0xa8]
test dword [esi + 0x24], 0x400
mov dword [esp + 0x34], esi
jne 0x101076dc
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 0x101072b4
mov dword [esp + 0x18], ecx
jmp 0x101071a0
mov eax, 1
xor edx, edx
call fcn.10139f80
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x20]
mov ecx, ebp
and ecx, dword [esp + 0x24]
or eax, ecx
jne 0x10107296
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + ecx]
call fcn.100d3440
mov edi, eax
cmp byte [edi], 0x98
jne 0x10107296
mov eax, dword [esp + 0x40]
cmp dword [edi + 0x1c], eax
jne 0x10107296
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.10103bf0
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10107296
test byte [esi + 0x12], 0x82
je 0x1010728e
cmp word [edi + 0x20], 0
jl 0x1010728e
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.100d3470
add esp, 4
test eax, eax
jne 0x10107260
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.100d3470
add esp, 4
test eax, eax
jne 0x10107281
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov ecx, edi
call fcn.100a6a00
test eax, eax
jne 0x10107296
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 0x101071a0
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0x24]
test eax, 0x1000
jne 0x101075a7
xor edx, edx
test eax, 0x100
je 0x101072da
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x60], edx
lea eax, [edx + 1]
jmp 0x10107308
mov edi, dword [esi + 0x1c]
cmp edi, edx
mov dword [esp + 0x1c], edi
je 0x10107097
test byte [edi + 0x38], 4
jne 0x10107097
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 0x101075a7
mov dword [esp + 0x30], edx
mov edi, edi
movzx ecx, word [esi + 0x18]
cmp edx, ecx
jge 0x10107365
cmp word [esi + 0x2a], 0
jne 0x10107365
mov eax, dword [esi + 0x30]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x10107365
test eax, 0x100
je 0x10107584
mov byte [esp + 0x16], 0
jmp 0x10107584
mov eax, dword [esp + 0x1c]
test edi, edi
mov edi, dword [esp + 0x18]
je 0x1010738f
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 0x10107397
jmp 0x10107394
mov byte [esp + 0x17], 0
or esi, 0xffffffff
cmp byte [esp + 0x16], 0
je 0x101073bd
test esi, esi
jl 0x101073bd
cmp edi, ecx
jl 0x101073bd
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov ecx, esi
shl ecx, 4
cmp byte [edx + ecx + 0xc], 0
jne 0x101073bd
mov byte [esp + 0x16], 0
xor edi, edi
mov bl, 1
xor ebp, ebp
cmp edi, dword [esp + 0x38]
jge 0x101074c9
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.10139f80
and eax, dword [esp + 0x20]
and edx, dword [esp + 0x24]
or eax, edx
jne 0x101074bb
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + ebp]
test eax, eax
je 0x10107424
lea esp, [esp]
mov ecx, dword [eax + 4]
test ecx, 0x1000
je 0x10107424
test ecx, 0x40000
je 0x1010741d
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x10107420
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10107400
test dword [esp + 0xa0], 0x300
jne 0x10107433
xor bl, bl
cmp esi, 0xffffffff
jl 0x1010744e
cmp byte [eax], 0x98
jne 0x101074bb
mov ecx, dword [esp + 0x40]
cmp dword [eax + 0x1c], ecx
jne 0x101074bb
movsx edx, word [eax + 0x20]
cmp edx, esi
jmp 0x10107470
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.100d7f90
add esp, 0xc
test eax, eax
jne 0x101074bb
test esi, esi
jl 0x101074f4
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.100d3470
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x101074a2
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.100a6a00
test eax, eax
je 0x101074f4
add edi, 1
add ebp, 0x18
test bl, bl
jne 0x101073c3
mov eax, dword [esp + 0x18]
test eax, eax
je 0x101074da
movzx ecx, word [esp + 0x60]
cmp eax, ecx
jge 0x101074df
mov byte [esp + 0x16], 0
cmp byte [esp + 0x2e], 0
je 0x101075a7
mov byte [esp + 0x16], 1
jmp 0x101075b2
test dword [esp + 0xa0], 0x100
jne 0x10107561
cmp byte [esp + 0x2d], 0
je 0x10107525
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 0x101074c9
jmp 0x10107561
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 0x1010755c
mov ecx, dword [esp + 0x3c]
mov eax, 1
xor edx, edx
call fcn.10139f80
mov ecx, dword [esp + 0xac]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x2d], 1
test esi, esi
jge 0x1010756a
mov byte [esp + 0x2e], 1
mov eax, 1
xor edx, edx
mov ecx, edi
call fcn.10139f80
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 0x101074df
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
jmp 0x10107330
cmp byte [esp + 0x16], 0
je 0x101076ca
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 0x101076ca
mov dword [esp + 0x30], ecx
mov eax, 1
xor edx, edx
call fcn.10139f80
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 0x101076b0
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.101033d0
mov edi, eax
mov ebp, edx
mov edx, edi
add esp, 8
or edx, ebp
jne 0x1010768d
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], 0x100d4de0
mov dword [esp + 0x74], 0x100d4ed0
mov dword [esp + 0x84], eax
je 0x1010768d
lea eax, [esp + 0x6c]
push esi
push eax
call fcn.100d1610
add esp, 8
cmp byte [esp + 0x80], 0
je 0x101076b0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x101076b0
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 0x101075d8
add dword [esp + 0x3c], 1
cmp byte [esp + 0x16], 0
jne 0x101070f2
jmp 0x101076e2
cmp byte [esi + 0x1d], 0
jne 0x101076f6
mov edx, dword [esp + 0x58]
cmp dword [esp + 0x20], edx
jne 0x10107705
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x24], eax
jne 0x10107705
mov al, byte [esp + 0x64]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp byte [esp + 0x16], 0
jne 0x10107768
mov ebx, dword [esp + 0x38]
add ebx, 0xffffffff
test ebx, ebx
jle 0x10107097
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.10139f80
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x10107747
cmp esi, edx
je 0x1010775b
sub ebx, 1
test ebx, ebx
jg 0x10107723
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