Function at 0x1000d480
Capabilities:
Hash data with crc32

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x10038]
mov edx, dword [esi]
mov edi, dword [esi + 4]
mov dword [esp + 0x10], eax
movzx eax, word [ebp*2 + 0x1002d5c0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
movzx eax, word [eax*2 + 0x1002d5c0]
mov dword [esp + 0x20], eax
cmp edi, ebp
jae 0x1000d52e
nop dword [eax]
mov ecx, dword [esi + 0x1002c]
cmp ecx, dword [esi + 0x10030]
jae 0x1000d51b
mov eax, dword [esi + 0x14]
mov ebx, dword [esi + 0x10044]
add eax, ecx
jne 0x1000d4e0
or ecx, 0xffffffff
jmp 0x1000d4f4
movzx eax, byte [eax]
mov ecx, dword [ebx]
xor eax, ecx
movzx eax, al
shr ecx, 8
xor ecx, dword [eax*4 + 0x1002d1c0]
mov dword [ebx], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov bl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000d51e
or bl, 0xff
mov ecx, edi
movzx eax, bl
shl eax, cl
add edi, 8
or edx, eax
cmp edi, ebp
jb 0x1000d4c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
and eax, edx
movzx ebp, byte [ecx + eax*8]
lea eax, [ecx + eax*8]
mov dword [esp + 0x14], eax
cmp ebp, 0x10
jbe 0x1000d60b
nop dword [eax]
cmp ebp, 0x63
je 0x1000d9a3
movzx ecx, byte [eax + 1]
sub ebp, 0x10
sub edi, ecx
shr edx, cl
cmp edi, ebp
jae 0x1000d5ea
nop dword [eax]
mov eax, dword [esi + 0x1002c]
cmp eax, dword [esi + 0x10030]
jae 0x1000d5d3
mov ebx, dword [esi + 0x14]
add ebx, eax
mov eax, dword [esi + 0x10044]
mov dword [esp + 0x18], eax
jne 0x1000d594
or ecx, 0xffffffff
jmp 0x1000d5ac
mov ecx, dword [eax]
movzx eax, byte [ebx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x1002d1c0]
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov bl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000d5d6
or bl, 0xff
mov ecx, edi
movzx eax, bl
shl eax, cl
add edi, 8
or edx, eax
cmp edi, ebp
jb 0x1000d570
mov eax, dword [esp + 0x14]
movzx ecx, word [ebp*2 + 0x1002d5c0]
mov eax, dword [eax + 4]
and ecx, edx
movzx ebp, byte [eax + ecx*8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x14], eax
cmp ebp, 0x10
ja 0x1000d550
movzx ecx, byte [eax + 1]
shr edx, cl
sub edi, ecx
mov dword [esp + 0x18], edx
cmp ebp, 0x10
jne 0x1000d65e
mov ecx, dword [esp + 0x10]
mov al, byte [eax + 4]
mov ebp, dword [esp + 0x34]
mov byte [ecx + esi + 0x1c], al
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 0x8000
jne 0x1000d4b8
mov ecx, esi
mov dword [esi + 0x10038], 0x8000
call fcn.1000cec0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], 0
jmp 0x1000d4b8
cmp ebp, 0xf
je 0x1000d9b2
cmp edi, ebp
jae 0x1000d6ea
nop
mov eax, dword [esi + 0x1002c]
cmp eax, dword [esi + 0x10030]
jae 0x1000d6d3
mov ebx, dword [esi + 0x14]
add ebx, eax
mov eax, dword [esi + 0x10044]
mov dword [esp + 0x18], eax
jne 0x1000d694
or ecx, 0xffffffff
jmp 0x1000d6ac
mov ecx, dword [eax]
movzx eax, byte [ebx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x1002d1c0]
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov bl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000d6d6
or bl, 0xff
mov ecx, edi
movzx eax, bl
shl eax, cl
add edi, 8
or edx, eax
cmp edi, ebp
jb 0x1000d670
mov eax, dword [esp + 0x14]
movzx ecx, word [ebp*2 + 0x1002d5c0]
sub edi, ebp
movzx eax, word [eax + 4]
and ecx, edx
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, ebp
shr edx, cl
cmp edi, dword [esp + 0x38]
jae 0x1000d782
nop
mov eax, dword [esi + 0x1002c]
cmp eax, dword [esi + 0x10030]
jae 0x1000d76d
mov ebx, dword [esi + 0x14]
mov ebp, dword [esi + 0x10044]
add ebx, eax
jne 0x1000d730
or ecx, 0xffffffff
jmp 0x1000d745
mov ecx, dword [ebp]
movzx eax, byte [ebx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x1002d1c0]
mov dword [ebp], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov bl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000d770
or bl, 0xff
mov ecx, edi
movzx eax, bl
shl eax, cl
add edi, 8
or edx, eax
cmp edi, dword [esp + 0x38]
jb 0x1000d710
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
and eax, edx
movzx ebp, byte [ecx + eax*8]
lea eax, [ecx + eax*8]
mov dword [esp + 0x14], eax
cmp ebp, 0x10
jbe 0x1000d859
cmp ebp, 0x63
je 0x1000d9a3
movzx ecx, byte [eax + 1]
sub ebp, 0x10
sub edi, ecx
shr edx, cl
mov dword [esp + 0x18], ebp
cmp edi, ebp
jae 0x1000d838
mov eax, dword [esi + 0x1002c]
cmp eax, dword [esi + 0x10030]
jae 0x1000d821
mov ebx, dword [esi + 0x14]
mov ebp, dword [esi + 0x10044]
add ebx, eax
jne 0x1000d7e0
or ecx, 0xffffffff
jmp 0x1000d7f5
mov ecx, dword [ebp]
movzx eax, byte [ebx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x1002d1c0]
mov dword [ebp], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov ebp, dword [esp + 0x18]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov bl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000d824
or bl, 0xff
mov ecx, edi
movzx eax, bl
shl eax, cl
add edi, 8
or edx, eax
cmp edi, ebp
jb 0x1000d7c0
mov eax, dword [esp + 0x14]
movzx ecx, word [ebp*2 + 0x1002d5c0]
mov eax, dword [eax + 4]
and ecx, edx
movzx ebp, byte [eax + ecx*8]
lea eax, [eax + ecx*8]
mov dword [esp + 0x14], eax
cmp ebp, 0x10
ja 0x1000d7a0
movzx ecx, byte [eax + 1]
sub edi, ecx
shr edx, cl
cmp edi, ebp
jae 0x1000d8e6
nop dword [eax]
mov eax, dword [esi + 0x1002c]
cmp eax, dword [esi + 0x10030]
jae 0x1000d8d3
mov ebx, dword [esi + 0x14]
add ebx, eax
mov eax, dword [esi + 0x10044]
mov dword [esp + 0x18], eax
jne 0x1000d894
or ecx, 0xffffffff
jmp 0x1000d8ac
mov ecx, dword [eax]
movzx eax, byte [ebx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x1002d1c0]
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
not ecx
mov eax, dword [esi + 0x14]
inc dword [esi + 0x1001c]
mov dword [esi + 0x10048], ecx
mov ecx, dword [esi + 0x1002c]
mov bl, byte [ecx + eax]
lea eax, [ecx + 1]
mov dword [esi + 0x1002c], eax
jmp 0x1000d8d6
or bl, 0xff
mov ecx, edi
movzx eax, bl
shl eax, cl
add edi, 8
or edx, eax
cmp edi, ebp
jb 0x1000d870
movzx eax, word [ebp*2 + 0x1002d5c0]
mov ecx, ebp
mov ebx, dword [esp + 0x10]
and eax, edx
sub ebx, eax
shr edx, cl
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
movzx eax, word [eax + 4]
sub ebx, eax
sub edi, ebp
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x24]
and ebx, 0x7fff
mov eax, ecx
cmp ebx, ecx
mov ebp, 0x8000
cmova eax, ebx
sub ebp, eax
mov eax, ecx
cmp ebp, edi
cmova ebp, edi
sub eax, ebx
sub edi, ebp
cmp eax, ebp
jb 0x1000d960
lea eax, [esi + 0x1c]
add eax, ebx
push ebp
push eax
lea eax, [esi + 0x1c]
add eax, ecx
push eax
call fcn.100104e0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
add ecx, ebp
add ebx, ebp
jmp 0x1000d96f
mov al, byte [esi + ebx + 0x1c]
inc ebx
mov byte [esi + ecx + 0x1c], al
inc ecx
sub ebp, 1
jne 0x1000d960
mov dword [esp + 0x10], ecx
cmp ecx, 0x8000
jne 0x1000d98e
mov dword [esi + 0x10038], ecx
mov ecx, esi
call fcn.1000cec0
xor ecx, ecx
mov dword [esp + 0x10], ecx
test edi, edi
jne 0x1000d916
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
jmp 0x1000d4b8
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18
ret 0x10
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esi + 4], edi
pop edi
mov dword [esi + 0x10038], ecx
mov dword [esi], edx
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x10