Function at 0x100d86a0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
lea esp, [esp - 0xf4]
mov ebx, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x74], eax
mov eax, dword [0x104c5878]
xor eax, esp
mov dword [esp + 0xa4], eax
push 0x1b00
push ecx
call fcn.10251410
lea esp, [esp + 8]
xor eax, eax
mov dword [esp + 0xb0], eax
pxor xmm0, xmm0
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov eax, 3
movdqa xmmword [esp + eax*4 + 0xb4], xmm0
lea eax, [eax + 4]
cmp eax, 0xf
jb 0x100d86fe
movzx esi, word [ebx + 2]
test esi, esi
je 0x100d8729
mov dword [esp + 0xb4], 0
mov eax, 1
jmp 0x100d872d
xor esi, esi
xor eax, eax
movzx edx, word [ebx + 4]
add esi, esi
test edx, edx
je 0x100d8745
mov dword [esp + 0xb8], esi
add esi, edx
mov eax, 2
movzx edx, word [ebx + 6]
add esi, esi
test edx, edx
je 0x100d875d
mov dword [esp + 0xbc], esi
add esi, edx
mov eax, 3
movzx edx, word [ebx + 8]
add esi, esi
test edx, edx
je 0x100d8775
mov dword [esp + 0xc0], esi
add esi, edx
mov eax, 4
movzx edx, word [ebx + 0xa]
add esi, esi
test edx, edx
je 0x100d878d
mov dword [esp + 0xc4], esi
add esi, edx
mov eax, 5
movzx edx, word [ebx + 0xc]
add esi, esi
test edx, edx
je 0x100d87a5
mov dword [esp + 0xc8], esi
add esi, edx
mov eax, 6
movzx edx, word [ebx + 0xe]
add esi, esi
test edx, edx
je 0x100d87bd
mov dword [esp + 0xcc], esi
add esi, edx
mov eax, 7
movzx edx, word [ebx + 0x10]
add esi, esi
test edx, edx
je 0x100d87d5
mov dword [esp + 0xd0], esi
add esi, edx
mov eax, 8
movzx edx, word [ebx + 0x12]
add esi, esi
test edx, edx
je 0x100d87ed
mov dword [esp + 0xd4], esi
add esi, edx
mov eax, 9
movzx edx, word [ebx + 0x14]
add esi, esi
test edx, edx
je 0x100d8805
mov dword [esp + 0xd8], esi
add esi, edx
mov eax, 0xa
movzx edx, word [ebx + 0x16]
add esi, esi
mov dword [esp], edx
test edx, edx
je 0x100d8821
mov dword [esp + 0xdc], esi
mov eax, 0xb
add esi, dword [esp]
movzx edx, word [ebx + 0x18]
add esi, esi
test edx, edx
je 0x100d8839
mov dword [esp + 0xe0], esi
add esi, edx
mov eax, 0xc
movzx ecx, word [ebx + 0x1a]
add esi, esi
test ecx, ecx
je 0x100d8851
mov dword [esp + 0xe4], esi
add esi, ecx
mov eax, 0xd
movzx edi, word [ebx + 0x1c]
add esi, esi
mov dword [esp + 4], edi
test edi, edi
je 0x100d886f
mov dword [esp + 0xe8], esi
mov eax, 0xe
add esi, dword [esp + 4]
add esi, esi
cmp word [ebx + 0x1e], 0
je 0x100d8886
mov dword [esp + 0xec], esi
mov eax, 0xf
jmp 0x100d888d
mov esi, dword [esp + 0xec]
mov edi, dword [esp]
add edi, 4
mov dword [esp + 0xa0], esi
mov esi, edi
and esi, 1
add edi, esi
add edx, edi
add edx, 8
mov esi, edx
and esi, 1
add edx, esi
add ecx, edx
add ecx, 0x10
mov dword [esp + 0x84], edx
mov edx, ecx
and edx, 1
add ecx, edx
mov esi, dword [esp + 4]
add esi, ecx
add esi, 0x20
mov dword [esp + 0x88], ecx
mov ecx, esi
and ecx, 1
add esi, ecx
cmp dword [ebp + 0x14], 0x100
mov dword [esp + 0x8c], esi
mov esi, 0x100
movdqa xmm1, xmmword [esp + 0xe0]
cmovbe esi, dword [ebp + 0x14]
palignr xmm1, xmmword [esp + 0xd0], 0xc
test esi, esi
movdqa xmmword [esp + 0x90], xmm1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], edi
jle 0x100d8c02
mov dword [esp + 0x70], eax
lea ecx, [eax - 0xa]
mov dword [esp + 0x3c], ecx
xor edx, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x74]
movzx ebx, word [eax + edx*2]
test ebx, ebx
je 0x100d8bef
movzx esi, bl
mov eax, dword [esp + ebx*4 + 0xb0]
inc dword [esp + ebx*4 + 0xb0]
cmp esi, 0xa
jg 0x100d89b4
mov edi, eax
mov ecx, esi
and edi, 0x1f
neg ecx
sar eax, 5
add ecx, 0xa
movzx edi, byte [edi + 0x1042f3e0]
shl edi, 5
movzx eax, byte [eax + 0x1042f3e0]
or edi, eax
shr edi, cl
mov ecx, esi
mov eax, 1
shl eax, cl
cmp edi, 0x400
jge 0x100d8bef
mov ecx, dword [esp + 0x54]
mov byte [edi + ecx], dl
mov byte [edi + ecx + 0x600], bl
lea edi, [edi + eax]
cmp edi, 0x400
jl 0x100d899a
jmp 0x100d8bef
mov esi, eax
lea ecx, [ebx - 0xa]
sar esi, cl
mov edi, esi
and edi, 0x1f
mov dword [esp + 0x24], esi
sar esi, 5
mov dword [esp + 0x30], ecx
movzx edi, byte [edi + 0x1042f3e0]
shl edi, 5
movzx esi, byte [esi + 0x1042f3e0]
or edi, esi
mov esi, dword [esp + ecx*4 + 0x8c]
mov dword [esp + 0x28], esi
mov esi, 1
shl esi, cl
dec esi
mov dword [esp + 0x2c], edi
mov edi, ecx
mov dword [esp + 0x20], esi
cmp ecx, dword [esp + 0x3c]
jge 0x100d8a5a
xor esi, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], edx
mov ebx, esi
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov ecx, edi
inc ecx
cmp word [eax + edi*2 + 0x16], 0
je 0x100d8a37
mov edx, dword [esp + edi*4 + 0x90]
sar edx, cl
cmp esi, edx
jne 0x100d8a3f
mov ebx, edi
mov edi, ecx
cmp ecx, dword [esp + 0x3c]
jl 0x100d8a1d
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x34], 0
jne 0x100d8ab6
mov dword [esp + 0x14], edx
mov edx, eax
mov esi, dword [esp + 0x28]
mov edi, 0x3ff
sub edx, dword [esp + 0x28]
and esi, dword [esp + 0x20]
add edx, esi
mov esi, dword [esp + 0x30]
mov ecx, esi
shl edi, cl
and edx, edi
add edx, dword [esp + esi*4 + 0x78]
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
mov esi, edx
shr edx, 1
and eax, dword [esp + 0x20]
add esi, dword [esp + 0x54]
mov byte [ecx + edi], dl
mov edx, dword [esp + 0x14]
mov byte [ecx + edi + 0x600], bl
mov byte [eax + esi + 0x400], dl
mov byte [eax + esi + 0xa00], bl
jmp 0x100d8bef
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov esi, dword [esp + ecx*4 + 0x7c]
mov ebx, esi
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x54]
shr ebx, 1
and eax, dword [esp + 0x20]
mov byte [edi + esi], bl
lea ebx, [ecx + 0xb]
sub ecx, dword [esp + 0x30]
mov byte [edi + esi + 0x600], bl
inc ecx
mov esi, 1
shl esi, cl
shl eax, cl
mov ecx, esi
add ecx, eax
mov ebx, dword [esp + 0x1c]
cmp eax, ecx
jge 0x100d8bef
cmp esi, 0x10
jl 0x100d9917
mov ecx, dword [esp + 0x54]
lea edi, [ecx + eax]
add edi, dword [esp + 0xc]
mov dword [esp + 8], edi
and edi, 0xf
mov ecx, edi
neg ecx
add ecx, 0x10
test edi, edi
cmovne edi, ecx
mov dword [esp + 0x10], edi
add edi, 0x10
cmp esi, edi
jl 0x100d9917
mov ecx, esi
sub ecx, dword [esp + 0x10]
and ecx, 0xf
neg ecx
mov edi, dword [esp + 0x10]
add ecx, esi
test edi, edi
jbe 0x100d8b7d
mov dword [esp], ecx
xor edi, edi
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 8]
mov byte [edi + esi + 0x400], dl
mov byte [edi + esi + 0xa00], bl
lea edi, [edi + 1]
cmp edi, ecx
jb 0x100d8b5d
mov dword [esp + 0x10], ecx
mov ecx, dword [esp]
mov esi, dword [esp + 4]
movzx edi, dl
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
movd xmm2, edi
movzx edi, bl
punpcklbw xmm2, xmm2
punpcklbw xmm2, xmm2
pshufd xmm2, xmm2, 0
movd xmm1, edi
punpcklbw xmm1, xmm1
punpcklbw xmm1, xmm1
mov edi, dword [esp + 8]
pshufd xmm1, xmm1, 0
movdqa xmmword [edx + edi + 0x400], xmm2
movdqa xmmword [edx + edi + 0xa00], xmm1
lea edx, [edx + 0x10]
cmp edx, ecx
jb 0x100d8bb1
mov edx, dword [esp + 0x14]
cmp ecx, esi
jae 0x100d8bef
add eax, dword [esp + 0x54]
add eax, dword [esp + 0xc]
mov byte [ecx + eax + 0x400], dl
mov byte [ecx + eax + 0xa00], bl
lea ecx, [ecx + 1]
cmp ecx, esi
jb 0x100d8bda
inc edx
cmp edx, dword [esp + 0x40]
jl 0x100d8937
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x38]
cmp dword [ebp + 0x14], 0x101
jb 0x100d8edd
mov edx, dword [esp + 0x74]
movzx ecx, word [edx + 0x200]
test ecx, ecx
je 0x100d8edd
movzx edx, cl
mov esi, dword [esp + ecx*4 + 0xb0]
inc dword [esp + ecx*4 + 0xb0]
mov dword [esp + 0x1c], edx
cmp edx, 0xa
mov dword [esp + 0x20], esi
jg 0x100d8ca3
mov edi, esi
mov esi, edi
and esi, 0x1f
sar edi, 5
movzx esi, byte [esi + 0x1042f3e0]
shl esi, 5
movzx edx, byte [edi + 0x1042f3e0]
or esi, edx
mov edx, dword [esp + 0x1c]
mov ecx, edx
neg ecx
mov edi, 1
add ecx, 0xa
shr esi, cl
mov ecx, edx
shl edi, cl
cmp esi, 0x400
jge 0x100d8edd
or dword [esp + 0x1c], 0x60
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x1c]
mov byte [esi + ecx + 0x600], dl
lea esi, [esi + edi]
cmp esi, 0x400
jl 0x100d8c8c
jmp 0x100d8edd
add ecx, 0xfffffff6
sar esi, cl
mov edi, esi
and edi, 0x1f
mov dword [esp + 0x18], esi
sar esi, 5
mov dword [esp + 8], ecx
movzx edx, byte [edi + 0x1042f3e0]
shl edx, 5
movzx edi, byte [esi + 0x1042f3e0]
mov esi, 1
shl esi, cl
or edx, edi
dec esi
mov dword [esp + 0xc], esi
lea esi, [eax - 0xa]
mov dword [esp + 0x10], edx
cmp ecx, esi
mov edx, dword [esp + ecx*4 + 0x8c]
jge 0x100d8d38
xor edi, edi
mov dword [esp + 0x14], edi
mov dword [esp], edx
mov dword [esp + 0x70], eax
mov dword [esp + 4], ecx
mov edx, edi
mov edi, dword [esp + 8]
mov ecx, edi
inc ecx
cmp word [ebx + edi*2 + 0x16], 0
je 0x100d8d1c
mov eax, dword [esp + edi*4 + 0x90]
sar eax, cl
cmp eax, dword [esp + 0x18]
jne 0x100d8d22
mov edx, edi
mov edi, ecx
cmp ecx, esi
jl 0x100d8d00
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x70]
mov edx, dword [esp]
mov ecx, dword [esp + 4]
cmp dword [esp + 0x14], 0
jne 0x100d8d9e
mov edi, dword [esp + 0x20]
mov dword [esp + 0x70], eax
mov eax, edi
mov dword [esp + 0x38], ebx
sub eax, edx
and edx, dword [esp + 0xc]
mov ebx, 0x3ff
shl ebx, cl
add eax, edx
and eax, ebx
add eax, dword [esp + ecx*4 + 0x78]
mov ecx, dword [esp + 0x10]
mov edx, eax
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0xc]
and edi, esi
add eax, dword [esp + 0x54]
shr edx, 1
mov byte [ecx + ebx], dl
mov edx, dword [esp + 0x1c]
mov byte [ecx + ebx + 0x600], dl
or edx, 0x60
mov byte [edi + eax + 0x400], 0
mov byte [edi + eax + 0xa00], dl
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x38]
jmp 0x100d8edd
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x70], eax
mov edx, dword [esp + esi*4 + 0x7c]
mov eax, edx
mov dword [esp + 8], edx
mov edx, dword [esp + 0x54]
shr eax, 1
mov byte [edi + edx], al
lea eax, [esi + 0xb]
sub esi, ecx
inc esi
mov byte [edi + edx + 0x600], al
mov ecx, esi
mov eax, dword [esp + 0x20]
mov esi, 1
and eax, dword [esp + 0xc]
shl esi, cl
shl eax, cl
mov ecx, esi
add ecx, eax
mov dword [esp + 0x20], eax
cmp eax, ecx
mov eax, dword [esp + 0x70]
jge 0x100d8edd
cmp esi, 0x10
jl 0x100d991e
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x54]
lea edi, [edi + edx]
add edi, dword [esp + 8]
mov dword [esp + 4], edi
and edi, 0xf
mov ecx, edi
neg ecx
add ecx, 0x10
test edi, edi
cmovne edi, ecx
mov edx, edi
add edx, 0x10
cmp esi, edx
jl 0x100d991e
mov ecx, esi
sub ecx, edi
and ecx, 0xf
neg ecx
mov edx, dword [esp + 0x1c]
add ecx, esi
or edx, 0x60
mov dword [esp + 0xc], edx
test edi, edi
jbe 0x100d8e73
xor edx, edx
mov dword [esp], esi
mov dword [esp + 0x38], ebx
mov ebx, edx
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 4]
mov byte [ebx + esi + 0x400], 0
mov byte [ebx + esi + 0xa00], dl
lea ebx, [ebx + 1]
cmp ebx, edi
jb 0x100d8e56
mov esi, dword [esp]
mov ebx, dword [esp + 0x38]
pshufd xmm1, xmm0, 0
movd xmm0, dword [esp + 0xc]
punpcklbw xmm0, xmm0
punpcklbw xmm0, xmm0
mov edx, dword [esp + 4]
pshufd xmm0, xmm0, 0
movdqa xmmword [edi + edx + 0x400], xmm1
movdqa xmmword [edi + edx + 0xa00], xmm0
lea edi, [edi + 0x10]
cmp edi, ecx
jb 0x100d8e8f
cmp ecx, esi
jae 0x100d8edd
mov edx, dword [esp + 0x20]
add edx, dword [esp + 0x54]
add edx, dword [esp + 8]
or dword [esp + 0x1c], 0x60
mov dword [esp + 0x20], edx
mov edi, edx
mov edx, dword [esp + 0x1c]
mov byte [ecx + edi + 0x400], 0
mov byte [ecx + edi + 0xa00], dl
lea ecx, [ecx + 1]
cmp ecx, esi
jb 0x100d8ec7
mov esi, 0x109
cmp dword [ebp + 0x14], 0x109
cmovbe esi, dword [ebp + 0x14]
cmp esi, 0x101
jle 0x100d9217
mov dword [esp + 0x70], eax
lea ecx, [eax - 0xa]
mov dword [esp + 0x44], ecx
mov edx, 0x101
mov dword [esp + 0x48], esi
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x74]
movzx ecx, word [eax + edx*2]
test ecx, ecx
je 0x100d9204
movzx eax, cl
lea ebx, [edx - 1]
mov esi, dword [esp + ecx*4 + 0xb0]
inc dword [esp + ecx*4 + 0xb0]
mov dword [esp + 0x40], ebx
cmp eax, 0xa
mov dword [esp + 0x3c], esi
jg 0x100d8fa2
mov ebx, esi
mov edi, ebx
and edi, 0x1f
mov ecx, eax
sar ebx, 5
neg ecx
add ecx, 0xa
movzx edi, byte [edi + 0x1042f3e0]
shl edi, 5
movzx esi, byte [ebx + 0x1042f3e0]
or edi, esi
shr edi, cl
mov ecx, eax
mov esi, 1
or eax, 0xffffff80
shl esi, cl
cmp edi, 0x400
jge 0x100d9204
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x40]
mov byte [edi + ecx], bl
mov byte [edi + ecx + 0x600], al
lea edi, [edi + esi]
cmp edi, 0x400
jl 0x100d8f88
jmp 0x100d9204
add ecx, 0xfffffff6
sar esi, cl
mov edi, esi
and edi, 0x1f
mov dword [esp + 0x28], esi
sar esi, 5
movzx ebx, byte [edi + 0x1042f3e0]
shl ebx, 5
movzx edi, byte [esi + 0x1042f3e0]
mov esi, 1
shl esi, cl
or ebx, edi
mov dword [esp + 0x30], ebx
dec esi
mov ebx, dword [esp + ecx*4 + 0x8c]
mov dword [esp + 0x2c], ebx
mov ebx, ecx
mov dword [esp + 0x24], esi
cmp ecx, dword [esp + 0x44]
jge 0x100d9040
xor esi, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
mov ecx, ebx
inc ecx
cmp word [eax + ebx*2 + 0x16], 0
je 0x100d901d
mov edx, dword [esp + ebx*4 + 0x90]
sar edx, cl
cmp edi, edx
jne 0x100d9025
mov esi, ebx
mov ebx, ecx
cmp ecx, dword [esp + 0x44]
jl 0x100d9003
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
cmp dword [esp + 0x34], 0
jne 0x100d90a7
mov esi, dword [esp + 0x3c]
mov ebx, 0x3ff
mov edi, dword [esp + 0x2c]
or eax, 0xffffff80
mov dword [esp + 0x18], edx
mov edx, esi
sub edx, dword [esp + 0x2c]
and edi, dword [esp + 0x24]
shl ebx, cl
add edx, edi
and edx, ebx
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x30]
add edx, dword [esp + ecx*4 + 0x78]
mov dword [esp + 0x14], edx
shr edx, 1
mov byte [edi + ebx], dl
mov byte [edi + ebx + 0x600], al
mov ebx, dword [esp + 0x14]
and esi, dword [esp + 0x24]
add ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
mov byte [esi + ebx + 0x400], dl
mov byte [esi + ebx + 0xa00], al
mov edx, dword [esp + 0x18]
jmp 0x100d9204
mov edi, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + esi*4 + 0x7c]
mov eax, ebx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x54]
shr eax, 1
mov byte [edi + ebx], al
lea eax, [esi + 0xb]
sub esi, ecx
inc esi
mov byte [edi + ebx + 0x600], al
mov ecx, esi
mov eax, dword [esp + 0x3c]
mov esi, 1
and eax, dword [esp + 0x24]
shl esi, cl
shl eax, cl
mov ecx, esi
add ecx, eax
mov dword [esp + 0x3c], eax
cmp eax, ecx
mov eax, dword [esp + 0x1c]
jge 0x100d9204
cmp esi, 0x10
jl 0x100d9925
mov edi, dword [esp + 0x3c]
lea ebx, [ebx + edi]
add ebx, dword [esp + 8]
mov dword [esp + 4], ebx
and ebx, 0xf
mov edi, ebx
neg edi
add edi, 0x10
test ebx, ebx
cmovne ebx, edi
mov dword [esp + 0xc], ebx
add ebx, 0x10
cmp esi, ebx
jl 0x100d9925
mov edi, esi
mov ebx, eax
sub edi, dword [esp + 0xc]
or ebx, 0x80
and edi, 0xf
neg edi
mov ecx, dword [esp + 0xc]
add edi, esi
mov dword [esp + 0x10], ebx
test ecx, ecx
jbe 0x100d918a
mov dword [esp + 0x1c], eax
xor ebx, ebx
mov dword [esp], esi
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x40]
mov byte [ebx + esi + 0x400], dl
mov byte [ebx + esi + 0xa00], al
lea ebx, [ebx + 1]
cmp ebx, ecx
jb 0x100d9166
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp]
mov edx, dword [esp + 0x18]
movzx ebx, byte [esp + 0x40]
movd xmm0, dword [esp + 0x10]
punpcklbw xmm0, xmm0
movd xmm1, ebx
punpcklbw xmm1, xmm1
punpcklbw xmm1, xmm1
punpcklbw xmm0, xmm0
mov ebx, ecx
mov ecx, dword [esp + 4]
pshufd xmm1, xmm1, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [ebx + ecx + 0x400], xmm1
movdqa xmmword [ebx + ecx + 0xa00], xmm0
lea ebx, [ebx + 0x10]
cmp ebx, edi
jb 0x100d91b9
cmp edi, esi
jae 0x100d9204
mov ebx, dword [esp + 0x3c]
or eax, 0xffffff80
add ebx, dword [esp + 0x54]
add ebx, dword [esp + 8]
mov dword [esp + 0x3c], ebx
mov ecx, ebx
mov ebx, dword [esp + 0x40]
mov byte [edi + ecx + 0x400], bl
mov byte [edi + ecx + 0xa00], al
lea edi, [edi + 1]
cmp edi, esi
jb 0x100d91ef
inc edx
cmp edx, dword [esp + 0x48]
jl 0x100d8f11
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x38]
add eax, 0xfffffff6
mov esi, 0x109
mov dword [esp + 0x70], eax
mov ecx, 1
mov dword [esp + 0x38], ebx
mov edx, 0xfffffef7
cmp esi, dword [ebp + 0x14]
jae 0x100d965e
mov edi, dword [ebp + 0x14]
lea eax, [esi + 4]
cmp eax, dword [ebp + 0x14]
cmovb edi, eax
cmp esi, edi
jge 0x100d964d
mov ebx, 1
shl ebx, cl
mov dword [esp + 0x6c], ebx
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0x18], ebx
mov dword [esp + 0x78], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x74]
movzx ebx, word [eax + esi*2]
test ebx, ebx
je 0x100d9636
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
movzx edx, bl
mov dword [esp + 0x44], edx
lea eax, [edi + esi]
add eax, 4
shl eax, cl
mov dword [esp + 0x50], eax
mov eax, dword [esp + ebx*4 + 0xb0]
inc dword [esp + ebx*4 + 0xb0]
cmp edx, 0xa
jg 0x100d93c2
mov edx, eax
sar eax, 5
and edx, 0x1f
mov edi, ecx
movzx ebx, byte [eax + 0x1042f3e0]
mov eax, dword [esp + 0x44]
mov ecx, eax
movzx edx, byte [edx + 0x1042f3e0]
neg ecx
shl edx, 5
add ecx, 0xa
or edx, ebx
lea eax, [edi + eax]
shr edx, cl
cmp eax, 0xa
jg 0x100d937a
mov ebx, 1
mov edi, 1
mov ecx, dword [esp + 0x44]
shl ebx, cl
mov ecx, eax
shl edi, cl
or eax, 0xffffff80
mov dword [esp + 0x5c], ebx
cmp dword [esp + 0x6c], 0
jle 0x100d9636
mov dword [esp + 0x68], eax
xor ebx, ebx
mov dword [esp + 0x64], edi
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x5c]
mov eax, dword [esp + 0x50]
mov esi, edx
cmp edx, 0x400
jge 0x100d9368
mov dword [esp + 0x60], ebx
lea ecx, [eax + ebx]
mov dword [esp + 0x58], edx
mov ebx, dword [esp + 0x54]
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x64]
mov byte [esi + ebx], cl
mov byte [esi + ebx + 0x600], dl
lea esi, [esi + edi]
cmp esi, 0x400
jl 0x100d9347
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
inc ebx
add edx, edi
cmp ebx, dword [esp + 0x6c]
jl 0x100d9326
mov esi, dword [esp + 0x20]
jmp 0x100d9636
mov eax, dword [esp + 0x44]
mov ecx, eax
or eax, 0xffffff80
mov ebx, 1
or eax, dword [esp + 0x18]
shl ebx, cl
mov dword [esp + 0x44], eax
cmp edx, 0x400
jge 0x100d9636
mov edi, dword [esp + 0x54]
mov ecx, eax
mov eax, dword [esp + 0x50]
mov byte [edx + edi], al
mov byte [edx + edi + 0x600], cl
lea edx, [edx + ebx]
cmp edx, 0x400
jl 0x100d93a8
jmp 0x100d9636
add ebx, 0xfffffff6
mov edi, eax
mov ecx, ebx
sar edi, cl
mov edx, edi
and edx, 0x1f
mov dword [esp + 0x30], edi
sar edi, 5
movzx edx, byte [edx + 0x1042f3e0]
shl edx, 5
movzx edi, byte [edi + 0x1042f3e0]
or edx, edi
mov edi, 1
shl edi, cl
mov dword [esp + 0x3c], edx
dec edi
mov edx, dword [esp + ebx*4 + 0x8c]
mov dword [esp + 0x34], edx
mov edx, ebx
mov dword [esp + 0x2c], edi
cmp ebx, dword [esp + 0x70]
jge 0x100d9466
xor edi, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ebx
mov esi, edi
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov ecx, edx
inc ecx
cmp word [eax + edx*2 + 0x16], 0
je 0x100d9443
mov ebx, dword [esp + edx*4 + 0x90]
sar ebx, cl
cmp edi, ebx
jne 0x100d944b
mov esi, edx
mov edx, ecx
cmp ecx, dword [esp + 0x70]
jl 0x100d9429
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
cmp dword [esp + 0x40], 0
jne 0x100d94cf
mov edi, dword [esp + 0x34]
mov edx, eax
sub edx, dword [esp + 0x34]
mov ecx, ebx
and edi, dword [esp + 0x2c]
add edx, edi
mov edi, 0x3ff
shl edi, cl
and edx, edi
add edx, dword [esp + ebx*4 + 0x78]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x2c]
and eax, esi
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x3c]
mov esi, edx
add esi, dword [esp + 0x54]
mov ebx, dword [esp + 0x44]
or ebx, 0xffffff80
shr edx, 1
or ebx, dword [esp + 0x18]
mov byte [ecx + edi], dl
mov edx, dword [esp + 0x50]
mov byte [ecx + edi + 0x600], bl
mov byte [eax + esi + 0x400], dl
mov byte [eax + esi + 0xa00], bl
mov esi, dword [esp + 0x20]
jmp 0x100d9636
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + ecx*4 + 0x7c]
mov edx, esi
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x54]
shr edx, 1
and eax, dword [esp + 0x2c]
mov byte [edi + esi], dl
lea edx, [ecx + 0xb]
sub ecx, ebx
mov ebx, 1
inc ecx
shl ebx, cl
mov byte [edi + esi + 0x600], dl
mov edx, ebx
shl eax, cl
add edx, eax
mov esi, dword [esp + 0x20]
cmp eax, edx
jge 0x100d9636
cmp ebx, 0x10
jl 0x100d992c
mov edx, dword [esp + 0x54]
lea ecx, [edx + eax]
add ecx, dword [esp + 0xc]
mov dword [esp + 8], ecx
and ecx, 0xf
mov edi, ecx
neg edi
add edi, 0x10
test ecx, ecx
cmovne ecx, edi
mov dword [esp + 0x10], ecx
add ecx, 0x10
cmp ebx, ecx
jl 0x100d992c
mov edi, ebx
sub edi, dword [esp + 0x10]
and edi, 0xf
mov edx, dword [esp + 0x44]
neg edi
or edx, 0xffffff80
add edi, ebx
or edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
test ecx, ecx
mov dword [esp + 0x14], edx
jbe 0x100d95b3
mov dword [esp], edi
xor edx, edx
mov dword [esp + 4], ebx
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x50]
mov byte [edx + edi + 0x400], bl
mov byte [edx + edi + 0xa00], cl
lea edx, [edx + 1]
cmp edx, esi
jb 0x100d958f
mov dword [esp + 0x10], esi
mov edi, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x20]
movzx edx, byte [esp + 0x14]
movzx ecx, byte [esp + 0x50]
movd xmm0, edx
movd xmm1, ecx
punpcklbw xmm1, xmm1
punpcklbw xmm0, xmm0
punpcklbw xmm1, xmm1
punpcklbw xmm0, xmm0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 8]
pshufd xmm1, xmm1, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [edx + ecx + 0x400], xmm1
movdqa xmmword [edx + ecx + 0xa00], xmm0
lea edx, [edx + 0x10]
cmp edx, edi
jb 0x100d95e7
cmp edi, ebx
jae 0x100d9636
mov edx, dword [esp + 0x44]
or edx, 0xffffff80
or edx, dword [esp + 0x18]
add eax, dword [esp + 0x54]
mov dword [esp + 0x44], edx
add eax, dword [esp + 0xc]
mov ecx, edx
mov edx, dword [esp + 0x50]
mov byte [edi + eax + 0x400], dl
mov byte [edi + eax + 0xa00], cl
lea edi, [edi + 1]
cmp edi, ebx
jb 0x100d9621
inc esi
cmp esi, dword [esp + 0x78]
jl 0x100d9272
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
add edx, 0xfffffffc
inc ecx
mov esi, eax
cmp eax, 0x11d
jl 0x100d9231
mov eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x38]
cmp dword [ebp + 0x14], 0x11e
jb 0x100d98fa
mov edx, dword [esp + 0x74]
movzx esi, word [edx + 0x23a]
test esi, esi
je 0x100d98fa
mov ecx, esi
and ecx, 0xff
mov dword [esp + 0x18], ecx
cmp ecx, 0xa
mov edx, dword [esp + esi*4 + 0xb0]
jg 0x100d96ff
mov eax, edx
sar edx, 5
and eax, 0x1f
movzx esi, byte [edx + 0x1042f3e0]
mov edx, ecx
mov ecx, edx
movzx eax, byte [eax + 0x1042f3e0]
neg ecx
shl eax, 5
add ecx, 0xa
or eax, esi
shr eax, cl
mov ecx, edx
mov edx, 1
shl edx, cl
cmp eax, 0x400
jge 0x100d98fa
or dword [esp + 0x18], 0xffffff80
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x18]
mov byte [eax + ecx], 0xff
mov byte [eax + ecx + 0x600], bl
lea eax, [eax + edx]
cmp eax, 0x400
jl 0x100d96e5
jmp 0x100d98fa
add esi, 0xfffffff6
mov edi, edx
mov ecx, esi
sar edi, cl
mov ecx, edi
and ecx, 0x1f
mov dword [esp + 0x14], edi
sar edi, 5
movzx ecx, byte [ecx + 0x1042f3e0]
shl ecx, 5
movzx edi, byte [edi + 0x1042f3e0]
or ecx, edi
mov edi, dword [esp + esi*4 + 0x8c]
mov dword [esp + 0x10], ecx
mov ecx, esi
mov dword [esp + 8], edi
mov edi, 1
shl edi, cl
dec edi
mov dword [esp + 4], edi
cmp esi, eax
jge 0x100d9780
mov dword [esp + 0xc], edx
xor edi, edi
mov dword [esp], esi
mov edx, ecx
mov ecx, edx
inc ecx
cmp word [ebx + edx*2 + 0x16], 0
je 0x100d976f
mov esi, dword [esp + edx*4 + 0x90]
sar esi, cl
cmp esi, dword [esp + 0x14]
jne 0x100d9775
mov edi, edx
mov edx, ecx
cmp ecx, eax
jl 0x100d9753
mov edx, dword [esp + 0xc]
mov esi, dword [esp]
test edi, edi
jne 0x100d97d9
mov eax, dword [esp + 8]
mov edi, edx
sub edi, dword [esp + 8]
mov ecx, esi
and eax, dword [esp + 4]
add edi, eax
mov eax, 0x3ff
shl eax, cl
and edi, eax
add edi, dword [esp + esi*4 + 0x78]
mov esi, dword [esp + 0x10]
mov eax, edi
mov ecx, dword [esp + 0x54]
shr eax, 1
mov ebx, dword [esp + 4]
and edx, ebx
mov byte [esi + ecx], al
mov eax, dword [esp + 0x18]
or eax, 0xffffff80
mov byte [esi + ecx + 0x600], al
lea ecx, [ecx + edi]
mov byte [edx + ecx + 0x400], 0xff
mov byte [edx + ecx + 0xa00], al
jmp 0x100d98fa
mov ebx, dword [esp + edi*4 + 0x7c]
mov eax, ebx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
shr eax, 1
and edx, dword [esp + 4]
mov byte [ebx + ecx], al
lea eax, [edi + 0xb]
sub edi, esi
inc edi
mov byte [ebx + ecx + 0x600], al
mov ecx, edi
mov eax, 1
shl eax, cl
shl edx, cl
mov esi, eax
add esi, edx
cmp edx, esi
jge 0x100d98fa
cmp eax, 0x10
jl 0x100d9933
mov ebx, dword [esp + 0x54]
lea ebx, [ebx + edx]
add ebx, dword [esp + 8]
mov dword [esp], ebx
and ebx, 0xf
mov ecx, ebx
neg ecx
add ecx, 0x10
test ebx, ebx
cmovne ebx, ecx
mov esi, ebx
add esi, 0x10
cmp eax, esi
jl 0x100d9933
mov esi, eax
sub esi, ebx
and esi, 0xf
neg esi
mov ecx, dword [esp + 0x18]
add esi, eax
or ecx, 0x80
mov dword [esp + 4], ecx
test ebx, ebx
jbe 0x100d988f
mov dword [esp + 0xc], edx
xor ecx, ecx
mov edx, dword [esp + 4]
mov edi, dword [esp]
mov byte [ecx + edi + 0x400], 0xff
mov byte [ecx + edi + 0xa00], dl
lea ecx, [ecx + 1]
cmp ecx, ebx
jb 0x100d9875
mov edx, dword [esp + 0xc]
movd xmm0, dword [esp + 4]
punpcklbw xmm0, xmm0
pcmpeqd xmm1, xmm1
punpcklbw xmm0, xmm0
mov ecx, dword [esp]
pshufd xmm1, xmm1, 0
pshufd xmm0, xmm0, 0
movdqa xmmword [ebx + ecx + 0x400], xmm1
movdqa xmmword [ebx + ecx + 0xa00], xmm0
lea ebx, [ebx + 0x10]
cmp ebx, esi
jb 0x100d98ae
cmp esi, eax
jae 0x100d98fa
mov ecx, dword [esp + 0x54]
add ecx, edx
add ecx, dword [esp + 8]
or dword [esp + 0x18], 0xffffff80
mov dword [esp + 0x54], ecx
mov edx, ecx
mov ecx, dword [esp + 0x18]
mov byte [esi + edx + 0x400], 0xff
mov byte [esi + edx + 0xa00], cl
lea esi, [esi + 1]
cmp esi, eax
jb 0x100d98e4
mov ecx, dword [esp + 0xa4]
xor ecx, esp
call fcn.103b6385
lea esp, [esp + 0xf4]
pop ebx
pop edi
pop esi
lea esp, [ebp]
pop ebp
ret
xor ecx, ecx
jmp 0x100d8bce
xor ecx, ecx
jmp 0x100d8ea8
xor edi, edi
jmp 0x100d91d2
xor edi, edi
jmp 0x100d9600
xor esi, esi
jmp 0x100d98c7