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

Disassembly:
sub esp, 0x94
mov eax, dword [0x101ed004]
xor eax, esp
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xa0]
push ebx
push ebp
mov ebp, dword [esp + 0xa4]
mov ebx, ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0xc], eax
push esi
push edi
mov edi, dword [esp + 0xa8]
cmp ebp, 0xa
jae 0x100f4cc6
mov eax, 0xffffffec
jmp 0x100f5896
lea eax, [ebx + edx]
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.100f3740
movzx eax, ax
lea ecx, [edi + 2]
mov dword [esp + 0x28], eax
call fcn.100f3740
movzx eax, ax
lea ecx, [edi + 4]
mov dword [esp + 0x48], eax
call fcn.100f3740
movzx eax, ax
mov esi, ebp
sub esi, eax
mov dword [esp + 0x1c], eax
sub esi, dword [esp + 0x48]
add edi, 6
mov eax, dword [esp + 0x28]
sub esi, eax
add eax, edi
sub esi, 6
mov dword [esp + 0x44], eax
add eax, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x4c]
add eax, 3
shr eax, 2
lea ecx, [eax + ebx]
lea edx, [ecx + eax]
mov dword [esp + 0x2c], ecx
add eax, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x34], eax
mov ebp, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], edx
mov eax, dword [eax]
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x18], eax
cmp esi, dword [esp + 0xac]
ja 0x100f4cbc
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x50]
push eax
mov edx, edi
call fcn.100f1310
add esp, 4
cmp eax, 0xffffff88
ja 0x100f5896
push dword [esp + 0x48]
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x68]
call fcn.100f1310
add esp, 4
cmp eax, 0xffffff88
ja 0x100f5896
mov edi, dword [esp + 0x1c]
lea ecx, [esp + 0x78]
mov edx, dword [esp + 0x3c]
push edi
call fcn.100f1310
add esp, 4
cmp eax, 0xffffff88
ja 0x100f5896
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0x8c]
push esi
lea edx, [edx + edi]
call fcn.100f1310
add esp, 4
cmp eax, 0xffffff88
ja 0x100f5896
lea ecx, [esp + 0x8c]
call fcn.100f1490
lea ecx, [esp + 0x78]
mov edi, eax
call fcn.100f1490
lea ecx, [esp + 0x64]
or edi, eax
call fcn.100f1490
mov esi, eax
lea ecx, [esp + 0x50]
or esi, edi
mov edi, dword [esp + 0x38]
add edi, 0xfffffffd
call fcn.100f1490
or eax, esi
mov edx, ebp
neg eax
sbb ecx, ecx
inc ecx
cmp edx, edi
sbb eax, eax
neg eax
test eax, ecx
je 0x100f5022
mov esi, dword [esp + 0x18]
neg esi
and esi, 0x1f
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
mov edi, dword [esp + 0x14]
movzx eax, word [edi + edx*4 + 4]
mov word [ebx], ax
movzx eax, byte [edi + edx*4 + 6]
add dword [esp + 0x54], eax
movzx eax, byte [edi + edx*4 + 7]
mov ecx, dword [esp + 0x68]
add ebx, eax
mov edx, dword [esp + 0x64]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [edi + edx*4 + 4]
mov edi, dword [esp + 0x30]
mov word [edi], ax
movzx eax, byte [ecx + edx*4 + 6]
add dword [esp + 0x68], eax
movzx eax, byte [ecx + edx*4 + 7]
mov ecx, dword [esp + 0x7c]
add edi, eax
mov edx, dword [esp + 0x78]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
mov esi, dword [esp + 0x24]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4 + 4]
mov word [esi], ax
movzx eax, byte [ecx + edx*4 + 6]
add dword [esp + 0x7c], eax
movzx eax, byte [ecx + edx*4 + 7]
mov ecx, dword [esp + 0x90]
add esi, eax
mov edx, dword [esp + 0x8c]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x20]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4 + 4]
mov word [ebp], ax
movzx eax, byte [ecx + edx*4 + 6]
add dword [esp + 0x90], eax
movzx eax, byte [ecx + edx*4 + 7]
mov ecx, dword [esp + 0x54]
add ebp, eax
mov edx, dword [esp + 0x50]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x20]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4 + 4]
mov word [ebx], ax
movzx eax, byte [ecx + edx*4 + 6]
add dword [esp + 0x54], eax
movzx eax, byte [ecx + edx*4 + 7]
mov ecx, dword [esp + 0x68]
add ebx, eax
mov edx, dword [esp + 0x64]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x20]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4 + 4]
mov word [edi], ax
movzx eax, byte [ecx + edx*4 + 6]
add dword [esp + 0x68], eax
movzx eax, byte [ecx + edx*4 + 7]
add edi, eax
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x20]
shr edx, cl
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx + edx*4 + 4]
mov word [esi], ax
movzx eax, byte [ecx + edx*4 + 6]
add dword [esp + 0x7c], eax
movzx eax, byte [ecx + edx*4 + 7]
mov ecx, dword [esp + 0x90]
add esi, eax
mov edx, dword [esp + 0x8c]
and ecx, 0x1f
shl edx, cl
mov ecx, dword [esp + 0x20]
shr edx, cl
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
movzx eax, word [ecx + edx*4 + 4]
mov word [ebp], ax
movzx eax, byte [ecx + edx*4 + 6]
add dword [esp + 0x90], eax
movzx eax, byte [ecx + edx*4 + 7]
lea ecx, [esp + 0x8c]
add ebp, eax
call fcn.100f1490
lea ecx, [esp + 0x78]
mov edi, eax
call fcn.100f1490
lea ecx, [esp + 0x64]
or edi, eax
call fcn.100f1490
mov esi, eax
lea ecx, [esp + 0x50]
or esi, edi
call fcn.100f1490
or eax, esi
mov esi, dword [esp + 0x20]
neg eax
sbb ecx, ecx
mov eax, dword [esp + 0x38]
add eax, 0xfffffffd
inc ecx
cmp ebp, eax
sbb eax, eax
neg eax
test eax, ecx
jne 0x100f4e35
mov edx, dword [esp + 0x34]
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x2c]
cmp ebx, eax
ja 0x100f4cbc
mov edi, dword [esp + 0x30]
cmp edi, dword [esp + 0x40]
ja 0x100f4cbc
mov esi, dword [esp + 0x24]
cmp esi, edx
ja 0x100f4cbc
add eax, 0xfffffffd
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp ebx, dword [esp + 0x3c]
sbb eax, eax
neg eax
test eax, ecx
je 0x100f50ff
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x3c]
neg esi
mov ebp, dword [esp + 0x14]
and esi, 0x1f
nop
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea edx, [eax*4]
movzx eax, word [edx + ebp + 4]
mov word [ebx], ax
movzx eax, byte [edx + ebp + 6]
mov ecx, dword [esp + 0x54]
add ecx, eax
movzx eax, byte [edx + ebp + 7]
mov edx, dword [esp + 0x50]
add ebx, eax
mov dword [esp + 0x54], ecx
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
lea ecx, [esp + 0x50]
movzx eax, word [ebp + edx*4 + 4]
mov word [ebx], ax
movzx eax, byte [ebp + edx*4 + 6]
add dword [esp + 0x54], eax
movzx eax, byte [ebp + edx*4 + 7]
add ebx, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp ebx, edi
sbb eax, eax
neg eax
test eax, ecx
jne 0x100f5080
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x50]
add eax, 0xfffffffe
mov dword [esp + 0x28], eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x28], ebx
sbb eax, eax
inc eax
test eax, ecx
je 0x100f5180
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
neg edi
mov ebp, dword [esp + 0x14]
and edi, 0x1f
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
lea ecx, [esp + 0x50]
mov ax, word [ebp + edx*4 + 4]
mov word [ebx], ax
movzx eax, byte [ebp + edx*4 + 6]
add dword [esp + 0x54], eax
movzx eax, byte [ebp + edx*4 + 7]
add ebx, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp esi, ebx
sbb eax, eax
inc eax
test eax, ecx
jne 0x100f5134
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
cmp ebx, dword [esp + 0x28]
ja 0x100f51ec
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x54]
neg eax
mov edi, dword [esp + 0x28]
and eax, 0x1f
mov ebp, dword [esp + 0x14]
mov esi, eax
nop dword [eax]
mov eax, dword [esp + 0x50]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [eax*4]
mov ax, word [ecx + ebp + 4]
mov word [ebx], ax
movzx eax, byte [ecx + ebp + 6]
mov edx, dword [esp + 0x54]
add edx, eax
movzx eax, byte [ecx + ebp + 7]
add ebx, eax
mov dword [esp + 0x54], edx
cmp ebx, edi
jbe 0x100f51a0
mov ebp, dword [esp + 0x20]
mov ecx, edx
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x1c], edx
jmp 0x100f51f0
mov ecx, dword [esp + 0x54]
cmp ebx, dword [esp + 0x2c]
jae 0x100f5246
mov edx, dword [esp + 0x18]
and ecx, 0x1f
mov eax, dword [esp + 0x50]
neg edx
shl eax, cl
and edx, 0x1f
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*4]
mov al, byte [edx + 4]
mov byte [ebx], al
cmp byte [edx + 7], 1
jne 0x100f5228
movzx eax, byte [edx + 6]
add dword [esp + 0x54], eax
jmp 0x100f5246
mov ecx, dword [esp + 0x54]
cmp ecx, 0x20
jae 0x100f5246
movzx eax, byte [edx + 6]
add ecx, eax
mov eax, 0x20
cmp ecx, 0x20
cmova ecx, eax
mov dword [esp + 0x54], ecx
mov ebx, dword [esp + 0x40]
lea ecx, [esp + 0x64]
add ebx, 0xfffffffd
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100f52fb
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
neg esi
and esi, 0x1f
nop word [eax + eax]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea edx, [eax*4]
movzx eax, word [edx + ebp + 4]
mov word [edi], ax
movzx eax, byte [edx + ebp + 6]
mov ecx, dword [esp + 0x68]
add ecx, eax
movzx eax, byte [edx + ebp + 7]
mov edx, dword [esp + 0x64]
add edi, eax
mov dword [esp + 0x68], ecx
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
lea ecx, [esp + 0x64]
movzx eax, word [ebp + edx*4 + 4]
mov word [edi], ax
movzx eax, byte [ebp + edx*4 + 6]
add dword [esp + 0x68], eax
movzx eax, byte [ebp + edx*4 + 7]
add edi, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100f5280
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x64]
mov ebx, dword [esp + 0x18]
add eax, 0xfffffffe
mov dword [esp + 0x2c], eax
call fcn.100f1490
mov edx, dword [esp + 0x2c]
neg eax
sbb ecx, ecx
inc ecx
cmp edx, edi
sbb eax, eax
inc eax
test eax, ecx
je 0x100f5384
mov ebp, dword [esp + 0x14]
mov esi, edx
mov dword [esp + 0x1c], ebx
neg ebx
and ebx, 0x1f
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
shr edx, cl
lea ecx, [esp + 0x64]
mov ax, word [ebp + edx*4 + 4]
mov word [edi], ax
movzx eax, byte [ebp + edx*4 + 6]
add dword [esp + 0x68], eax
movzx eax, byte [ebp + edx*4 + 7]
add edi, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp esi, edi
sbb eax, eax
inc eax
test eax, ecx
jne 0x100f5334
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
cmp edi, edx
ja 0x100f53e2
mov ebp, dword [esp + 0x14]
neg ebx
and ebx, 0x1f
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x1c]
nop dword [eax]
mov eax, dword [esp + 0x64]
and ebx, 0x1f
mov ecx, ebx
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [eax*4]
mov ax, word [ecx + ebp + 4]
mov word [edi], ax
movzx eax, byte [ecx + ebp + 6]
mov ebx, dword [esp + 0x68]
add ebx, eax
movzx eax, byte [ecx + ebp + 7]
add edi, eax
mov dword [esp + 0x68], ebx
cmp edi, edx
jbe 0x100f53a0
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x100f53e6
mov ebx, dword [esp + 0x68]
cmp edi, dword [esp + 0x40]
jae 0x100f543e
mov edx, dword [esp + 0x18]
and ebx, 0x1f
mov eax, dword [esp + 0x64]
neg edx
and edx, 0x1f
mov ecx, ebx
shl eax, cl
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*4]
mov al, byte [edx + 4]
mov byte [edi], al
cmp byte [edx + 7], 1
jne 0x100f5420
movzx eax, byte [edx + 6]
add dword [esp + 0x68], eax
jmp 0x100f543e
mov ecx, dword [esp + 0x68]
cmp ecx, 0x20
jae 0x100f543e
movzx eax, byte [edx + 6]
add ecx, eax
mov eax, 0x20
cmp ecx, 0x20
cmova ecx, eax
mov dword [esp + 0x68], ecx
mov ebx, dword [esp + 0x34]
lea ecx, [esp + 0x78]
add ebx, 0xfffffffd
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100f54e7
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
neg edi
and edi, 0x1f
nop
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
lea edx, [eax*4]
movzx eax, word [edx + ebp + 4]
mov word [esi], ax
movzx eax, byte [edx + ebp + 6]
mov ecx, dword [esp + 0x7c]
add ecx, eax
movzx eax, byte [edx + ebp + 7]
mov edx, dword [esp + 0x78]
add esi, eax
mov dword [esp + 0x7c], ecx
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
lea ecx, [esp + 0x78]
movzx eax, word [ebp + edx*4 + 4]
mov word [esi], ax
movzx eax, byte [ebp + edx*4 + 6]
add dword [esp + 0x7c], eax
movzx eax, byte [ebp + edx*4 + 7]
add esi, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100f5470
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
lea ecx, [esp + 0x78]
mov ebx, dword [esp + 0x18]
add edi, 0xfffffffe
mov dword [esp + 0x44], edi
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp edi, esi
sbb eax, eax
inc eax
test eax, ecx
je 0x100f5568
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
neg ebx
and ebx, 0x1f
nop word [eax + eax]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
shr edx, cl
lea ecx, [esp + 0x78]
mov ax, word [ebp + edx*4 + 4]
mov word [esi], ax
movzx eax, byte [ebp + edx*4 + 6]
add dword [esp + 0x7c], eax
movzx eax, byte [ebp + edx*4 + 7]
add esi, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp edi, esi
sbb eax, eax
inc eax
test eax, ecx
jne 0x100f5520
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
cmp esi, edi
mov edi, dword [esp + 0x7c]
ja 0x100f55c1
mov edx, dword [esp + 0x44]
neg ebx
mov ebp, dword [esp + 0x14]
and ebx, 0x1f
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x78]
and edi, 0x1f
mov ecx, edi
shl eax, cl
mov ecx, ebx
shr eax, cl
lea ecx, [eax*4]
mov ax, word [ecx + ebp + 4]
mov word [esi], ax
movzx eax, byte [ecx + ebp + 6]
mov edi, dword [esp + 0x7c]
add edi, eax
movzx eax, byte [ecx + ebp + 7]
add esi, eax
mov dword [esp + 0x7c], edi
cmp esi, edx
jbe 0x100f5581
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
cmp esi, dword [esp + 0x34]
jae 0x100f5617
mov eax, dword [esp + 0x78]
mov edx, ebx
neg edx
and edi, 0x1f
and edx, 0x1f
mov ecx, edi
shl eax, cl
mov ecx, edx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea edx, [ecx + eax*4]
mov al, byte [edx + 4]
mov byte [esi], al
cmp byte [edx + 7], 1
jne 0x100f55f9
movzx eax, byte [edx + 6]
add dword [esp + 0x7c], eax
jmp 0x100f5617
mov ecx, dword [esp + 0x7c]
cmp ecx, 0x20
jae 0x100f5617
movzx eax, byte [edx + 6]
add ecx, eax
mov eax, 0x20
cmp ecx, 0x20
cmova ecx, eax
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0x8c]
call fcn.100f1490
mov edi, dword [esp + 0x38]
neg eax
sbb ecx, ecx
add edi, 0xfffffffd
inc ecx
cmp ebp, edi
sbb eax, eax
neg eax
test eax, ecx
je 0x100f56db
mov esi, ebx
mov ebx, dword [esp + 0x14]
neg esi
and esi, 0x1f
nop dword [eax + eax]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea edx, [ebx + eax*4]
movzx eax, word [edx + 4]
mov word [ebp], ax
movzx eax, byte [edx + 6]
mov ecx, dword [esp + 0x90]
add ecx, eax
movzx eax, byte [edx + 7]
mov edx, dword [esp + 0x8c]
add ebp, eax
mov dword [esp + 0x90], ecx
and ecx, 0x1f
shl edx, cl
mov ecx, esi
shr edx, cl
lea ecx, [esp + 0x8c]
movzx eax, word [ebx + edx*4 + 4]
mov word [ebp], ax
movzx eax, byte [ebx + edx*4 + 6]
add dword [esp + 0x90], eax
movzx eax, byte [ebx + edx*4 + 7]
add ebp, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp ebp, edi
sbb eax, eax
neg eax
test eax, ecx
jne 0x100f5650
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
lea ecx, [esp + 0x8c]
add esi, 0xfffffffe
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp esi, ebp
sbb eax, eax
inc eax
test eax, ecx
je 0x100f5761
mov edi, ebx
mov ebx, dword [esp + 0x14]
neg edi
and edi, 0x1f
nop dword [eax + eax]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
and ecx, 0x1f
shl edx, cl
mov ecx, edi
shr edx, cl
lea ecx, [esp + 0x8c]
mov ax, word [ebx + edx*4 + 4]
mov word [ebp], ax
movzx eax, byte [ebx + edx*4 + 6]
add dword [esp + 0x90], eax
movzx eax, byte [ebx + edx*4 + 7]
add ebp, eax
call fcn.100f1490
neg eax
sbb ecx, ecx
inc ecx
cmp esi, ebp
sbb eax, eax
inc eax
test eax, ecx
jne 0x100f5710
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x90]
cmp ebp, esi
ja 0x100f57bf
mov edi, ebx
mov ebx, dword [esp + 0x14]
neg edi
and edi, 0x1f
nop word [eax + eax]
mov eax, dword [esp + 0x8c]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [ebp], ax
movzx eax, byte [ecx + 6]
mov edx, dword [esp + 0x90]
add edx, eax
movzx eax, byte [ecx + 7]
add ebp, eax
mov dword [esp + 0x90], edx
cmp ebp, esi
jbe 0x100f5780
mov ebx, dword [esp + 0x18]
cmp ebp, dword [esp + 0x38]
jae 0x100f5814
mov eax, dword [esp + 0x8c]
and edx, 0x1f
neg ebx
mov ecx, edx
shl eax, cl
and ebx, 0x1f
mov ecx, ebx
shr eax, cl
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + eax*4]
mov al, byte [ecx + 4]
mov byte [ebp], al
cmp byte [ecx + 7], 1
mov edx, dword [esp + 0x90]
jne 0x100f57fe
movzx eax, byte [ecx + 6]
add edx, eax
jmp 0x100f5814
cmp edx, 0x20
jae 0x100f5814
movzx eax, byte [ecx + 6]
add edx, eax
mov eax, 0x20
cmp edx, 0x20
cmova edx, eax
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x5c]
jne 0x100f582c
cmp dword [esp + 0x54], 0x20
jne 0x100f582c
mov esi, 1
jmp 0x100f582e
xor esi, esi
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x70]
jne 0x100f5846
cmp dword [esp + 0x68], 0x20
jne 0x100f5846
mov edi, 1
jmp 0x100f5848
xor edi, edi
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x84]
jne 0x100f5866
cmp dword [esp + 0x7c], 0x20
jne 0x100f5866
mov ecx, 1
jmp 0x100f5868
xor ecx, ecx
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x98]
jne 0x100f5882
cmp edx, 0x20
jne 0x100f5882
lea eax, [edx - 0x1f]
jmp 0x100f5884
xor eax, eax
and eax, ecx
mov ecx, 0xffffffec
and eax, edi
test esi, eax
mov eax, dword [esp + 0x4c]
cmove eax, ecx
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10142783
add esp, 0x94
ret