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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe4
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ecx + 0xc]
lea edx, [ecx + 0x70]
add esi, dword [ecx + 4]
push edi
mov edi, dword [ebp + 0x18]
push dword [ebp + 0x1c]
mov dword [esp + 0x30], eax
push ecx
lea ebx, [eax + edi]
lea eax, [ebx - 8]
mov dword [esp + 0x44], ebx
mov dword [esp + 0xa8], eax
call fcn.100df2e0
mov dword [esp + 0x94], eax
mov ecx, 0xfff
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
movaps xmmword [esp + 0xc8], xmm0
movups xmmword [esp + 0xac], xmm0
push edi
mov eax, dword [eax + 0xcc]
cmp eax, ecx
push 0
cmovb ecx, eax
mov dword [esp + 0xac], 0
xor eax, eax
mov dword [esp + 0xa4], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
cmp dword [ecx + 0xc8], 3
setne al
add eax, 3
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x98], eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0xd4]
test eax, eax
mov ecx, 0x1028b2dc
cmovne ecx, eax
mov eax, dword [ecx + 0x10]
movups xmm0, xmmword [ecx]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0xe0]
push eax
movups xmmword [esp + 0xe4], xmm0
call fcn.100de8b0
push 2
push edi
mov edi, dword [ebp + 8]
push dword [ebp + 0x14]
add edi, 0x70
push edi
call fcn.100dea80
xor ecx, ecx
lea eax, [ebx - 8]
add esp, 0x24
cmp dword [ebp + 0x14], esi
sete cl
add ecx, dword [ebp + 0x14]
mov dword [esp + 0x28], ecx
cmp ecx, eax
jae 0x100dd9b9
push dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
mov ebx, ecx
sub ebx, dword [esp + 0x30]
mov eax, 0
mov dword [esp + 0x58], ebx
sete al
push eax
push dword [ebp + 0x10]
lea eax, [esp + 0x94]
push dword [esp + 0x48]
push ecx
push eax
push dword [ebp + 8]
push esi
call dword [esp + 0xac]
mov edx, dword [esp + 0x48]
sub edx, dword [ebp + 0x14]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x48]
push eax
push edx
lea eax, [esp + 0x4c]
mov dword [esp + 0xb8], edx
push eax
lea eax, [esp + 0xfc]
push esi
push eax
call fcn.100de7b0
mov esi, dword [esp + 0x58]
add esp, 0x34
test esi, esi
jne 0x100dcfef
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
jmp 0x100dd9a8
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x18]
push 2
push edi
mov eax, dword [edx]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 4]
mov dword [ecx + 0x14], eax
mov eax, dword [edx + 8]
mov dword [ecx + 0x18], eax
mov dword [ecx + 8], 0
add ecx, 0xc
push ebx
mov dword [esp + 0x44], ecx
mov dword [ecx], ebx
call fcn.100de660
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov dword [edx], eax
mov eax, dword [ecx + esi*8 - 4]
mov ecx, dword [ecx + esi*8 - 8]
cmp eax, dword [esp + 0x94]
jbe 0x100dd060
movaps xmm1, xmmword [esp + 0xc0]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xa8], ecx
jmp 0x100dd6d9
push 2
push edi
push 0
call fcn.100de660
mov ebx, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x4c]
add eax, dword [ebx]
mov dword [esp + 0x48], eax
lea ecx, [edx - 1]
lea eax, [ebx + 0x1c]
mov dword [eax], 0x40000000
lea eax, [eax + 0x1c]
sub ecx, 1
jne 0x100dd081
xor eax, eax
mov ecx, edx
mov dword [esp + 0x40], eax
test esi, esi
je 0x100dd1e2
mov edi, dword [esp + 0x30]
mov dword [esp + 0x44], ecx
nop word [eax + eax]
mov edx, dword [edi + eax*8]
mov eax, dword [edi + eax*8 + 4]
mov dword [esp + 0x58], edx
mov dword [esp + 0x50], eax
cmp ecx, eax
ja 0x100dd1d1
lea eax, [ecx*8]
sub eax, ecx
lea esi, [ecx - 2]
mov dword [esp + 0x1c], esi
lea ebx, [ebx + eax*4]
add ebx, 4
nop dword [eax]
mov ecx, dword [ebp + 8]
bsr edi, edx
cmp dword [ecx + 0xa8], 1
jne 0x100dd10d
bsr ecx, esi
mov eax, esi
mov edx, ecx
shl eax, 8
shr eax, cl
lea ecx, [edi + 0x10]
shl ecx, 8
shl edx, 8
add ecx, eax
add ecx, edx
jmp 0x100dd191
mov eax, dword [ecx + 0x7c]
mov esi, dword [ebp + 8]
mov edx, dword [eax + edi*4]
inc edx
shl edi, 8
add edi, dword [esi + 0xa4]
mov esi, dword [esp + 0x1c]
bsr ecx, edx
shl edx, 8
shr edx, cl
mov eax, ecx
shl eax, 8
sub edi, edx
sub edi, eax
lea eax, [esi - 1]
cmp eax, 0x7f
jbe 0x100dd145
bsr ecx, eax
add ecx, 0x24
jmp 0x100dd14c
movzx ecx, byte [esi + 0x1028b32f]
mov edx, dword [ebp + 8]
mov dword [esp + 0x20], ecx
mov eax, dword [edx + 0x78]
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x20]
inc esi
bsr ecx, esi
shl esi, 8
mov edx, ecx
shr esi, cl
movzx ecx, byte [eax + 0x1028b2a4]
shl edx, 8
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 8]
shl ecx, 8
add ecx, dword [edx + 0xa0]
sub ecx, esi
mov esi, dword [esp + 0x1c]
sub ecx, dword [esp + 0x34]
add ecx, 0x33
add ecx, edi
mov eax, dword [esp + 0x48]
inc esi
mov edx, dword [esp + 0x58]
add eax, ecx
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x54]
mov dword [ebx + 4], ecx
inc ecx
mov dword [ebx], edx
mov dword [ebx + 8], edi
mov dword [ebx - 4], eax
add ebx, 0x1c
mov dword [esp + 0x44], ecx
mov dword [esp + 0x1c], esi
cmp ecx, dword [esp + 0x50]
jbe 0x100dd0e0
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
inc eax
mov dword [esp + 0x40], eax
cmp eax, esi
jb 0x100dd0b0
lea edi, [ecx - 1]
mov dword [esp + 0x24], 1
mov dword [esp + 0x1c], edi
cmp edi, 1
jb 0x100dd647
mov eax, dword [esp + 0x38]
nop
cmp dword [eax - 4], 0
jne 0x100dd20b
mov ebx, dword [eax]
inc ebx
jmp 0x100dd210
mov ebx, 1
mov esi, dword [ebp + 8]
lea eax, [ebx - 1]
push 2
add esi, 0x70
push esi
push eax
call fcn.100de660
mov ecx, dword [esp + 0x44]
push 2
push esi
push 1
mov edi, dword [ecx - 0xc]
mov ecx, dword [ebp + 0x14]
sub edi, eax
mov eax, dword [esp + 0xa8]
dec ecx
add eax, ecx
add eax, dword [esp + 0x3c]
push eax
call fcn.100de9c0
push 2
lea esi, [edi + eax]
mov eax, dword [ebp + 8]
add eax, 0x70
push eax
push ebx
call fcn.100de660
mov edx, dword [esp + 0x60]
add eax, esi
add esp, 0x28
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x20], ecx
cmp eax, ecx
jg 0x100dd285
mov dword [edx + 0x18], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x1c], ebx
mov dword [esp + 0x20], eax
mov dword [edx + 0x10], eax
mov edi, dword [edx + 0x18]
test edi, edi
je 0x100dd31c
mov ecx, dword [esp + 0x24]
xor ebx, ebx
sub ecx, edi
cmp dword [edx + 0x1c], ebx
mov edx, dword [edx + 0x14]
sete bl
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [esp + 0x18]
movq xmm0, qword [ecx + eax*4 + 0x10]
mov ecx, dword [ecx + eax*4 + 0x18]
movq qword [esp + 0x68], xmm0
mov dword [esp + 0x70], ecx
cmp edx, 3
jbe 0x100dd2dc
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x6c], eax
lea eax, [edx - 3]
mov dword [esp + 0x68], eax
jmp 0x100dd306
lea eax, [edx - 1]
add eax, ebx
je 0x100dd306
mov esi, dword [esp + 0x68]
cmp eax, 3
jne 0x100dd2f1
lea edx, [esi - 1]
jmp 0x100dd2fa
mov edx, dword [esp + eax*4 + 0x68]
cmp eax, 2
jb 0x100dd2fe
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x38]
movq xmm0, qword [esp + 0x68]
lea esi, [edx + 0x20]
movq qword [esi], xmm0
mov dword [esi + 8], ecx
jmp 0x100dd32e
movq xmm0, qword [edx + 4]
lea esi, [edx + 0x20]
mov eax, dword [edx + 0xc]
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
add eax, ebx
cmp eax, dword [esp + 0xa0]
ja 0x100dd5d6
cmp ebx, dword [esp + 0x1c]
je 0x100dd643
xor ebx, ebx
test edi, edi
setne bl
test edi, edi
jne 0x100dd35f
mov edi, dword [edx + 0x1c]
jmp 0x100dd361
xor edi, edi
mov eax, dword [ebp + 8]
push 2
add eax, 0x70
mov dword [esp + 0x9c], edi
push eax
push 0
call fcn.100de660
push dword [esp + 0x58]
add eax, dword [esp + 0x30]
push ebx
mov ebx, dword [esp + 0x38]
push esi
push dword [esp + 0x54]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x7c], eax
add esi, ebx
push esi
lea eax, [esp + 0xa8]
push eax
push dword [ebp + 8]
push dword [esp + 0x58]
call dword [esp + 0xb8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x68]
sub eax, esi
push eax
mov eax, dword [esp + 0xc0]
add eax, ebx
push eax
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x68]
lea eax, [esp + 0x10c]
push eax
call fcn.100de7b0
mov esi, dword [esp + 0x60]
add esp, 0x40
test esi, esi
je 0x100dd5d6
mov edx, dword [esp + 0x30]
mov ecx, dword [edx + esi*8 - 4]
cmp ecx, dword [esp + 0x94]
ja 0x100dd5f4
lea eax, [ecx + ebx]
cmp eax, 0x1000
jae 0x100dd5f4
xor edx, edx
mov dword [esp + 0x48], edx
test esi, esi
je 0x100dd5d6
mov eax, dword [esp + 0x30]
add eax, 0xfffffffc
mov dword [esp + 0x34], eax
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x50], ebx
test edx, edx
je 0x100dd438
mov eax, dword [eax]
inc eax
jmp 0x100dd43c
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x54], eax
cmp ebx, eax
jb 0x100dd5ba
mov edi, dword [esp + 0x24]
lea eax, [ebx + 0x1028b32d]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x44], eax
lea esi, [ebx + edi]
lea eax, [esi*8]
sub eax, esi
lea eax, [edx + eax*4]
mov edx, 0xfffffffe
mov dword [esp + 0x40], eax
sub edx, edi
mov eax, 0xfffffffd
mov dword [esp + 0x64], edx
sub eax, edi
mov dword [esp + 0x5c], eax
bsr edi, ecx
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0xa8], 1
jne 0x100dd4a8
add edx, esi
bsr ecx, edx
shl edx, 8
shr edx, cl
lea eax, [ecx + 0x10]
add eax, edi
shl eax, 8
add edx, eax
jmp 0x100dd515
mov eax, dword [ecx + 0x7c]
mov edx, dword [eax + edi*4]
inc edx
shl edi, 8
bsr ecx, edx
shl edx, 8
shr edx, cl
mov eax, ecx
mov ecx, dword [ebp + 8]
shl eax, 8
add edi, dword [ecx + 0xa4]
sub edi, edx
sub edi, eax
mov eax, dword [esp + 0x5c]
add eax, esi
cmp eax, 0x7f
jbe 0x100dd4df
bsr ebx, eax
add ebx, 0x24
jmp 0x100dd4e6
mov eax, dword [esp + 0x44]
movzx ebx, byte [eax]
mov eax, dword [ecx + 0x78]
mov edx, dword [eax + ebx*4]
movzx eax, byte [ebx + 0x1028b2a4]
inc edx
bsr ecx, edx
mov ebx, dword [esp + 0x50]
sub eax, ecx
shl edx, 8
shr edx, cl
shl eax, 8
sub eax, edx
mov edx, dword [ebp + 8]
add eax, dword [edx + 0xa0]
lea edx, [eax + 0x33]
add edx, edi
add edx, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
cmp esi, edi
ja 0x100dd52b
mov ecx, dword [esp + 0x40]
cmp edx, dword [ecx]
jge 0x100dd58f
jmp 0x100dd55e
lea ecx, [edi + 1]
mov dword [esp + 0x1c], esi
lea eax, [ecx*8]
sub eax, ecx
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax*4]
mov ecx, esi
sub ecx, edi
nop word [eax + eax]
mov dword [eax], 0x40000000
lea eax, [eax + 0x1c]
sub ecx, 1
jne 0x100dd550
mov edi, dword [esp + 0x18]
lea eax, [esi*8]
mov ecx, dword [esp + 0x18]
sub eax, esi
mov dword [edi + eax*4 + 8], ebx
mov edi, dword [esp + 0x58]
mov dword [ecx + eax*4 + 4], edi
mov edi, ecx
mov ecx, dword [esp + 0x98]
mov dword [edi + eax*4 + 0xc], ecx
mov ecx, dword [esp + 0x40]
mov dword [edi + eax*4], edx
dec dword [esp + 0x44]
sub ecx, 0x1c
mov edx, dword [esp + 0x64]
dec ebx
dec esi
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], ebx
cmp ebx, dword [esp + 0x54]
jae 0x100dd483
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x34]
inc edx
add eax, 8
mov dword [esp + 0x48], edx
mov dword [esp + 0x34], eax
cmp edx, esi
jb 0x100dd421
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
inc ebx
mov edi, dword [esp + 0x1c]
add eax, 0x1c
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], eax
cmp ebx, edi
jbe 0x100dd200
jmp 0x100dd647
mov dword [esp + 0xac], ecx
lea eax, [ebx*8]
mov ecx, dword [edx + esi*8 - 8]
sub eax, ebx
mov edx, dword [esp + 0x18]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xb0], edi
cmp dword [edx + eax*4 + 8], 0
jne 0x100dd627
mov eax, dword [edx + eax*4 + 0xc]
jmp 0x100dd629
xor eax, eax
movaps xmm1, xmmword [esp + 0xc0]
sub ebx, eax
xor edi, edi
cmp ebx, 0x1000
cmovbe edi, ebx
jmp 0x100dd6db
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
lea eax, [edi*8]
sub eax, edi
sub esp, 0x1c
movups xmm0, xmmword [ecx + eax*4]
lea edx, [ecx + eax*4]
mov ecx, esp
movq xmm1, qword [edx + 0x10]
mov eax, dword [edx + 0x18]
movups xmmword [esp + 0xc0], xmm0
mov dword [esp + 0xb8], eax
movups xmm0, xmmword [edx]
movaps xmmword [esp + 0xdc], xmm1
movups xmmword [ecx], xmm0
movq xmm0, xmm1
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
call fcn.100df490
add esp, 0x1c
cmp edi, eax
jbe 0x100dd6ce
movups xmm0, xmmword [edx]
mov eax, dword [edx + 0x18]
sub esp, 0x1c
mov ecx, esp
movups xmmword [ecx], xmm0
movq xmm0, xmm1
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
call fcn.100df490
mov ecx, dword [esp + 0xc4]
add esp, 0x1c
mov edx, dword [esp + 0x18]
sub edi, eax
jmp 0x100dd6db
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x18]
xor edi, edi
lea eax, [edi*8]
sub eax, edi
cmp dword [esp + 0xac], 0
movq xmm0, qword [edx + eax*4 + 0x10]
lea eax, [edx + eax*4]
je 0x100dd76b
mov edx, dword [eax + 0x18]
movq qword [esp + 0x78], xmm0
mov dword [esp + 0x80], edx
cmp ecx, 3
jbe 0x100dd721
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x7c], eax
lea eax, [ecx - 3]
mov dword [esp + 0x78], eax
jmp 0x100dd755
xor eax, eax
cmp dword [esp + 0xb0], eax
sete al
dec eax
add eax, ecx
je 0x100dd755
mov esi, dword [esp + 0x78]
cmp eax, 3
jne 0x100dd740
lea ecx, [esi - 1]
jmp 0x100dd749
mov ecx, dword [esp + eax*4 + 0x78]
cmp eax, 2
jb 0x100dd74d
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x78], ecx
mov eax, dword [ebp + 0x10]
movq xmm0, qword [esp + 0x78]
movq qword [eax], xmm0
mov dword [eax + 8], edx
mov edx, dword [esp + 0x18]
jmp 0x100dd778
mov ecx, dword [ebp + 0x10]
movq qword [ecx], xmm0
mov eax, dword [eax + 0x18]
mov dword [ecx + 8], eax
movups xmm0, xmmword [esp + 0xa4]
lea ecx, [edi + 1]
lea eax, [ecx*8]
mov dword [esp + 0x1c], ecx
sub eax, ecx
mov ebx, ecx
lea esi, [edx + eax*4]
mov eax, dword [esp + 0x9c]
movups xmmword [esi], xmm0
movq qword [esi + 0x10], xmm1
mov dword [esi + 0x18], eax
test edi, edi
je 0x100dd818
nop dword [eax + eax]
lea eax, [edi*8]
sub esp, 0x1c
sub eax, edi
mov ecx, esp
movups xmm0, xmmword [edx + eax*4]
lea edx, [edx + eax*4]
mov eax, dword [edx + 0x18]
movups xmmword [ecx], xmm0
movq xmm0, qword [edx + 0x10]
movq qword [ecx + 0x10], xmm0
mov dword [ecx + 0x18], eax
call fcn.100df490
movups xmm0, xmmword [edx]
lea esi, [esi - 0x1c]
mov ecx, eax
add esp, 0x1c
dec ebx
movups xmmword [esi], xmm0
movq xmm0, qword [edx + 0x10]
movq qword [esi + 0x10], xmm0
mov eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
cmp edi, ecx
jbe 0x100dd808
mov edx, dword [esp + 0x18]
sub edi, ecx
jne 0x100dd7b0
mov ecx, dword [esp + 0x1c]
cmp ebx, ecx
ja 0x100dd993
mov edx, dword [esp + 0x18]
lea edi, [ebx*8]
sub ecx, ebx
sub edi, ebx
add edi, 2
inc ecx
mov dword [esp + 0x1c], ecx
lea edi, [edx + edi*4]
mov dword [esp + 0x20], edi
mov esi, dword [edi + 4]
mov eax, dword [edi]
mov edx, dword [edi - 4]
mov dword [esp + 0x34], esi
mov dword [esp + 0x5c], eax
lea ebx, [eax + esi]
mov dword [esp + 0x60], edx
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
add ebx, esi
mov dword [esp + 0x28], ebx
test eax, eax
je 0x100dd97f
push eax
mov eax, dword [ebp + 8]
push edx
push dword [esp + 0x34]
add eax, 0x70
push esi
push eax
call fcn.100df4a0
mov ebx, dword [ebp + 0xc]
add esp, 0x14
mov ecx, dword [esp + 0x3c]
add ebx, 0xc
mov edx, dword [esp + 0x28]
add ecx, 0xffffffe0
mov eax, dword [ebx]
cmp edx, ecx
ja 0x100dd901
push dword [esp + 0x2c]
push eax
call fcn.100ddcd0
add esp, 8
cmp esi, 0x10
jbe 0x100dd910
mov edi, dword [esp + 0x2c]
lea edx, [esi - 0x10]
mov esi, dword [ebx]
add edi, 0x10
add esi, 0x10
push edi
push esi
lea eax, [esi + edx]
mov dword [esp + 0x6c], eax
call fcn.100ddcd0
add esp, 8
cmp edx, 0x10
jle 0x100dd8f7
mov edx, dword [esp + 0x64]
add esi, 0x10
add edi, 0x10
nop dword [eax]
push edi
push esi
call fcn.100ddcd0
add edi, 0x10
add esi, 0x10
push edi
push esi
call fcn.100ddcd0
add esi, 0x10
add esp, 0x10
add edi, 0x10
cmp esi, edx
jb 0x100dd8d0
mov ebx, dword [ebp + 0xc]
add ebx, 0xc
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
jmp 0x100dd910
push ecx
push edx
push dword [esp + 0x34]
push eax
call fcn.100df1f0
add esp, 0x10
add dword [ebx], esi
mov edx, dword [ebp + 0xc]
cmp esi, 0xffff
jbe 0x100dd92f
mov eax, dword [edx + 4]
sub eax, dword [edx]
sar eax, 3
mov dword [edx + 0x24], 1
mov dword [edx + 0x28], eax
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x60]
mov word [eax + 4], si
mov eax, dword [edx + 4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
add ecx, 0xfffffffd
cmp ecx, 0xffff
jbe 0x100dd960
mov eax, dword [edx + 4]
sub eax, dword [edx]
sar eax, 3
mov dword [edx + 0x24], 2
mov dword [edx + 0x28], eax
mov eax, dword [edx + 4]
mov word [eax + 6], cx
mov eax, dword [esp + 0x2c]
add dword [edx + 4], 8
add eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
add edi, 0x1c
sub ecx, 1
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ecx
jne 0x100dd832
mov edi, dword [ebp + 8]
push 2
add edi, 0x70
push edi
call fcn.100df3b0
mov ecx, dword [esp + 0x30]
add esp, 8
cmp ecx, dword [esp + 0xa0]
jb 0x100dcf71
mov ebx, dword [esp + 0x3c]
sub ebx, dword [esp + 0x2c]
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret