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

Disassembly:
jmp 0x1009acb0
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0xc8]
add eax, 0xfffffffc
cmp eax, 3
ja case.0x1009acc2.4
jmp dword [eax*4 + 0x1009acf0]
mov dword [esp + 4], ecx
jmp 0x100a0be0
mov dword [esp + 4], ecx
jmp 0x100a1760
mov dword [esp + 4], ecx
jmp 0x100a22e0
mov dword [esp + 4], ecx
jmp 0x100a0060
sub esp, 0x50
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
push ebx
mov ebx, dword [esp + 0x64]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 4]
sub ebx, ecx
add ebx, edx
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0xb8]
push ebp
push esi
mov esi, dword [eax + 0x18]
push edi
mov dword [esp + 0x24], ebx
mov edi, 1
mov ebx, dword [eax + 0xc]
shl edi, cl
mov ecx, dword [esp + 0x24]
mov eax, ecx
sub eax, ebx
sub ecx, edi
cmp eax, edi
mov eax, dword [esp + 0x10]
cmovbe ecx, ebx
test esi, esi
cmovne ecx, ebx
add eax, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
add eax, 0xfffffff8
mov dword [esp + 0x28], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x58], eax
sete al
mov dword [esp + 0x44], edx
add eax, ecx
mov edx, ebx
mov dword [esp + 0x50], eax
sub eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x54], eax
sub eax, edi
sub ecx, ebx
cmp ecx, edi
mov ecx, dword [esp + 0x20]
cmova edx, eax
mov eax, dword [esp + 0x54]
test esi, esi
cmovne edx, ebx
sub eax, edx
cmp ecx, eax
jbe 0x100a0147
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x74]
cmp ecx, eax
jbe 0x100a015b
mov dword [esp + 0x58], ecx
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x50]
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], eax
cmp edi, dword [esp + 0x28]
ja 0x100a0953
nop word [eax + eax]
push dword [esp + 0x3c]
push ebx
call fcn.100a3480
mov esi, dword [esp + 0x18]
mov edx, eax
mov eax, dword [esp + 0x24]
add esp, 8
mov dword [esp + 0x2c], 1
mov eax, dword [eax + edx*4]
add esi, eax
mov dword [esp + 0x48], eax
xor eax, eax
cmp eax, dword [esp + 0x74]
sbb eax, eax
neg eax
mov dword [esp + 0x5c], eax
push dword [esp + 0x40]
push ebx
call fcn.100a3300
mov ecx, dword [esp + 0x40]
add esp, 8
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x34], ebx
sub dword [esp + 0x34], ebp
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x50], ecx
add ecx, ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebp + eax*4], ecx
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x68]
mov dword [eax + edx*4], ecx
mov edx, ebx
sub edx, dword [esp + 0x74]
xor ecx, ecx
mov eax, dword [edx + 1]
cmp eax, dword [ebx + 1]
sete cl
test dword [esp + 0x5c], ecx
jne 0x100a05d7
push dword [esp + 0x3c]
push edi
call fcn.100a3480
mov edx, eax
add esp, 8
mov eax, dword [esp + 0x24]
mov dword [esp + 0x54], edx
cmp dword [esp + 0x48], eax
jbe 0x100a023d
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x100a023d
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 4]
je 0x100a029b
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + edx*4]
add esi, ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x50], eax
jbe 0x100a026a
mov edx, dword [esp + 0x4c]
mov eax, dword [edx]
cmp eax, dword [ebx]
je 0x100a043a
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
cmp edi, eax
jb 0x100a0284
inc ecx
add eax, 0x100
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov ebx, edi
add edi, ecx
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x28]
jbe 0x100a01b6
jmp 0x100a0953
mov edi, dword [esp + 0x64]
lea ecx, [ebx + 8]
add edi, 0xfffffffd
mov dword [esp + 0x48], ecx
lea edx, [esi + 8]
cmp ecx, edi
jae 0x100a02e4
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a02be
bsf ecx, eax
shr ecx, 3
jmp 0x100a030c
add ecx, 4
add edx, 4
cmp ecx, edi
jae 0x100a02e4
nop dword [eax + eax]
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a042d
add ecx, 4
add edx, 4
cmp ecx, edi
jb 0x100a02d0
mov edi, dword [esp + 0x64]
lea eax, [edi - 1]
cmp ecx, eax
jae 0x100a02fd
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a02fd
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x100a0308
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a0308
inc ecx
sub ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x70]
lea edi, [ecx + 8]
mov eax, ebx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x30], eax
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a034c
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a034c
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a0330
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
cmp dword [esp + 0x2c], 4
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x74], eax
jae 0x100a037a
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x1c]
sub edx, dword [esp + 0x10]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
mov eax, ebx
mov dword [esp + 0x70], edx
sub eax, esi
add ecx, 0xffffffe0
mov dword [esp + 0x50], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a058e
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x58]
add esp, 8
cmp eax, 0x10
jbe 0x100a059e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x54], eax
push dword [esp + 0x54]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x64], eax
lea ecx, [eax + edx]
mov dword [esp + 0x54], ecx
call fcn.100a2e60
add esp, 8
mov dword [esp + 0x70], esi
cmp edx, 0x10
jle 0x100a059a
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
add edx, 0x10
mov ebp, dword [esp + 0x4c]
add esi, 0x10
nop dword [eax + eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a0400
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a059e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a0308
cmp ecx, dword [esp + 0x24]
jbe 0x100a04b7
mov eax, dword [esi]
cmp eax, dword [edi]
jne 0x100a04b7
mov eax, dword [esi + 4]
cmp eax, dword [edi + 4]
jne 0x100a04b7
mov eax, dword [esp + 0x64]
mov ebx, edi
push eax
lea eax, [esi + 8]
push eax
lea eax, [edi + 8]
push eax
call fcn.100a2e80
mov edx, dword [esp + 0x20]
add esp, 0xc
lea edi, [eax + 8]
mov eax, edx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x30], eax
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], edx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a0350
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a0350
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a0490
jmp 0x100a0350
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, ecx
cmp ecx, esi
jae 0x100a04f6
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a04d8
bsf ecx, eax
shr ecx, 3
jmp 0x100a051c
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a04f6
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a0584
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a04e2
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a050f
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a050f
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a051a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a051a
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x4c]
mov eax, ebx
sub eax, ecx
cmp dword [esp + 0x18], ecx
mov dword [esp + 0x30], eax
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a057b
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
nop dword [eax]
lea eax, [ebx - 1]
mov dword [esp + 0x70], eax
lea ecx, [edx - 1]
mov al, byte [eax]
mov edx, ecx
cmp al, byte [ecx]
jne 0x100a0577
mov ebx, dword [esp + 0x70]
inc edi
cmp ebp, edx
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a0550
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
jmp 0x100a0354
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a051a
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
add esp, 0x10
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x50]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a05bf
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x30]
add ecx, 3
mov dword [eax], ecx
jmp 0x100a073f
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 5]
add esi, 0xfffffffd
add edx, 5
mov edi, ecx
cmp ecx, esi
jae 0x100a0616
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a05f8
bsf ecx, eax
shr ecx, 3
jmp 0x100a063c
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a0616
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a06ea
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a0602
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a062f
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a062f
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a063a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a063a
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
inc ebx
mov dword [esp + 0x70], edx
mov eax, ebx
add ecx, 0xffffffe0
sub eax, esi
mov dword [esp + 0x50], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a06fb
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x58]
add esp, 8
cmp eax, 0x10
jbe 0x100a070e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x54], eax
push dword [esp + 0x54]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x64], eax
lea ecx, [eax + edx]
mov dword [esp + 0x54], ecx
call fcn.100a2e60
add esp, 8
cmp edx, 0x10
jle 0x100a06f7
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
add edx, 0x10
mov ebp, dword [esp + 0x4c]
add esi, 0x10
nop dword [eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a06c0
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a070e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a063a
mov edx, esi
jmp 0x100a070e
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
mov edx, dword [esp + 0x80]
add esp, 0x10
mov ecx, dword [esp + 0x50]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a072f
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov dword [eax], 1
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x100a075d
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 6], cx
add dword [ebp + 4], 8
add ebx, edi
mov dword [esp + 0x70], ebx
cmp ebx, dword [esp + 0x28]
ja 0x100a0938
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
add edi, 2
mov ebp, dword [esp + 0x3c]
add esi, edi
push ebp
push esi
call fcn.100a3480
mov ecx, dword [esp + 0x24]
push ebp
mov dword [ecx + eax*4], edi
lea eax, [ebx - 2]
push eax
call fcn.100a3480
mov ebp, dword [esp + 0x2c]
mov edx, ebx
sub edx, dword [esp + 0x20]
mov ecx, eax
lea eax, [edx - 2]
mov dword [ebp + ecx*4], eax
mov ebp, dword [esp + 0x50]
push ebp
push esi
call fcn.100a3300
mov esi, dword [esp + 0x50]
push ebp
mov dword [esi + eax*4], edi
lea eax, [ebx - 1]
push eax
call fcn.100a3300
mov ebp, dword [esp + 0x88]
mov ecx, eax
lea eax, [edx - 1]
add esp, 0x20
mov dword [esi + ecx*4], eax
mov esi, dword [esp + 0x64]
lea eax, [esi - 0x20]
mov dword [esp + 0x5c], eax
nop dword [eax]
mov eax, dword [ebx]
mov edx, ebx
sub edx, dword [esp + 0x20]
xor ecx, ecx
cmp eax, dword [edx]
sete cl
xor eax, eax
cmp eax, dword [esp + 0x20]
sbb eax, eax
neg eax
test eax, ecx
je 0x100a0938
lea eax, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, eax
cmp eax, esi
jae 0x100a0854
mov ecx, dword [eax]
xor ecx, dword [edx]
je 0x100a082e
bsf ecx, ecx
shr ecx, 3
jmp 0x100a087c
add eax, 4
add edx, 4
cmp eax, esi
jae 0x100a0854
nop dword [eax + eax]
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x100a08d1
add eax, 4
add edx, 4
cmp eax, esi
jb 0x100a0840
mov esi, dword [esp + 0x64]
lea ecx, [esi - 1]
cmp eax, ecx
jae 0x100a086d
mov cx, word [edx]
cmp cx, word [eax]
jne 0x100a086d
add eax, 2
add edx, 2
cmp eax, esi
jae 0x100a0878
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x100a0878
inc eax
mov ecx, eax
sub ecx, edi
push dword [esp + 0x40]
mov eax, dword [esp + 0x24]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x78]
push ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x7c], eax
call fcn.100a3300
mov ecx, dword [esp + 0x40]
mov esi, ebx
push dword [esp + 0x44]
sub esi, dword [esp + 0x1c]
push ebx
mov dword [ecx + eax*4], esi
call fcn.100a3480
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [ecx + eax*4], esi
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 0xc]
cmp ebx, ecx
ja 0x100a08dd
push ebx
push eax
call fcn.100a2e60
add esp, 8
jmp 0x100a08e9
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x100a087c
push ecx
push ebx
push ebx
push eax
call fcn.100a34a0
add esp, 0x10
mov eax, dword [ebp + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [edi - 3]
mov eax, dword [ebp + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x100a0919
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
add ebx, edi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x70], ebx
mov word [eax + 6], cx
add dword [ebp + 4], 8
cmp ebx, dword [esp + 0x28]
jbe 0x100a07f0
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x30], eax
cmp edi, dword [esp + 0x28]
jbe 0x100a0180
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x74]
test edx, edx
je 0x100a0968
test eax, eax
cmovne ecx, edx
mov esi, dword [esp + 0x6c]
test eax, eax
pop edi
cmovne edx, eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esi], edx
cmovne ecx, eax
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x6c]
mov dword [esi + 4], ecx
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
sub esp, 0x50
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
push ebx
mov ebx, dword [esp + 0x64]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 4]
sub ebx, ecx
add ebx, edx
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0xb8]
push ebp
push esi
mov esi, dword [eax + 0x18]
push edi
mov dword [esp + 0x2c], ebx
mov edi, 1
mov ebx, dword [eax + 0xc]
shl edi, cl
mov ecx, dword [esp + 0x2c]
mov eax, ecx
sub eax, ebx
sub ecx, edi
cmp eax, edi
mov eax, dword [esp + 0x10]
cmovbe ecx, ebx
test esi, esi
cmovne ecx, ebx
add eax, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
add eax, 0xfffffff8
mov dword [esp + 0x28], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x54], eax
sete al
mov dword [esp + 0x44], edx
add eax, ecx
mov edx, ebx
mov dword [esp + 0x34], eax
sub eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x50], eax
sub eax, edi
sub ecx, ebx
cmp ecx, edi
mov ecx, dword [esp + 0x20]
cmova edx, eax
mov eax, dword [esp + 0x50]
test esi, esi
cmovne edx, ebx
sub eax, edx
cmp ecx, eax
jbe 0x100a0cc7
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x74]
cmp ecx, eax
jbe 0x100a0cdb
mov dword [esp + 0x54], ecx
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x34]
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], eax
cmp edi, dword [esp + 0x28]
ja 0x100a14d3
nop word [eax + eax]
push dword [esp + 0x24]
push ebx
call fcn.100a3480
mov edx, dword [esp + 0x24]
add esp, 8
mov esi, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], 1
mov eax, dword [edx + eax*4]
add esi, eax
mov dword [esp + 0x48], eax
xor eax, eax
cmp eax, dword [esp + 0x74]
sbb eax, eax
neg eax
mov dword [esp + 0x58], eax
nop dword [eax + eax]
push dword [esp + 0x38]
push ebx
call fcn.100a3360
mov ecx, dword [esp + 0x44]
mov edx, ebx
sub edx, dword [esp + 0x18]
add esp, 8
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x5c], edx
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x50], ecx
add ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + eax*4], edx
mov edx, ebx
sub edx, dword [esp + 0x74]
xor ecx, ecx
mov eax, dword [edx + 1]
cmp eax, dword [ebx + 1]
sete cl
test dword [esp + 0x58], ecx
jne 0x100a1157
push dword [esp + 0x24]
push edi
call fcn.100a3480
mov edx, dword [esp + 0x34]
add esp, 8
mov ecx, eax
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x48], edx
jbe 0x100a0dc6
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x100a0dc6
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 4]
je 0x100a0e1c
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + ecx*4]
add esi, ecx
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x50], edx
jbe 0x100a0deb
mov edx, dword [esp + 0x4c]
mov eax, dword [edx]
cmp eax, dword [ebx]
je 0x100a0fba
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp edi, eax
jb 0x100a0e05
inc ecx
add eax, 0x100
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov ebx, edi
add edi, ecx
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x28]
jbe 0x100a0d40
jmp 0x100a14d3
mov edi, dword [esp + 0x64]
lea ecx, [ebx + 8]
add edi, 0xfffffffd
mov dword [esp + 0x48], ecx
lea edx, [esi + 8]
cmp ecx, edi
jae 0x100a0e64
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a0e3f
bsf ecx, eax
shr ecx, 3
jmp 0x100a0e8c
add ecx, 4
add edx, 4
cmp ecx, edi
jae 0x100a0e64
nop dword [eax]
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a0fad
add ecx, 4
add edx, 4
cmp ecx, edi
jb 0x100a0e50
mov edi, dword [esp + 0x64]
lea eax, [edi - 1]
cmp ecx, eax
jae 0x100a0e7d
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a0e7d
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x100a0e88
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a0e88
inc ecx
sub ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x70]
lea edi, [ecx + 8]
mov eax, ebx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a0ecc
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a0ecc
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a0eb0
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
cmp dword [esp + 0x30], 4
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
jae 0x100a0efa
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
sub edx, dword [esp + 0x10]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
mov eax, ebx
mov dword [esp + 0x70], edx
sub eax, esi
add ecx, 0xffffffe0
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a110e
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, 0x10
jbe 0x100a111e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x50], eax
push dword [esp + 0x50]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x60], eax
lea ecx, [eax + edx]
mov dword [esp + 0x50], ecx
call fcn.100a2e60
add esp, 8
mov dword [esp + 0x70], esi
cmp edx, 0x10
jle 0x100a111a
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, 0x10
mov ebp, dword [esp + 0x48]
add esi, 0x10
nop dword [eax + eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a0f80
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a111e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a0e88
cmp ecx, dword [esp + 0x2c]
jbe 0x100a1037
mov eax, dword [esi]
cmp eax, dword [edi]
jne 0x100a1037
mov eax, dword [esi + 4]
cmp eax, dword [edi + 4]
jne 0x100a1037
mov eax, dword [esp + 0x64]
mov ebx, edi
push eax
lea eax, [esi + 8]
push eax
lea eax, [edi + 8]
push eax
call fcn.100a2e80
mov edx, dword [esp + 0x20]
add esp, 0xc
lea edi, [eax + 8]
mov eax, edx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], edx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a0ed0
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a0ed0
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a1010
jmp 0x100a0ed0
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, ecx
cmp ecx, esi
jae 0x100a1076
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a1058
bsf ecx, eax
shr ecx, 3
jmp 0x100a109c
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a1076
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a1104
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a1062
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a108f
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a108f
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a109a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a109a
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x4c]
mov eax, ebx
sub eax, ecx
cmp dword [esp + 0x18], ecx
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a10fb
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
nop dword [eax]
lea eax, [ebx - 1]
mov dword [esp + 0x70], eax
lea ecx, [edx - 1]
mov al, byte [eax]
mov edx, ecx
cmp al, byte [ecx]
jne 0x100a10f7
mov ebx, dword [esp + 0x70]
inc edi
cmp ebp, edx
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a10d0
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
jmp 0x100a0ed4
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a109a
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
add esp, 0x10
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a113f
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x34]
add ecx, 3
mov dword [eax], ecx
jmp 0x100a12bf
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 5]
add esi, 0xfffffffd
add edx, 5
mov edi, ecx
cmp ecx, esi
jae 0x100a1196
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a1178
bsf ecx, eax
shr ecx, 3
jmp 0x100a11bc
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a1196
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a126a
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a1182
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a11af
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a11af
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a11ba
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a11ba
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
inc ebx
mov dword [esp + 0x70], edx
mov eax, ebx
add ecx, 0xffffffe0
sub eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a127b
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, 0x10
jbe 0x100a128e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x50], eax
push dword [esp + 0x50]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x60], eax
lea ecx, [eax + edx]
mov dword [esp + 0x50], ecx
call fcn.100a2e60
add esp, 8
cmp edx, 0x10
jle 0x100a1277
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, 0x10
mov ebp, dword [esp + 0x48]
add esi, 0x10
nop dword [eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a1240
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a128e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a11ba
mov edx, esi
jmp 0x100a128e
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
mov edx, dword [esp + 0x80]
add esp, 0x10
mov ecx, dword [esp + 0x4c]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a12af
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov dword [eax], 1
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x100a12dd
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 6], cx
add dword [ebp + 4], 8
add ebx, edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x70], ebx
cmp ebx, dword [esp + 0x28]
ja 0x100a14b8
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x10]
add ebx, 2
push dword [esp + 0x24]
add edi, ebx
push edi
call fcn.100a3480
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
push dword [esp + 0x2c]
mov dword [ecx + eax*4], ebx
lea eax, [esi - 2]
push eax
call fcn.100a3480
sub esi, dword [esp + 0x20]
mov ecx, eax
mov edx, dword [esp + 0x2c]
push dword [esp + 0x48]
lea eax, [esi - 2]
push edi
mov dword [edx + ecx*4], eax
call fcn.100a3360
mov edi, dword [esp + 0x54]
push dword [esp + 0x50]
mov dword [edi + eax*4], ebx
mov ebx, dword [esp + 0x50]
lea eax, [ebx - 1]
push eax
call fcn.100a3360
mov ecx, eax
add esp, 0x20
lea eax, [esi - 1]
mov esi, dword [esp + 0x64]
mov dword [edi + ecx*4], eax
lea eax, [esi - 0x20]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx]
mov edx, ebx
sub edx, dword [esp + 0x20]
xor ecx, ecx
cmp eax, dword [edx]
sete cl
xor eax, eax
cmp eax, dword [esp + 0x20]
sbb eax, eax
neg eax
test eax, ecx
je 0x100a14b8
lea eax, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, eax
cmp eax, esi
jae 0x100a13d4
mov ecx, dword [eax]
xor ecx, dword [edx]
je 0x100a13b1
bsf ecx, ecx
shr ecx, 3
jmp 0x100a13fc
add eax, 4
add edx, 4
cmp eax, esi
jae 0x100a13d4
nop dword [eax + eax]
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x100a1451
add eax, 4
add edx, 4
cmp eax, esi
jb 0x100a13c0
mov esi, dword [esp + 0x64]
lea ecx, [esi - 1]
cmp eax, ecx
jae 0x100a13ed
mov cx, word [edx]
cmp cx, word [eax]
jne 0x100a13ed
add eax, 2
add edx, 2
cmp eax, esi
jae 0x100a13f8
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x100a13f8
inc eax
mov ecx, eax
sub ecx, edi
push dword [esp + 0x38]
mov eax, dword [esp + 0x24]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x78]
push ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x7c], eax
call fcn.100a3360
mov ecx, dword [esp + 0x44]
mov esi, ebx
push dword [esp + 0x2c]
sub esi, dword [esp + 0x1c]
push ebx
mov dword [ecx + eax*4], esi
call fcn.100a3480
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [ecx + eax*4], esi
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 0xc]
cmp ebx, ecx
ja 0x100a145d
push ebx
push eax
call fcn.100a2e60
add esp, 8
jmp 0x100a1469
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x100a13fc
push ecx
push ebx
push ebx
push eax
call fcn.100a34a0
add esp, 0x10
mov eax, dword [ebp + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [edi - 3]
mov eax, dword [ebp + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x100a1499
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
add ebx, edi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x70], ebx
mov word [eax + 6], cx
add dword [ebp + 4], 8
cmp ebx, dword [esp + 0x28]
jbe 0x100a1373
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], eax
cmp edi, dword [esp + 0x28]
jbe 0x100a0d00
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x74]
test edx, edx
je 0x100a14e8
test eax, eax
cmovne ecx, edx
mov esi, dword [esp + 0x6c]
test eax, eax
pop edi
cmovne edx, eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esi], edx
cmovne ecx, eax
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x6c]
mov dword [esi + 4], ecx
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
sub esp, 0x50
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
push ebx
mov ebx, dword [esp + 0x64]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 4]
sub ebx, ecx
add ebx, edx
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0xb8]
push ebp
push esi
mov esi, dword [eax + 0x18]
push edi
mov dword [esp + 0x2c], ebx
mov edi, 1
mov ebx, dword [eax + 0xc]
shl edi, cl
mov ecx, dword [esp + 0x2c]
mov eax, ecx
sub eax, ebx
sub ecx, edi
cmp eax, edi
mov eax, dword [esp + 0x10]
cmovbe ecx, ebx
test esi, esi
cmovne ecx, ebx
add eax, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
add eax, 0xfffffff8
mov dword [esp + 0x28], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x54], eax
sete al
mov dword [esp + 0x44], edx
add eax, ecx
mov edx, ebx
mov dword [esp + 0x34], eax
sub eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x50], eax
sub eax, edi
sub ecx, ebx
cmp ecx, edi
mov ecx, dword [esp + 0x20]
cmova edx, eax
mov eax, dword [esp + 0x50]
test esi, esi
cmovne edx, ebx
sub eax, edx
cmp ecx, eax
jbe 0x100a1847
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x74]
cmp ecx, eax
jbe 0x100a185b
mov dword [esp + 0x54], ecx
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x34]
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], eax
cmp edi, dword [esp + 0x28]
ja 0x100a2053
nop word [eax + eax]
push dword [esp + 0x24]
push ebx
call fcn.100a3480
mov edx, dword [esp + 0x24]
add esp, 8
mov esi, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], 1
mov eax, dword [edx + eax*4]
add esi, eax
mov dword [esp + 0x48], eax
xor eax, eax
cmp eax, dword [esp + 0x74]
sbb eax, eax
neg eax
mov dword [esp + 0x58], eax
nop dword [eax + eax]
push dword [esp + 0x38]
push ebx
call fcn.100a33c0
mov ecx, dword [esp + 0x44]
mov edx, ebx
sub edx, dword [esp + 0x18]
add esp, 8
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x5c], edx
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x50], ecx
add ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + eax*4], edx
mov edx, ebx
sub edx, dword [esp + 0x74]
xor ecx, ecx
mov eax, dword [edx + 1]
cmp eax, dword [ebx + 1]
sete cl
test dword [esp + 0x58], ecx
jne 0x100a1cd7
push dword [esp + 0x24]
push edi
call fcn.100a3480
mov edx, dword [esp + 0x34]
add esp, 8
mov ecx, eax
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x48], edx
jbe 0x100a1946
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x100a1946
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 4]
je 0x100a199c
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + ecx*4]
add esi, ecx
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x50], edx
jbe 0x100a196b
mov edx, dword [esp + 0x4c]
mov eax, dword [edx]
cmp eax, dword [ebx]
je 0x100a1b3a
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp edi, eax
jb 0x100a1985
inc ecx
add eax, 0x100
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov ebx, edi
add edi, ecx
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x28]
jbe 0x100a18c0
jmp 0x100a2053
mov edi, dword [esp + 0x64]
lea ecx, [ebx + 8]
add edi, 0xfffffffd
mov dword [esp + 0x48], ecx
lea edx, [esi + 8]
cmp ecx, edi
jae 0x100a19e4
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a19bf
bsf ecx, eax
shr ecx, 3
jmp 0x100a1a0c
add ecx, 4
add edx, 4
cmp ecx, edi
jae 0x100a19e4
nop dword [eax]
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a1b2d
add ecx, 4
add edx, 4
cmp ecx, edi
jb 0x100a19d0
mov edi, dword [esp + 0x64]
lea eax, [edi - 1]
cmp ecx, eax
jae 0x100a19fd
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a19fd
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x100a1a08
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a1a08
inc ecx
sub ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x70]
lea edi, [ecx + 8]
mov eax, ebx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a1a4c
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a1a4c
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a1a30
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
cmp dword [esp + 0x30], 4
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
jae 0x100a1a7a
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
sub edx, dword [esp + 0x10]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
mov eax, ebx
mov dword [esp + 0x70], edx
sub eax, esi
add ecx, 0xffffffe0
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a1c8e
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, 0x10
jbe 0x100a1c9e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x50], eax
push dword [esp + 0x50]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x60], eax
lea ecx, [eax + edx]
mov dword [esp + 0x50], ecx
call fcn.100a2e60
add esp, 8
mov dword [esp + 0x70], esi
cmp edx, 0x10
jle 0x100a1c9a
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, 0x10
mov ebp, dword [esp + 0x48]
add esi, 0x10
nop dword [eax + eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a1b00
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a1c9e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a1a08
cmp ecx, dword [esp + 0x2c]
jbe 0x100a1bb7
mov eax, dword [esi]
cmp eax, dword [edi]
jne 0x100a1bb7
mov eax, dword [esi + 4]
cmp eax, dword [edi + 4]
jne 0x100a1bb7
mov eax, dword [esp + 0x64]
mov ebx, edi
push eax
lea eax, [esi + 8]
push eax
lea eax, [edi + 8]
push eax
call fcn.100a2e80
mov edx, dword [esp + 0x20]
add esp, 0xc
lea edi, [eax + 8]
mov eax, edx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], edx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a1a50
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a1a50
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a1b90
jmp 0x100a1a50
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, ecx
cmp ecx, esi
jae 0x100a1bf6
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a1bd8
bsf ecx, eax
shr ecx, 3
jmp 0x100a1c1c
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a1bf6
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a1c84
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a1be2
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a1c0f
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a1c0f
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a1c1a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a1c1a
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x4c]
mov eax, ebx
sub eax, ecx
cmp dword [esp + 0x18], ecx
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a1c7b
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
nop dword [eax]
lea eax, [ebx - 1]
mov dword [esp + 0x70], eax
lea ecx, [edx - 1]
mov al, byte [eax]
mov edx, ecx
cmp al, byte [ecx]
jne 0x100a1c77
mov ebx, dword [esp + 0x70]
inc edi
cmp ebp, edx
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a1c50
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
jmp 0x100a1a54
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a1c1a
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
add esp, 0x10
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a1cbf
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x34]
add ecx, 3
mov dword [eax], ecx
jmp 0x100a1e3f
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 5]
add esi, 0xfffffffd
add edx, 5
mov edi, ecx
cmp ecx, esi
jae 0x100a1d16
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a1cf8
bsf ecx, eax
shr ecx, 3
jmp 0x100a1d3c
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a1d16
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a1dea
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a1d02
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a1d2f
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a1d2f
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a1d3a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a1d3a
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
inc ebx
mov dword [esp + 0x70], edx
mov eax, ebx
add ecx, 0xffffffe0
sub eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a1dfb
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, 0x10
jbe 0x100a1e0e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x50], eax
push dword [esp + 0x50]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x60], eax
lea ecx, [eax + edx]
mov dword [esp + 0x50], ecx
call fcn.100a2e60
add esp, 8
cmp edx, 0x10
jle 0x100a1df7
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, 0x10
mov ebp, dword [esp + 0x48]
add esi, 0x10
nop dword [eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a1dc0
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a1e0e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a1d3a
mov edx, esi
jmp 0x100a1e0e
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
mov edx, dword [esp + 0x80]
add esp, 0x10
mov ecx, dword [esp + 0x4c]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a1e2f
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov dword [eax], 1
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x100a1e5d
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 6], cx
add dword [ebp + 4], 8
add ebx, edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x70], ebx
cmp ebx, dword [esp + 0x28]
ja 0x100a2038
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x10]
add ebx, 2
push dword [esp + 0x24]
add edi, ebx
push edi
call fcn.100a3480
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
push dword [esp + 0x2c]
mov dword [ecx + eax*4], ebx
lea eax, [esi - 2]
push eax
call fcn.100a3480
sub esi, dword [esp + 0x20]
mov ecx, eax
mov edx, dword [esp + 0x2c]
push dword [esp + 0x48]
lea eax, [esi - 2]
push edi
mov dword [edx + ecx*4], eax
call fcn.100a33c0
mov edi, dword [esp + 0x54]
push dword [esp + 0x50]
mov dword [edi + eax*4], ebx
mov ebx, dword [esp + 0x50]
lea eax, [ebx - 1]
push eax
call fcn.100a33c0
mov ecx, eax
add esp, 0x20
lea eax, [esi - 1]
mov esi, dword [esp + 0x64]
mov dword [edi + ecx*4], eax
lea eax, [esi - 0x20]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx]
mov edx, ebx
sub edx, dword [esp + 0x20]
xor ecx, ecx
cmp eax, dword [edx]
sete cl
xor eax, eax
cmp eax, dword [esp + 0x20]
sbb eax, eax
neg eax
test eax, ecx
je 0x100a2038
lea eax, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, eax
cmp eax, esi
jae 0x100a1f54
mov ecx, dword [eax]
xor ecx, dword [edx]
je 0x100a1f31
bsf ecx, ecx
shr ecx, 3
jmp 0x100a1f7c
add eax, 4
add edx, 4
cmp eax, esi
jae 0x100a1f54
nop dword [eax + eax]
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x100a1fd1
add eax, 4
add edx, 4
cmp eax, esi
jb 0x100a1f40
mov esi, dword [esp + 0x64]
lea ecx, [esi - 1]
cmp eax, ecx
jae 0x100a1f6d
mov cx, word [edx]
cmp cx, word [eax]
jne 0x100a1f6d
add eax, 2
add edx, 2
cmp eax, esi
jae 0x100a1f78
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x100a1f78
inc eax
mov ecx, eax
sub ecx, edi
push dword [esp + 0x38]
mov eax, dword [esp + 0x24]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x78]
push ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x7c], eax
call fcn.100a33c0
mov ecx, dword [esp + 0x44]
mov esi, ebx
push dword [esp + 0x2c]
sub esi, dword [esp + 0x1c]
push ebx
mov dword [ecx + eax*4], esi
call fcn.100a3480
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [ecx + eax*4], esi
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 0xc]
cmp ebx, ecx
ja 0x100a1fdd
push ebx
push eax
call fcn.100a2e60
add esp, 8
jmp 0x100a1fe9
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x100a1f7c
push ecx
push ebx
push ebx
push eax
call fcn.100a34a0
add esp, 0x10
mov eax, dword [ebp + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [edi - 3]
mov eax, dword [ebp + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x100a2019
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
add ebx, edi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x70], ebx
mov word [eax + 6], cx
add dword [ebp + 4], 8
cmp ebx, dword [esp + 0x28]
jbe 0x100a1ef3
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], eax
cmp edi, dword [esp + 0x28]
jbe 0x100a1880
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x74]
test edx, edx
je 0x100a2068
test eax, eax
cmovne ecx, edx
mov esi, dword [esp + 0x6c]
test eax, eax
pop edi
cmovne edx, eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esi], edx
cmovne ecx, eax
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x6c]
mov dword [esi + 4], ecx
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
sub esp, 0x50
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x64]
push ebx
mov ebx, dword [esp + 0x64]
mov ecx, dword [eax + 0x5c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0xc0]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x64]
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0xbc]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 4]
sub ebx, ecx
add ebx, edx
mov dword [esp + 4], ecx
mov ecx, dword [eax + 0xb8]
push ebp
push esi
mov esi, dword [eax + 0x18]
push edi
mov dword [esp + 0x2c], ebx
mov edi, 1
mov ebx, dword [eax + 0xc]
shl edi, cl
mov ecx, dword [esp + 0x2c]
mov eax, ecx
sub eax, ebx
sub ecx, edi
cmp eax, edi
mov eax, dword [esp + 0x10]
cmovbe ecx, ebx
test esi, esi
cmovne ecx, ebx
add eax, ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x18], eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
add eax, 0xfffffff8
mov dword [esp + 0x28], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x20], edx
xor edx, edx
cmp ecx, dword [esp + 0x18]
mov dword [esp + 0x54], eax
sete al
mov dword [esp + 0x44], edx
add eax, ecx
mov edx, ebx
mov dword [esp + 0x34], eax
sub eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0x50], eax
sub eax, edi
sub ecx, ebx
cmp ecx, edi
mov ecx, dword [esp + 0x20]
cmova edx, eax
mov eax, dword [esp + 0x50]
test esi, esi
cmovne edx, ebx
sub eax, edx
cmp ecx, eax
jbe 0x100a23c7
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x74]
cmp ecx, eax
jbe 0x100a23db
mov dword [esp + 0x54], ecx
mov dword [esp + 0x74], 0
mov ebx, dword [esp + 0x34]
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], eax
cmp edi, dword [esp + 0x28]
ja 0x100a2bd3
nop word [eax + eax]
push dword [esp + 0x24]
push ebx
call fcn.100a3480
mov edx, dword [esp + 0x24]
add esp, 8
mov esi, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], 1
mov eax, dword [edx + eax*4]
add esi, eax
mov dword [esp + 0x48], eax
xor eax, eax
cmp eax, dword [esp + 0x74]
sbb eax, eax
neg eax
mov dword [esp + 0x58], eax
nop dword [eax + eax]
push dword [esp + 0x38]
push ebx
call fcn.100a3420
mov ecx, dword [esp + 0x44]
mov edx, ebx
sub edx, dword [esp + 0x18]
add esp, 8
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x5c], edx
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x50], ecx
add ecx, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
mov dword [ecx + eax*4], edx
mov edx, ebx
sub edx, dword [esp + 0x74]
xor ecx, ecx
mov eax, dword [edx + 1]
cmp eax, dword [ebx + 1]
sete cl
test dword [esp + 0x58], ecx
jne 0x100a2857
push dword [esp + 0x24]
push edi
call fcn.100a3480
mov edx, dword [esp + 0x34]
add esp, 8
mov ecx, eax
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x48], edx
jbe 0x100a24c6
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x100a24c6
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 4]
je 0x100a251c
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + ecx*4]
add esi, ecx
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x50], edx
jbe 0x100a24eb
mov edx, dword [esp + 0x4c]
mov eax, dword [edx]
cmp eax, dword [ebx]
je 0x100a26ba
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
cmp edi, eax
jb 0x100a2505
inc ecx
add eax, 0x100
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov ebx, edi
add edi, ecx
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x28]
jbe 0x100a2440
jmp 0x100a2bd3
mov edi, dword [esp + 0x64]
lea ecx, [ebx + 8]
add edi, 0xfffffffd
mov dword [esp + 0x48], ecx
lea edx, [esi + 8]
cmp ecx, edi
jae 0x100a2564
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a253f
bsf ecx, eax
shr ecx, 3
jmp 0x100a258c
add ecx, 4
add edx, 4
cmp ecx, edi
jae 0x100a2564
nop dword [eax]
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a26ad
add ecx, 4
add edx, 4
cmp ecx, edi
jb 0x100a2550
mov edi, dword [esp + 0x64]
lea eax, [edi - 1]
cmp ecx, eax
jae 0x100a257d
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a257d
add ecx, 2
add edx, 2
cmp ecx, edi
jae 0x100a2588
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a2588
inc ecx
sub ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x70]
lea edi, [ecx + 8]
mov eax, ebx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a25cc
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a25cc
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a25b0
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x70]
cmp dword [esp + 0x30], 4
mov eax, dword [esp + 0x74]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x74], eax
jae 0x100a25fa
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x1c]
sub edx, dword [esp + 0x10]
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
mov eax, ebx
mov dword [esp + 0x70], edx
sub eax, esi
add ecx, 0xffffffe0
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a280e
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, 0x10
jbe 0x100a281e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x50], eax
push dword [esp + 0x50]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x60], eax
lea ecx, [eax + edx]
mov dword [esp + 0x50], ecx
call fcn.100a2e60
add esp, 8
mov dword [esp + 0x70], esi
cmp edx, 0x10
jle 0x100a281a
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, 0x10
mov ebp, dword [esp + 0x48]
add esi, 0x10
nop dword [eax + eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a2680
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a281e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a2588
cmp ecx, dword [esp + 0x2c]
jbe 0x100a2737
mov eax, dword [esi]
cmp eax, dword [edi]
jne 0x100a2737
mov eax, dword [esi + 4]
cmp eax, dword [edi + 4]
jne 0x100a2737
mov eax, dword [esp + 0x64]
mov ebx, edi
push eax
lea eax, [esi + 8]
push eax
lea eax, [edi + 8]
push eax
call fcn.100a2e80
mov edx, dword [esp + 0x20]
add esp, 0xc
lea edi, [eax + 8]
mov eax, edx
sub eax, esi
cmp dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], edx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a25d0
nop dword [eax]
mov al, byte [ebx - 1]
dec esi
cmp al, byte [esi]
jne 0x100a25d0
dec ebx
inc edi
cmp dword [esp + 0x18], esi
sbb ecx, ecx
neg ecx
cmp dword [esp + 0x70], ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a2710
jmp 0x100a25d0
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, ecx
cmp ecx, esi
jae 0x100a2776
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a2758
bsf ecx, eax
shr ecx, 3
jmp 0x100a279c
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a2776
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a2804
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a2762
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a278f
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a278f
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a279a
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a279a
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x4c]
mov eax, ebx
sub eax, ecx
cmp dword [esp + 0x18], ecx
mov dword [esp + 0x34], eax
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100a27fb
mov edx, dword [esp + 0x50]
add edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
nop dword [eax]
lea eax, [ebx - 1]
mov dword [esp + 0x70], eax
lea ecx, [edx - 1]
mov al, byte [eax]
mov edx, ecx
cmp al, byte [ecx]
jne 0x100a27f7
mov ebx, dword [esp + 0x70]
inc edi
cmp ebp, edx
sbb ecx, ecx
neg ecx
cmp esi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x100a27d0
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x14]
jmp 0x100a25d4
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a279a
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
add esp, 0x10
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x4c]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a283f
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov ecx, dword [esp + 0x34]
add ecx, 3
mov dword [eax], ecx
jmp 0x100a29bf
mov esi, dword [esp + 0x64]
lea ecx, [ebx + 5]
add esi, 0xfffffffd
add edx, 5
mov edi, ecx
cmp ecx, esi
jae 0x100a2896
mov eax, dword [ecx]
xor eax, dword [edx]
je 0x100a2878
bsf ecx, eax
shr ecx, 3
jmp 0x100a28bc
add ecx, 4
add edx, 4
cmp ecx, esi
jae 0x100a2896
mov eax, dword [ecx]
xor eax, dword [edx]
jne 0x100a296a
add ecx, 4
add edx, 4
cmp ecx, esi
jb 0x100a2882
mov esi, dword [esp + 0x64]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x100a28af
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x100a28af
add ecx, 2
add edx, 2
cmp ecx, esi
jae 0x100a28ba
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x100a28ba
inc ecx
sub ecx, edi
mov esi, dword [esp + 0x70]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x64]
lea edx, [ebp + 0xc]
inc ebx
mov dword [esp + 0x70], edx
mov eax, ebx
add ecx, 0xffffffe0
sub eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [edx]
cmp ebx, ecx
ja 0x100a297b
push esi
push eax
call fcn.100a2e60
mov eax, dword [esp + 0x54]
add esp, 8
cmp eax, 0x10
jbe 0x100a298e
lea edx, [eax - 0x10]
lea eax, [esi + 0x10]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x50], eax
push dword [esp + 0x50]
mov eax, dword [esi]
add eax, 0x10
push eax
mov dword [esp + 0x60], eax
lea ecx, [eax + edx]
mov dword [esp + 0x50], ecx
call fcn.100a2e60
add esp, 8
cmp edx, 0x10
jle 0x100a2977
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
add edx, 0x10
mov ebp, dword [esp + 0x48]
add esi, 0x10
nop dword [eax]
push esi
push edx
call fcn.100a2e60
add esi, 0x10
add edx, 0x10
push esi
push edx
call fcn.100a2e60
add edx, 0x10
add esp, 0x10
add esi, 0x10
cmp edx, ebp
jb 0x100a2940
mov ebp, dword [esp + 0x68]
lea edx, [ebp + 0xc]
jmp 0x100a298e
bsf eax, eax
shr eax, 3
add ecx, eax
jmp 0x100a28ba
mov edx, esi
jmp 0x100a298e
push ecx
push ebx
push esi
push eax
call fcn.100a34a0
mov edx, dword [esp + 0x80]
add esp, 0x10
mov ecx, dword [esp + 0x4c]
add dword [edx], ecx
cmp ecx, 0xffff
jbe 0x100a29af
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 4], cx
mov eax, dword [ebp + 4]
mov dword [eax], 1
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x100a29dd
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
mov word [eax + 6], cx
add dword [ebp + 4], 8
add ebx, edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x70], ebx
cmp ebx, dword [esp + 0x28]
ja 0x100a2bb8
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x10]
add ebx, 2
push dword [esp + 0x24]
add edi, ebx
push edi
call fcn.100a3480
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
push dword [esp + 0x2c]
mov dword [ecx + eax*4], ebx
lea eax, [esi - 2]
push eax
call fcn.100a3480
sub esi, dword [esp + 0x20]
mov ecx, eax
mov edx, dword [esp + 0x2c]
push dword [esp + 0x48]
lea eax, [esi - 2]
push edi
mov dword [edx + ecx*4], eax
call fcn.100a3420
mov edi, dword [esp + 0x54]
push dword [esp + 0x50]
mov dword [edi + eax*4], ebx
mov ebx, dword [esp + 0x50]
lea eax, [ebx - 1]
push eax
call fcn.100a3420
mov ecx, eax
add esp, 0x20
lea eax, [esi - 1]
mov esi, dword [esp + 0x64]
mov dword [edi + ecx*4], eax
lea eax, [esi - 0x20]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx]
mov edx, ebx
sub edx, dword [esp + 0x20]
xor ecx, ecx
cmp eax, dword [edx]
sete cl
xor eax, eax
cmp eax, dword [esp + 0x20]
sbb eax, eax
neg eax
test eax, ecx
je 0x100a2bb8
lea eax, [ebx + 4]
add esi, 0xfffffffd
add edx, 4
mov edi, eax
cmp eax, esi
jae 0x100a2ad4
mov ecx, dword [eax]
xor ecx, dword [edx]
je 0x100a2ab1
bsf ecx, ecx
shr ecx, 3
jmp 0x100a2afc
add eax, 4
add edx, 4
cmp eax, esi
jae 0x100a2ad4
nop dword [eax + eax]
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x100a2b51
add eax, 4
add edx, 4
cmp eax, esi
jb 0x100a2ac0
mov esi, dword [esp + 0x64]
lea ecx, [esi - 1]
cmp eax, ecx
jae 0x100a2aed
mov cx, word [edx]
cmp cx, word [eax]
jne 0x100a2aed
add eax, 2
add edx, 2
cmp eax, esi
jae 0x100a2af8
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x100a2af8
inc eax
mov ecx, eax
sub ecx, edi
push dword [esp + 0x38]
mov eax, dword [esp + 0x24]
lea edi, [ecx + 4]
mov ecx, dword [esp + 0x78]
push ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x7c], eax
call fcn.100a3420
mov ecx, dword [esp + 0x44]
mov esi, ebx
push dword [esp + 0x2c]
sub esi, dword [esp + 0x1c]
push ebx
mov dword [ecx + eax*4], esi
call fcn.100a3480
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [ecx + eax*4], esi
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 0xc]
cmp ebx, ecx
ja 0x100a2b5d
push ebx
push eax
call fcn.100a2e60
add esp, 8
jmp 0x100a2b69
bsf ecx, ecx
shr ecx, 3
sub ecx, edi
add ecx, eax
jmp 0x100a2afc
push ecx
push ebx
push ebx
push eax
call fcn.100a34a0
add esp, 0x10
mov eax, dword [ebp + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [edi - 3]
mov eax, dword [ebp + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x100a2b99
mov eax, dword [ebp + 4]
sub eax, dword [ebp]
sar eax, 3
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x28], eax
mov eax, dword [ebp + 4]
add ebx, edi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x70], ebx
mov word [eax + 6], cx
add dword [ebp + 4], 8
cmp ebx, dword [esp + 0x28]
jbe 0x100a2a73
lea edi, [ebx + 1]
lea eax, [ebx + 0x100]
mov dword [esp + 0x14], edi
mov dword [esp + 0x34], eax
cmp edi, dword [esp + 0x28]
jbe 0x100a2400
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x74]
test edx, edx
je 0x100a2be8
test eax, eax
cmovne ecx, edx
mov esi, dword [esp + 0x6c]
test eax, eax
pop edi
cmovne edx, eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esi], edx
cmovne ecx, eax
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x6c]
mov dword [esi + 4], ecx
pop esi
pop ebp
pop ebx
add esp, 0x50
ret