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

Disassembly:
sub esp, 0x64
xor ecx, ecx
push ebx
push ebp
mov ebp, dword [esp + 0x70]
xor edx, edx
mov byte [ebp + 0x4c], 1
lea ebx, [ebp + 0x10]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov edx, dword [eax]
mov dword [ebp], edx
mov edx, dword [eax + 4]
mov dword [ebp + 4], edx
mov edx, dword [eax]
mov dword [ebp + 0x18], edx
mov eax, dword [eax + 4]
mov dword [ebp + 0x1c], eax
mov eax, 0xa
push esi
push edi
mov byte [esp + 0x78], cl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov byte [esp + 0x48], cl
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
mov byte [esp + 0x54], cl
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
mov byte [esp + 0x60], 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ecx
cmp byte [esp + 0x78], 0
je 0x100a6a05
mov ecx, ebp
call fcn.100a5c90
test al, al
je 0x100a6a05
mov esi, dword [ebp + 0x2c]
mov eax, esi
cmp dword [eax + 0xc], 0
je 0x100a69fd
mov eax, dword [eax + 0xc]
cmp dword [eax + 0xc], 0
jne 0x100a69f4
mov edi, dword [eax + 4]
and edi, 0x1f
jmp 0x100a6a61
mov eax, dword [ebp]
test eax, eax
je 0x100a6a14
mov ecx, dword [ebp + 4]
cmp ecx, dword [eax + 4]
jl 0x100a6a1b
mov edi, 0xa
jmp 0x100a6a2f
mov edx, dword [eax]
movzx eax, word [edx + ecx*2]
movzx eax, ax
push eax
call fcn.1027b3f0
add esp, 4
mov edi, eax
mov esi, dword [ebp + 0x2c]
test byte [esi + 8], 1
je 0x100a6a59
cmp edi, 0xe
je 0x100a6a59
cmp edi, 0xb
je 0x100a6a59
cmp edi, 0xf
je 0x100a6a59
cmp edi, 0xc
je 0x100a6a59
cmp edi, 0x10
je 0x100a6a59
mov edi, dword [esi + 4]
and edi, 0x1f
jmp 0x100a6a61
cmp edi, 0x11
jne 0x100a6a61
mov edi, dword [ebp + 0x28]
cmp edi, 0x12
ja case.0x100a6a71.3
movzx ecx, byte [edi + 0x100a70a8]
jmp dword [ecx*4 + 0x100a7088]
mov eax, edi
mov ecx, ebp
call fcn.100a7460
jmp case.0x100a6a71.3
mov eax, dword [ebp + 0x28]
lea ecx, [eax - 1]
cmp ecx, 0x11
ja case.0x100a6a9c.11
movzx edx, byte [ecx + 0x100a70c8]
jmp dword [edx*4 + 0x100a70bc]
cmp eax, 2
jne 0x100a6b3d
cmp dword [ebp + 0x24], 0
je case.0x100a6a9c.11
jmp 0x100a6b3d
mov eax, dword [ebp + 0x20]
cmp eax, 2
jne 0x100a6af0
cmp dword [ebp + 0x24], 0
je case.0x100a6a9c.11
mov esi, ebp
mov dword [ebp + 0x30], eax
call fcn.100a76f0
mov eax, dword [ebp + 0x2c]
test byte [eax + 4], 0x1f
je case.0x100a6a9c.11
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebp + 0x30], 1
jmp 0x100a6b3f
cmp eax, 5
jne 0x100a6b1c
mov esi, ebp
mov dword [ebp + 0x30], eax
call fcn.100a76f0
mov eax, dword [ebp + 0x2c]
test byte [eax + 4], 0x1f
je case.0x100a6a9c.11
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebp + 0x30], 1
jmp 0x100a6b3f
cmp dword [ebp + 0x24], 0
je case.0x100a6a9c.11
mov eax, dword [esi + 4]
and al, 0x1f
cmp al, 1
jne 0x100a6b3d
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebp + 0x30], 1
mov esi, ebp
call fcn.100a76f0
mov eax, dword [ebp]
mov dword [ebx], eax
xor eax, eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x30], eax
jmp 0x100a6dd0
mov eax, dword [ebp + 0x28]
cmp eax, 0x12
ja case.0x100a6b68.1
movzx edx, byte [eax + 0x100a70e8]
jmp dword [edx*4 + 0x100a70dc]
mov eax, dword [ebp + 0x20]
cmp eax, 2
jne 0x100a6b90
cmp dword [ebp + 0x24], 0
jne case.0x100a6b68.0
test byte [esi + 4], 0x1f
jne case.0x100a6b68.0
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp case.0x100a6b68.0
cmp eax, 5
je case.0x100a6b68.0
cmp dword [ebp + 0x24], 0
jne case.0x100a6b68.1
test byte [esi + 4], 0x1f
jne case.0x100a6b68.0
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov esi, ebp
call fcn.100a76f0
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov eax, 1
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edi
mov dword [ebp + 0x30], eax
jmp case.0x100a6a71.3
mov edx, dword [ebp + 0x24]
cmp edx, 0xd
je case.0x100a6a71.5
mov ecx, dword [ebp + 0x28]
lea eax, [ecx - 1]
cmp eax, 0x11
ja case.0x100a6bf3.2
movzx eax, byte [eax + 0x100a710c]
jmp dword [eax*4 + 0x100a70fc]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov dword [ebx], ecx
jmp 0x100a6ca2
cmp dword [ebp + 0x20], 2
je case.0x100a6bf3.2
mov eax, dword [ebp + 0x20]
cmp eax, 2
jne 0x100a6c45
cmp edx, 1
jne case.0x100a6bf3.2
mov esi, ebp
call fcn.100a76f0
cmp dword [ebp + 0x28], 4
lea eax, [ebp + 0x44]
je 0x100a6c35
lea eax, [ebp + 0x18]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 0x30], 1
jmp 0x100a6ca4
cmp eax, 5
jne 0x100a6c84
mov esi, ebp
call fcn.100a76f0
cmp dword [ebp + 0x24], 1
je 0x100a6c65
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 4]
and cl, 0x1f
cmp cl, 1
jne case.0x100a6bf3.2
cmp dword [ebp + 0x28], 4
lea eax, [ebp + 0x44]
je 0x100a6c71
lea eax, [ebp + 0x18]
mov edx, dword [eax]
mov dword [ebx], edx
mov eax, dword [eax + 4]
mov dword [ebx + 4], eax
mov dword [ebp + 0x30], 1
jmp 0x100a6ca7
cmp edx, 1
jne case.0x100a6bf3.2
cmp ecx, 4
lea eax, [ebp + 0x44]
je 0x100a6c94
lea eax, [ebp + 0x18]
mov ecx, dword [eax]
mov dword [ebx], ecx
mov edx, dword [eax + 4]
mov dword [ebp + 0x30], 1
mov esi, ebp
mov dword [ebx + 4], edx
call fcn.100a76f0
mov dword [ebp + 0x30], 2
cmp dword [ebp + 0x30], 0xa
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
mov dword [ebp + 0x20], 2
jne case.0x100a6a71.3
mov dword [ebp + 0x30], 0
jmp case.0x100a6a71.3
mov eax, dword [ebp + 0x28]
cmp eax, 0x12
mov edi, 5
ja case.0x100a6cf3.5
movzx edx, byte [eax + 0x100a7134]
jmp dword [edx*4 + 0x100a7120]
test byte [esi + 4], 0x1f
jne case.0x100a6cf3.5
jmp 0x100a6d70
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp 0x100a6d70
cmp dword [ebp + 0x20], edi
je case.0x100a6cf3.5
mov eax, dword [ebp + 0x20]
cmp eax, edi
je 0x100a6d57
cmp eax, 2
jne 0x100a6d35
cmp dword [ebp + 0x24], 1
je 0x100a6d57
mov edx, dword [esi + 4]
and dl, 0x1f
cmp dl, 1
je 0x100a6d57
cmp eax, eax
je 0x100a6d44
cmp dword [ebp + 0x24], 0
jne 0x100a6d44
mov eax, dword [esi + 4]
and al, 0x1f
cmp al, 1
je 0x100a6d57
cmp dword [ebp + 0x30], 0xa
jne 0x100a6d65
xor ecx, ecx
cmp dword [ebp + 0x24], ecx
setne cl
mov dword [ebp + 0x30], ecx
jmp 0x100a6d65
mov esi, ebp
call fcn.100a76f0
mov dword [ebp + 0x30], 1
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov esi, ebp
call fcn.100a76f0
cmp dword [ebp + 0x30], 0xa
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
mov dword [ebp + 0x20], edi
jne case.0x100a6a71.3
mov dword [ebp + 0x30], edi
jmp case.0x100a6a71.3
mov eax, dword [ebp + 0x28]
cmp eax, 2
jne 0x100a6d9f
mov edi, eax
mov dword [ebp + 0x20], edi
jmp 0x100a6dcb
cmp eax, 4
je case.0x100a6a71.3
cmp byte [ebp + 0x4c], 0
mov eax, ebx
jne 0x100a6daf
lea eax, [ebp + 0x18]
mov edx, dword [eax]
mov dword [ebp + 0x44], edx
mov eax, dword [eax + 4]
mov dword [ebp + 0x48], eax
jmp case.0x100a6a71.3
mov ecx, dword [ebx + 4]
cmp ecx, dword [ebp + 0x1c]
jne case.0x100a6a71.3
mov edx, dword [ebx]
cmp edx, dword [ebp + 0x18]
jne case.0x100a6a71.3
mov eax, dword [ebp]
mov dword [ebx], eax
mov ecx, dword [ebp + 4]
mov dword [ebx + 4], ecx
mov dl, byte [esp + 0x78]
test dl, dl
je 0x100a6df1
mov eax, dword [ebx + 4]
cmp eax, dword [ebp + 4]
jne 0x100a6df1
mov ecx, dword [ebx]
cmp ecx, dword [ebp]
je 0x100a6eff
lea eax, [edi - 3]
cmp eax, 0xf
ja case.0x100a6e25.0
movzx eax, byte [eax + 0x100a7158]
jmp dword [eax*4 + 0x100a7148]
cmp dword [ebp + 0x28], 2
je case.0x100a6e00.11
mov dword [ebp + 0x28], 4
jmp case.0x100a6e00.11
mov eax, dword [ebp + 0x28]
cmp eax, 0xd
ja case.0x100a6e25.3
movzx ecx, byte [eax + 0x100a7170]
jmp dword [ecx*4 + 0x100a7168]
mov dword [ebp + 0x28], 0xa
jmp case.0x100a6e00.11
mov dword [ebp + 0x28], edi
cmp byte [ebp + 0x4c], 0
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ecx
je 0x100a6e6d
cmp edi, 0xe
je 0x100a6e6d
cmp edi, 0xb
je 0x100a6e6d
cmp edi, 0xf
je 0x100a6e6d
cmp edi, 0xc
je 0x100a6e6d
cmp edi, 0x10
je 0x100a6e6d
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
mov byte [ebp + 0x4c], 0
add dword [ebp + 4], 1
cmp byte [ebp + 0x4c], 0
mov byte [ebp + 0x34], 0
je 0x100a6eaf
cmp edi, 0xe
je 0x100a6e94
cmp edi, 0xb
je 0x100a6e94
cmp edi, 0xf
je 0x100a6e94
cmp edi, 0xc
je 0x100a6e94
cmp edi, 0x10
jne 0x100a6eaf
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov eax, dword [ebp]
mov dword [ebx + 4], ecx
mov ecx, dword [ebp + 4]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
test dl, dl
jne 0x100a69d7
mov eax, dword [esp + 0x7c]
mov ecx, ebp
call fcn.100a5cb0
test al, al
jne 0x100a6ed5
mov ecx, ebp
call fcn.100a5c90
test al, al
je 0x100a69d7
cmp byte [ebp + 0x4c], 0
jne 0x100a6fa2
push ebp
lea esi, [esp + 0x18]
call fcn.100a7230
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x1c]
mov dword [ebp + 0x38], edx
mov dword [ebp + 0x3c], eax
mov byte [esp + 0x78], 1
jmp 0x100a69d7
cmp byte [ebp + 0x40], 0
jne 0x100a6f33
mov eax, dword [ebp + 0x20]
cmp eax, 5
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x3c]
mov dword [ebx], ecx
mov dword [ebx + 4], edx
ja case.0x100a6f18.3
jmp dword [eax*4 + 0x100a7180]
mov eax, dword [ebp + 0x24]
neg eax
sbb eax, eax
and eax, 2
mov dword [ebp + 0x30], eax
mov esi, ebp
call fcn.100a76f0
lea edi, [ebp + 0x20]
lea eax, [esp + 0x34]
call fcn.100a68f0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebp + 0xc], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 4], edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [ebp + 0x18], ecx
movzx ecx, byte [esp + 0x54]
mov dword [ebx], edx
mov edx, dword [esp + 0x30]
mov dword [ebx + 4], eax
mov al, byte [esp + 0x48]
mov byte [ebp + 0x40], cl
movzx ecx, byte [esp + 0x60]
mov dword [ebp + 0x1c], edx
mov edx, dword [esp + 0x58]
mov byte [ebp + 0x34], al
mov eax, dword [esp + 0x5c]
mov dword [ebp + 0x44], edx
mov dword [ebp + 0x48], eax
mov byte [ebp + 0x4c], cl
mov dword [ebp + 0x30], 0xa
mov ecx, dword [ebp + 0x50]
test ecx, ecx
mov dl, 0x80
mov byte [esp + 0x7c], dl
mov byte [esp + 0x78], 0
je 0x100a6fd1
mov al, byte [ecx]
cmp al, byte [esp + 0x78]
jbe 0x100a6fc0
mov byte [esp + 0x78], al
cmp al, dl
jae 0x100a6fca
mov byte [esp + 0x7c], al
mov dl, al
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x100a6fb4
movzx eax, dl
and eax, 0x80000001
jns 0x100a6fe0
dec eax
or eax, 0xfffffffe
inc eax
jne 0x100a6fe9
add dl, 1
mov byte [esp + 0x7c], dl
mov ebx, dword [ebp + 0x58]
mov cl, byte [esp + 0x78]
sub ebx, 1
cmp cl, dl
jb 0x100a7052
mov esi, dword [ebp + 0x50]
xor edi, edi
test ebx, ebx
jle 0x100a7047
cmp edi, ebx
jge 0x100a7016
test esi, esi
je 0x100a7016
cmp byte [esi], cl
jae 0x100a7016
mov esi, dword [esi + 0x10]
add edi, 1
cmp edi, ebx
jl 0x100a7004
cmp edi, ebx
mov eax, edi
jg 0x100a7032
lea esp, [esp]
test esi, esi
je 0x100a7032
cmp byte [esi], cl
jb 0x100a7032
mov esi, dword [esi + 0x10]
add edi, 1
cmp edi, ebx
jle 0x100a7020
lea edx, [edi - 1]
push ebp
call fcn.100a7770
cmp edi, ebx
mov cl, byte [esp + 0x78]
jl 0x100a7004
mov dl, byte [esp + 0x7c]
add cl, 0xff
cmp cl, dl
mov byte [esp + 0x78], cl
jae 0x100a6ff7
mov esi, dword [esp + 0x40]
xor eax, eax
xor ecx, ecx
test esi, esi
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], ecx
je 0x100a707e
add dword [esi + 0x10], 0xffffffff
cmp dword [esi + 0x10], ecx
jg 0x100a707e
lea ecx, [esi + 0xc]
call fcn.100a6870
push esi
call fcn.102f353f
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8