Function at 0x42cfc0
Capabilities:
Compute adler32 checksum

Disassembly:
sub esp, 0xbc
mov edx, dword [esp + 0xcc]
push ebx
mov ebx, dword [esp + 0xd8]
push ebp
mov ebp, dword [esp + 0xcc]
push esi
mov esi, dword [esp + 0xdc]
push edi
mov edi, dword [esp + 0xd8]
mov eax, dword [edi]
add eax, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [ebx]
lea ecx, [eax + esi]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0xe8]
and ecx, 4
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], ecx
je 0x42d023
or eax, 0xffffffff
jmp 0x42d029
sub eax, edx
lea eax, [eax + esi - 1]
lea ecx, [eax + 1]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], ecx
test eax, ecx
jne 0x42e77f
cmp esi, edx
jb 0x42e77f
mov eax, dword [esp + 0xd0]
mov edx, dword [eax + 0x20]
mov ecx, dword [eax + 0x24]
mov esi, dword [eax + 4]
mov ebx, dword [eax + 0x38]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 0x28]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], ecx
cmp eax, 0x35
ja case.0x42d07f.4
movzx edx, byte [eax + 0x42e824]
jmp dword [edx*4 + 0x42e79c]
mov ecx, dword [esp + 0xd0]
xor edx, edx
mov eax, 1
xor esi, esi
xor ebx, ebx
mov dword [ecx + 0xc], edx
mov dword [ecx + 8], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], edx
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x10], eax
test byte [esp + 0xe8], al
je 0x42d937
mov eax, dword [esp + 0x1c]
cmp ebp, eax
jae 0x42d0f4
movzx edi, byte [ebp]
inc ebp
mov dword [ecx + 8], edi
mov dword [esp + 0x10], ebp
jmp 0x42d126
mov eax, dword [esp + 0x1c]
cmp ebp, eax
jae 0x42d0f2
movzx edx, byte [ebp]
mov ecx, dword [esp + 0xd0]
inc ebp
mov dword [ecx + 8], edx
mov dword [esp + 0x10], ebp
xor edx, edx
jmp 0x42d126
xor edx, edx
test byte [esp + 0xe8], 2
mov ebp, dword [esp + 0x10]
je 0x42d11c
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [eax], 1
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov dword [ecx + 8], edx
cmp ebp, eax
jae 0x42d1c0
movzx edx, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov dword [ecx + 0xc], edx
mov edi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov eax, edi
shl eax, 8
add eax, ecx
xor edx, edx
mov ecx, 0x1f
div ecx
test edx, edx
jne 0x42d171
mov edx, dword [esp + 0xd0]
test byte [edx + 0xc], 0x20
jne 0x42d171
mov eax, edi
and al, 0xf
mov dword [esp + 0x14], 0
cmp al, 8
je 0x42d179
mov dword [esp + 0x14], 1
cmp dword [esp + 0x38], 0
jne 0x42d1f1
mov ecx, edi
shr ecx, 4
add ecx, 8
mov eax, 1
shl eax, cl
cmp eax, 0x8000
ja 0x42d1e8
cmp dword [esp + 0x24], eax
jb 0x42d1e8
xor eax, eax
jmp 0x42d1ed
cmp ebp, dword [esp + 0x1c]
jae 0x42d1be
movzx eax, byte [ebp]
mov ecx, dword [esp + 0xd0]
inc ebp
mov dword [ecx + 0xc], eax
mov dword [esp + 0x10], ebp
jmp 0x42d13a
xor edx, edx
test byte [esp + 0xe8], 2
mov ecx, dword [esp + 0xd0]
je 0x42d137
mov dword [esp + 0x18], 1
mov dword [ecx], 2
jmp case.0x42d07f.4
mov eax, 1
or dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x42d937
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 0xffffffff
mov dword [ecx], 0x24
jmp case.0x42d07f.4
cmp ebp, dword [esp + 0x1c]
jae 0x42d94a
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 3
jb 0x42d940
mov ecx, dword [esp + 0xd0]
mov eax, ebx
and eax, 7
mov dword [ecx + 0x14], eax
shr ebx, 3
sub esi, 3
shr eax, 1
mov dword [ecx + 0x18], eax
jne 0x42da8a
mov ecx, esi
and ecx, 7
cmp esi, ecx
jae 0x42d29d
cmp ebp, dword [esp + 0x1c]
jb 0x42d282
test byte [esp + 0xe8], 2
jne 0x42e251
xor eax, eax
jmp 0x42d28b
cmp ebp, dword [esp + 0x1c]
jae 0x42d26a
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
add esi, 8
mov edx, esi
and edx, 7
or ebx, eax
cmp esi, edx
jb 0x42d264
mov ecx, esi
and ecx, 7
shr ebx, cl
sub esi, ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x14], 0
cmp dword [esp + 0x14], 4
jae 0x42d9b6
test esi, esi
je 0x42d95f
cmp esi, 8
jae 0x42d309
cmp ebp, dword [esp + 0x1c]
jb 0x42d2eb
test byte [esp + 0xe8], 2
jne 0x42e26b
xor eax, eax
jmp 0x42d2f4
cmp ebp, dword [esp + 0x1c]
jae 0x42d2d3
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 8
jb 0x42d2cd
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0x14]
mov byte [eax + ecx + 0x2920], bl
shr ebx, 8
sub esi, 8
inc dword [esp + 0x14]
jmp 0x42d2b5
cmp ebp, dword [esp + 0x1c]
jae 0x42d965
mov dl, byte [ebp]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xd0]
inc ebp
inc dword [esp + 0x14]
mov byte [eax + ecx + 0x2920], dl
mov dword [esp + 0x10], ebp
jmp 0x42d2b5
cmp ebp, dword [esp + 0x1c]
jae 0x42da0d
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 8
jb 0x42da03
movzx edx, bl
shr ebx, 8
mov dword [esp + 0x28], edx
sub esi, 8
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x34]
jae 0x42e2cc
mov cl, byte [esp + 0x28]
mov byte [eax], cl
inc eax
dec dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
jmp 0x42d9ee
cmp ebp, dword [esp + 0x1c]
jae 0x42db58
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov edx, dword [esp + 0x14]
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
movsx eax, byte [edx + 0x453a64]
cmp esi, eax
jb 0x42db4e
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 0x453a68]
mov edx, dword [esp + 0xd0]
mov edi, 1
shl edi, cl
dec edi
and edi, ebx
mov dword [edx + eax*4 + 0x2c], edi
movzx ecx, byte [eax + 0x453a6c]
shr ebx, cl
movsx ecx, byte [eax + 0x453a70]
sub esi, ecx
mov ecx, dword [eax*4 + 0x453954]
add dword [edx + eax*4 + 0x2c], ecx
inc eax
mov dword [esp + 0x14], eax
jmp 0x42db3a
cmp ebp, dword [esp + 0x1c]
jae 0x42dbae
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 3
jb 0x42dba4
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0xd0]
movzx edx, byte [ecx + 0x4538c4]
mov eax, ebx
and eax, 7
shr ebx, 3
sub esi, 3
inc ecx
mov byte [edx + edi + 0x1b80], al
mov dword [esp + 0x14], ecx
jmp 0x42db96
mov ecx, ebp
cmp ecx, dword [esp + 0x1c]
jae 0x42dec0
jmp 0x42ded6
cmp ebp, dword [esp + 0x1c]
jae 0x42dfac
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, dword [esp + 0x2c]
jb 0x42dfa2
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0xd0]
mov ecx, dword [esp + 0x2c]
movsx eax, byte [edx + 0x453a68]
mov edi, 1
shl edi, cl
sub esi, ecx
dec edi
and edi, ebx
shr ebx, cl
add edi, eax
cmp edx, 0x10
jne 0x42dfc1
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + ebp + 0x2923]
jmp 0x42dfc3
cmp ebp, dword [esp + 0x1c]
jae 0x42d860
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 0xf
jb 0x42d7fe
jmp 0x42d894
cmp ebp, dword [esp + 0x1c]
jae 0x42e06f
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
mov ecx, dword [esp + 0x2c]
add esi, 8
or ebx, eax
cmp esi, ecx
jb 0x42e065
mov eax, 1
shl eax, cl
sub esi, ecx
dec eax
and eax, ebx
shr ebx, cl
add dword [esp + 0x14], eax
cmp esi, 0xf
jae 0x42e114
mov ecx, dword [esp + 0x1c]
sub ecx, ebp
cmp ecx, 2
jge 0x42e0f2
mov eax, dword [esp + 0xd0]
mov edx, ebx
and edx, 0x3ff
movsx eax, word [eax + edx*2 + 0xf00]
test eax, eax
jl 0x42e084
sar eax, 9
test eax, eax
je 0x42e0b6
cmp esi, eax
jae 0x42e114
jmp 0x42e0b6
mov ecx, ebp
cmp ecx, dword [esp + 0x1c]
jae 0x42e0c0
jmp 0x42e0d6
cmp ebp, dword [esp + 0x1c]
jae 0x42e190
movzx eax, byte [ebp]
inc ebp
mov dword [esp + 0x10], ebp
mov ecx, esi
shl eax, cl
mov ecx, dword [esp + 0x2c]
add esi, 8
or ebx, eax
cmp esi, ecx
jb 0x42e186
mov edx, dword [esp + 0x28]
mov eax, 1
shl eax, cl
sub esi, ecx
dec eax
and eax, ebx
shr ebx, cl
add edx, eax
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0xdc]
mov eax, edi
sub eax, ecx
mov dword [esp + 0x44], eax
cmp edx, eax
jbe 0x42d60e
test byte [esp + 0xe8], 4
jne case.0x42d07f.37
sub eax, edx
and eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, edi
cmp edi, eax
ja 0x42d61e
mov ecx, eax
mov edi, dword [esp + 0x14]
add ecx, edi
cmp ecx, dword [esp + 0x34]
ja 0x42d6ce
cmp edi, 9
jb 0x42e1a5
cmp edi, edx
ja 0x42e1a5
mov ecx, edi
mov edi, dword [esp + 0x20]
and ecx, 0xfffffff8
add ecx, eax
lea ebx, [ebx]
mov edx, dword [eax]
mov dword [edi], edx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
add eax, 8
add edi, 8
cmp eax, ecx
jb 0x42d650
mov ecx, dword [esp + 0x14]
and ecx, 7
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], ecx
cmp ecx, 3
jae 0x42e1b0
test ecx, ecx
je 0x42d6dd
mov cl, byte [eax]
mov byte [edi], cl
mov ecx, dword [esp + 0x14]
cmp ecx, 1
jbe 0x42d693
mov dl, byte [eax + 1]
mov byte [edi + 1], dl
add edi, ecx
mov dword [esp + 0x20], edi
jmp 0x42d6dd
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x34]
jae 0x42e203
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0xdc]
mov edx, edi
sub edx, dword [esp + 0x28]
inc eax
and edx, dword [esp + 0x3c]
inc edi
mov dl, byte [edx + ecx]
mov byte [eax - 1], dl
mov dword [esp + 0x20], eax
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x14]
mov ecx, eax
dec eax
mov dword [esp + 0x14], eax
test ecx, ecx
jne case.0x42d07f.53
mov eax, dword [esp + 0x1c]
sub eax, ebp
cmp eax, 4
jl 0x42d7f0
mov edx, dword [esp + 0x34]
sub edx, dword [esp + 0x20]
cmp edx, 2
jl 0x42d7f0
cmp esi, 0xf
jae 0x42d716
movzx eax, word [ebp]
mov ecx, esi
shl eax, cl
add ebp, 2
mov dword [esp + 0x10], ebp
or ebx, eax
add esi, 0x10
mov edx, dword [esp + 0xd0]
mov ecx, ebx
and ecx, 0x3ff
movsx eax, word [edx + ecx*2 + 0x160]
test eax, eax
jl 0x42d738
mov ecx, eax
sar ecx, 9
jmp 0x42d758
mov ecx, 0xa
lea ecx, [ecx]
mov edi, ebx
shr edi, cl
not eax
inc ecx
and edi, 1
add edi, eax
movsx eax, word [edx + edi*2 + 0x960]
test eax, eax
jl 0x42d740
shr ebx, cl
sub esi, ecx
mov dword [esp + 0x14], eax
test eax, 0x100
jne 0x42d90e
cmp esi, 0xf
jae 0x42d784
movzx eax, word [ebp]
mov ecx, esi
shl eax, cl
add ebp, 2
mov dword [esp + 0x10], ebp
or ebx, eax
add esi, 0x10
mov edx, dword [esp + 0xd0]
mov ecx, ebx
and ecx, 0x3ff
movsx eax, word [edx + ecx*2 + 0x160]
test eax, eax
jl 0x42d7a6
mov ecx, eax
sar ecx, 9
jmp 0x42d7c8
mov ecx, 0xa
jmp 0x42d7b0
mov edi, ebx
shr edi, cl
not eax
inc ecx
and edi, 1
add edi, eax
movsx eax, word [edx + edi*2 + 0x960]
test eax, eax
jl 0x42d7b0
mov dl, byte [esp + 0x14]
mov edi, dword [esp + 0x20]
shr ebx, cl
sub esi, ecx
mov byte [edi], dl
test eax, 0x100
jne 0x42d905
mov byte [edi + 1], al
add edi, 2
mov dword [esp + 0x20], edi
jmp 0x42d6dd
cmp esi, 0xf
jae 0x42d894
cmp eax, 2
jge 0x42d875
mov ecx, dword [esp + 0xd0]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ecx + eax*2 + 0x160]
test eax, eax
jl 0x42d825
sar eax, 9
test eax, eax
je 0x42d856
cmp esi, eax
jae 0x42d894
jmp 0x42d856
cmp esi, 0xa
jbe 0x42d856
mov ecx, 0xa
nop
mov edx, ebx
shr edx, cl
not eax
inc ecx
and edx, 1
add edx, eax
mov eax, dword [esp + 0xd0]
movsx eax, word [eax + edx*2 + 0x960]
test eax, eax
jge 0x42d894
lea edx, [ecx + 1]
cmp esi, edx
jae 0x42d830
cmp ebp, dword [esp + 0x1c]
jb 0x42d4ef
test byte [esp + 0xe8], 2
jne 0x42e21d
xor eax, eax
jmp 0x42d4f8
movzx eax, byte [ebp + 1]
movzx edx, byte [ebp]
lea ecx, [esi + 8]
shl eax, cl
mov ecx, esi
shl edx, cl
add ebp, 2
mov dword [esp + 0x10], ebp
or eax, edx
or ebx, eax
add esi, 0x10
mov edx, dword [esp + 0xd0]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [edx + eax*2 + 0x160]
test eax, eax
jl 0x42d8ba
mov ecx, eax
sar ecx, 9
and eax, 0x1ff
jmp 0x42d8d8
mov ecx, 0xa
nop
mov edi, ebx
shr edi, cl
not eax
inc ecx
and edi, 1
add edi, eax
movsx eax, word [edx + edi*2 + 0x960]
test eax, eax
jl 0x42d8c0
shr ebx, cl
sub esi, ecx
mov dword [esp + 0x14], eax
cmp eax, 0x100
jae 0x42d90e
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x34]
jae 0x42e65e
mov cl, byte [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x20], eax
jmp 0x42d6dd
inc edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
and eax, 0x1ff
mov dword [esp + 0x14], eax
cmp eax, 0x100
jne 0x42e03f
mov edx, dword [esp + 0xd0]
test byte [edx + 0x14], 1
jne 0x42e412
cmp esi, 3
jae 0x42d23b
cmp ebp, dword [esp + 0x1c]
jb 0x42d220
test byte [esp + 0xe8], 2
jne 0x42e237
xor eax, eax
jmp 0x42d229
cmp ebp, dword [esp + 0x1c]
jb 0x42d991
test byte [esp + 0xe8], 2
mov edx, dword [esp + 0xd0]
jne 0x42e285
mov ecx, dword [esp + 0x14]
inc dword [esp + 0x14]
mov byte [ecx + edx + 0x2920], 0
mov ecx, edx
jmp 0x42d2b5
mov ecx, dword [esp + 0x14]
mov al, byte [ebp]
mov edx, dword [esp + 0xd0]
inc ebp
inc dword [esp + 0x14]
mov byte [ecx + edx + 0x2920], al
mov dword [esp + 0x10], ebp
mov ecx, edx
jmp 0x42d2b5
movzx eax, byte [ecx + 0x2921]
movzx edx, byte [ecx + 0x2920]
shl eax, 8
or eax, edx
movzx edx, byte [ecx + 0x2923]
movzx ecx, byte [ecx + 0x2922]
shl edx, 8
or edx, ecx
xor edx, 0xffff
mov dword [esp + 0x14], eax
cmp eax, edx
jne case.0x42d07f.39
test eax, eax
je 0x42d926
test esi, esi
je 0x42da22
cmp esi, 8
jae 0x42d372
cmp ebp, dword [esp + 0x1c]
jb 0x42d357
test byte [esp + 0xe8], 2
jne 0x42e2b2
xor eax, eax
jmp 0x42d360
cmp dword [esp + 0x14], 0
je 0x42d926
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x34]
jae 0x42e2e6
cmp ebp, dword [esp + 0x1c]
jae 0x42e300
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
sub ecx, ebp
mov edx, eax
cmp eax, ecx
jb 0x42da5b
mov edx, ecx
mov edi, dword [esp + 0x14]
cmp edx, edi
jae 0x42da6b
mov edi, eax
cmp eax, ecx
jb 0x42da6b
mov edi, ecx
mov eax, dword [esp + 0x20]
push edi
push ebp
push eax
call fcn.004345b0
add dword [esp + 0x2c], edi
add ebp, edi
add esp, 0xc
sub dword [esp + 0x14], edi
mov dword [esp + 0x10], ebp
jmp 0x42da22
cmp eax, 3
je case.0x42d07f.10
cmp eax, 1
jne 0x42db34
mov eax, 0x5050505
mov dword [ecx + 0x2c], 0x120
mov dword [ecx + 0x30], 0x20
mov dword [ecx + 0xde0], eax
mov dword [ecx + 0xde4], eax
mov dword [ecx + 0xde8], eax
mov dword [ecx + 0xdec], eax
mov dword [ecx + 0xdf0], eax
push 0x90
lea edi, [ecx + 0x40]
mov dword [ecx + 0xdf4], eax
push 8
mov dword [ecx + 0xdf8], eax
push edi
mov dword [ecx + 0xdfc], eax
call fcn.00434920
push 0x70
add edi, 0x90
push 9
push edi
call fcn.00434920
add edi, 0x70
mov eax, 0x7070707
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
add esp, 0x18
add edi, 0x18
mov eax, 0x8080808
mov dword [edi], eax
mov dword [edi + 4], eax
mov edi, dword [esp + 0xd0]
jmp 0x42dbca
xor eax, eax
mov dword [esp + 0x14], eax
cmp eax, 3
jae 0x42db6d
movsx ecx, byte [eax + 0x453a60]
cmp esi, ecx
jae 0x42d3d4
cmp ebp, dword [esp + 0x1c]
jb 0x42d3af
test byte [esp + 0xe8], 2
jne 0x42e358
xor eax, eax
jmp 0x42d3b8
mov edi, dword [esp + 0xd0]
push 0x120
lea edx, [edi + 0x1b80]
push 0
push edx
call fcn.00434920
mov dword [esp + 0x20], 0
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp ecx, dword [edi + 0x34]
jae 0x42dbc3
cmp esi, 3
jae 0x42d44b
cmp ebp, dword [esp + 0x1c]
jb 0x42d425
test byte [esp + 0xe8], 2
jne 0x42e372
xor eax, eax
jmp 0x42d42e
mov dword [edi + 0x34], 0x13
mov eax, dword [edi + 0x18]
test eax, eax
jl 0x42d6dd
mov edi, dword [esp + 0xd0]
imul eax, eax, 0xda0
lea ebp, [eax + edi + 0x40]
push 0x40
lea eax, [esp + 0x90]
push 0
push eax
mov dword [esp + 0x44], ebp
call fcn.00434920
push 0x800
lea ecx, [ebp + 0x120]
push 0
push ecx
call fcn.00434920
push 0x480
lea edx, [ebp + 0x920]
push 0
push edx
call fcn.00434920
mov ecx, dword [edi + 0x18]
mov ecx, dword [edi + ecx*4 + 0x2c]
xor edx, edx
add esp, 0x24
xor eax, eax
mov dword [esp + 0x40], ecx
cmp ecx, edx
jbe 0x42dc57
mov ecx, dword [edi + 0x18]
mov edi, dword [edi + ecx*4 + 0x2c]
mov edi, edi
movzx ecx, byte [eax + ebp]
inc dword [esp + ecx*4 + 0x8c]
lea ecx, [esp + ecx*4 + 0x8c]
inc eax
cmp eax, edi
jb 0x42dc40
mov dword [esp + 0x24], edx
xor ecx, ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x30], edx
mov eax, 4
mov edx, dword [esp + eax + 0x8c]
add dword [esp + 0x24], edx
add ecx, edx
mov edx, dword [esp + eax + 0x90]
add dword [esp + 0x30], edx
add ecx, ecx
mov dword [esp + eax + 0x4c], ecx
add ecx, edx
mov edx, dword [esp + eax + 0x94]
add dword [esp + 0x18], edx
add ecx, ecx
mov dword [esp + eax + 0x50], ecx
add ecx, edx
add ecx, ecx
mov dword [esp + eax + 0x54], ecx
add eax, 0xc
cmp eax, 0x3c
jbe 0x42dc72
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
add edx, eax
mov eax, dword [esp + 0x24]
add eax, edx
cmp ecx, 0x10000
je 0x42dcd4
cmp eax, 1
ja case.0x42d07f.35
cmp dword [esp + 0x40], 0
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x18], 0
jbe 0x42de17
nop
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + ebp]
xor eax, eax
test ecx, ecx
je 0x42ddfa
mov edx, dword [esp + ecx*4 + 0x48]
lea edi, [edx + 1]
mov dword [esp + ecx*4 + 0x48], edi
mov edi, ecx
jbe 0x42dd25
mov ebp, edx
and ebp, 1
add eax, eax
dec edi
or eax, ebp
shr edx, 1
test edi, edi
ja 0x42dd11
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
cmp ecx, 0xa
ja 0x42dd77
mov edx, ecx
shl edx, 9
or edx, dword [esp + 0x18]
movzx edx, dx
mov dword [esp + 0x40], edx
cmp eax, 0x400
jae 0x42ddfa
mov edx, 1
shl edx, cl
lea ecx, [ebp + eax*2 + 0x120]
mov ebp, dword [esp + 0x40]
lea edi, [edx + edx]
mov edi, edi
mov word [ecx], bp
add eax, edx
add ecx, edi
cmp eax, 0x400
jb 0x42dd60
mov ebp, dword [esp + 0x38]
jmp 0x42ddfa
mov edx, eax
and edx, 0x3ff
lea edx, [ebp + edx*2 + 0x120]
mov dword [esp + 0x40], edx
movsx edx, word [edx]
test edx, edx
jne 0x42dda1
mov edx, dword [esp + 0x40]
mov word [edx], di
mov edx, edi
sub edi, 2
mov dword [esp + 0x30], edi
shr eax, 9
cmp ecx, 0xb
jbe 0x42dde6
add ecx, 0xfffffff5
mov dword [esp + 0x24], ecx
shr eax, 1
mov ecx, eax
and ecx, 1
sub edx, ecx
mov ecx, 0x48f
sub ecx, edx
movzx edx, word [ebp + ecx*2]
lea ecx, [ebp + ecx*2]
test dx, dx
jne 0x42ddd8
mov word [ecx], di
mov edx, edi
sub edi, 2
jmp 0x42dddb
movsx edx, dx
sub dword [esp + 0x24], 1
jne 0x42ddb0
mov dword [esp + 0x30], edi
shr eax, 1
and eax, 1
sub eax, edx
mov dx, word [esp + 0x18]
mov word [ebp + eax*2 + 0x91e], dx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, dword [ecx + edx*4 + 0x2c]
jb 0x42dcf0
mov edi, dword [esp + 0xd0]
cmp dword [edi + 0x18], 2
jne 0x42e02c
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x30]
add eax, dword [edi + 0x2c]
cmp ecx, eax
jae 0x42dfed
cmp esi, 0xf
jae 0x42df14
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x10]
cmp ecx, 2
jge 0x42def2
mov eax, dword [esp + 0xd0]
mov edx, ebx
and edx, 0x3ff
movsx eax, word [eax + edx*2 + 0x1ca0]
test eax, eax
jl 0x42de82
sar eax, 9
test eax, eax
je 0x42deb6
cmp esi, eax
jae 0x42df14
jmp 0x42deb6
cmp esi, 0xa
jbe 0x42deb6
mov ecx, 0xa
lea esp, [esp]
mov edx, ebx
shr edx, cl
not eax
inc ecx
and edx, 1
add edx, eax
mov eax, dword [esp + 0xd0]
movsx eax, word [eax + edx*2 + 0x24a0]
test eax, eax
jge 0x42df14
lea edx, [ecx + 1]
cmp esi, edx
jae 0x42de90
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x10], eax
jb 0x42ded2
test byte [esp + 0xe8], 2
jne 0x42e3aa
xor eax, eax
jmp 0x42dede
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 0xf
jb 0x42de56
jmp 0x42df14
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 1]
movzx edi, byte [eax]
lea ecx, [esi + 8]
shl edx, cl
mov ecx, esi
shl edi, cl
add eax, 2
mov dword [esp + 0x10], eax
or edx, edi
or ebx, edx
add esi, 0x10
mov ebp, dword [esp + 0xd0]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [ebp + eax*2 + 0x1ca0]
test eax, eax
jl 0x42df3a
mov edi, eax
sar edi, 9
and eax, 0x1ff
jmp 0x42df5a
mov edi, 0xa
nop
mov ecx, edi
mov edx, ebx
shr edx, cl
not eax
inc edi
and edx, 1
add edx, eax
movsx eax, word [ebp + edx*2 + 0x24a0]
test eax, eax
jl 0x42df40
mov ecx, edi
mov edx, eax
shr ebx, cl
sub esi, edi
mov dword [esp + 0x28], edx
cmp eax, 0x10
jae 0x42df7e
mov ecx, dword [esp + 0x14]
mov byte [ecx + ebp + 0x2924], al
inc ecx
mov edi, ebp
jmp 0x42de2a
jne 0x42df8b
cmp dword [esp + 0x14], 0
je case.0x42d07f.17
movsx ecx, byte [eax + 0x453a64]
mov dword [esp + 0x2c], ecx
cmp esi, ecx
jae 0x42d4b4
mov ebp, dword [esp + 0x10]
cmp ebp, dword [esp + 0x1c]
jb 0x42d489
test byte [esp + 0xe8], 2
jne 0x42e3e0
xor eax, eax
jmp 0x42d492
xor eax, eax
mov edx, dword [esp + 0x14]
push edi
push eax
lea eax, [edx + ebp + 0x2924]
push eax
call fcn.00434920
add esp, 0xc
add dword [esp + 0x14], edi
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x14]
jmp 0x42de2e
mov eax, dword [edi + 0x2c]
mov edx, dword [edi + 0x30]
add edx, eax
cmp edx, ecx
jne case.0x42d07f.21
push eax
lea eax, [edi + 0x2924]
push eax
lea ecx, [edi + 0x40]
push ecx
call fcn.004345b0
mov edx, dword [edi + 0x30]
mov eax, dword [edi + 0x2c]
push edx
lea ecx, [eax + edi + 0x2924]
push ecx
lea edx, [edi + 0xde0]
push edx
call fcn.004345b0
add esp, 0x18
dec dword [edi + 0x18]
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0xd0]
jmp 0x42dbca
mov ecx, dword [eax*4 + 0x4534d4]
mov eax, dword [eax*4 + 0x453444]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x42d549
cmp esi, ecx
jae 0x42d537
cmp ebp, dword [esp + 0x1c]
jb 0x42d519
test byte [esp + 0xe8], 2
jne 0x42e5f2
xor eax, eax
jmp 0x42d522
cmp esi, 0xa
jbe 0x42e0b6
mov ecx, 0xa
mov edi, edi
mov edx, ebx
shr edx, cl
not eax
inc ecx
and edx, 1
add edx, eax
mov eax, dword [esp + 0xd0]
movsx eax, word [eax + edx*2 + 0x1700]
test eax, eax
jge 0x42e114
lea edx, [ecx + 1]
cmp esi, edx
jae 0x42e090
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x10], eax
jb 0x42e0d2
test byte [esp + 0xe8], 2
jne 0x42e60c
xor eax, eax
jmp 0x42e0de
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx]
inc ecx
mov dword [esp + 0x10], ecx
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 0xf
jb 0x42d561
jmp 0x42e114
mov eax, dword [esp + 0x10]
movzx edx, byte [eax + 1]
movzx edi, byte [eax]
lea ecx, [esi + 8]
shl edx, cl
mov ecx, esi
shl edi, cl
add eax, 2
mov dword [esp + 0x10], eax
or edx, edi
or ebx, edx
add esi, 0x10
mov edx, dword [esp + 0xd0]
mov eax, ebx
and eax, 0x3ff
movsx eax, word [edx + eax*2 + 0xf00]
test eax, eax
jl 0x42e13a
mov ecx, eax
sar ecx, 9
and eax, 0x1ff
jmp 0x42e158
mov ecx, 0xa
nop
mov edi, ebx
shr edi, cl
not eax
inc ecx
and edi, 1
add edi, eax
movsx eax, word [edx + edi*2 + 0x1700]
test eax, eax
jl 0x42e140
mov edx, dword [eax*4 + 0x453960]
mov ebp, dword [esp + 0x10]
shr ebx, cl
sub esi, ecx
mov ecx, dword [eax*4 + 0x4539e0]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edx
test ecx, ecx
je 0x42d5e9
cmp esi, ecx
jae 0x42d5d5
cmp ebp, dword [esp + 0x1c]
jb 0x42d5b3
test byte [esp + 0xe8], 2
jne 0x42e62a
xor eax, eax
jmp 0x42d5bc
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
lea ecx, [ecx]
movzx edx, byte [eax]
mov byte [edi], dl
movzx edx, byte [eax + 1]
mov byte [edi + 1], dl
movzx edx, byte [eax + 2]
mov byte [edi + 2], dl
sub ecx, 3
add edi, 3
add eax, 3
cmp ecx, 2
jg 0x42e1b0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], edi
test ecx, ecx
jle 0x42d6dd
mov cl, byte [eax]
mov byte [edi], cl
mov ecx, dword [esp + 0x14]
cmp ecx, 1
jle 0x42d693
mov dl, byte [eax + 1]
mov byte [edi + 1], dl
add edi, ecx
mov dword [esp + 0x20], edi
jmp 0x42d6dd
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 2
mov dword [eax], 0x35
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [ecx], 0x17
jmp case.0x42d07f.4
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [edx], 3
jmp case.0x42d07f.4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [eax], 5
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [ecx], 6
jmp case.0x42d07f.4
mov dword [esp + 0x18], 1
mov dword [edx], 7
jmp case.0x42d07f.4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 0xffffffff
mov dword [eax], 0x27
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [ecx], 0x33
jmp case.0x42d07f.4
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x18], 2
mov dword [edx], 0x34
jmp case.0x42d07f.4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 2
mov dword [eax], 9
jmp case.0x42d07f.4
test byte [esp + 0xe8], 2
je case.0x42d07f.40
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [ecx], 0x26
jmp case.0x42d07f.4
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x18], 0xffffffff
mov dword [edx], 0x28
jmp case.0x42d07f.4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 0xffffffff
mov dword [eax], 0xa
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [ecx], 0xb
jmp case.0x42d07f.4
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [edx], 0xe
jmp case.0x42d07f.4
mov eax, dword [esp + 0xd0]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x18], 0xffffffff
mov dword [eax], 0x23
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [ecx], 0x10
jmp case.0x42d07f.4
mov edx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x18], 0xffffffff
mov dword [edx], 0x11
jmp case.0x42d07f.4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [eax], 0x12
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x18], 0xffffffff
mov dword [ecx], 0x15
jmp case.0x42d07f.4
test byte [esp + 0xe8], 1
jne 0x42e68d
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x18], 0
mov dword [edx], 0x22
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
sub ebp, dword [esp + 0xd4]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x24], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 4], esi
mov esi, dword [esp + 0xe0]
mov dword [eax + 0x28], ecx
mov ecx, dword [esp + 0xe4]
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], edx
mov eax, dword [esp + 0xd8]
mov dword [eax], ebp
mov eax, dword [esp + 0x20]
sub eax, esi
test byte [esp + 0xe8], 9
mov dword [ecx], eax
je 0x42e5e3
cmp dword [esp + 0x18], 0
jl 0x42e5e3
mov ebp, eax
mov eax, dword [esp + 0xd0]
movzx ecx, word [eax + 0x1c]
movzx edi, word [eax + 0x1e]
mov eax, 0x5e6ea9af
mul ebp
shr edx, 0xb
imul edx, edx, 0x15b0
mov ebx, ebp
sub ebx, edx
mov dword [esp + 0x38], ebp
test ebp, ebp
je 0x42e5b6
mov edi, edi
xor edx, edx
cmp ebx, 7
jbe 0x42e52c
lea eax, [edx + 7]
lea ebx, [ebx]
movzx ebp, byte [esi]
add ecx, ebp
movzx ebp, byte [esi + 1]
add edi, ecx
add ecx, ebp
movzx ebp, byte [esi + 2]
add edi, ecx
add ecx, ebp
movzx ebp, byte [esi + 3]
add edi, ecx
add ecx, ebp
movzx ebp, byte [esi + 4]
add edi, ecx
add ecx, ebp
movzx ebp, byte [esi + 5]
add edi, ecx
add ecx, ebp
movzx ebp, byte [esi + 6]
add edi, ecx
add ecx, ebp
movzx ebp, byte [esi + 7]
add edi, ecx
add ecx, ebp
add eax, 8
add edi, ecx
add edx, 8
add esi, 8
cmp eax, ebx
jb 0x42e4e0
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], eax
cmp edx, ebx
jae 0x42e583
mov eax, ebx
sub eax, edx
cmp eax, 2
jl 0x42e56b
mov eax, ebx
sub eax, edx
sub eax, 2
shr eax, 1
inc eax
lea edx, [edx + eax*2]
movzx ebp, byte [esi]
add ecx, ebp
movzx ebp, byte [esi + 1]
add dword [esp + 0x3c], ecx
add ecx, ebp
add dword [esp + 0x24], ecx
add esi, 2
sub eax, 1
jne 0x42e550
cmp edx, ebx
jae 0x42e577
movzx edx, byte [esi]
add ecx, edx
add edi, ecx
inc esi
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
add eax, edx
add edi, eax
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul edx, edx, 0xffff000f
add ecx, edx
mov eax, 0x80078071
mul edi
shr edx, 0xf
imul edx, edx, 0xffff000f
add edi, edx
sub dword [esp + 0x38], ebx
mov ebx, 0x15b0
jne 0x42e4d0
mov eax, dword [esp + 0xd0]
shl edi, 0x10
add ecx, edi
cmp dword [esp + 0x18], 0
mov dword [eax + 0x1c], ecx
jne 0x42e5e3
test byte [esp + 0xe8], 1
je 0x42e5e3
cmp ecx, dword [eax + 0x10]
je 0x42e5e3
mov dword [esp + 0x18], 0xfffffffe
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [eax], 0x19
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x18], 1
mov dword [ecx], 0x1a
jmp case.0x42d07f.4
mov edx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [edx], 0x1b
jmp case.0x42d07f.4
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 0xffffffff
mov dword [eax], 0x25
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 2
mov dword [ecx], 0x18
jmp case.0x42d07f.4
test byte [esp + 0xe8], 2
jne 0x42e6a3
xor eax, eax
mov ecx, esi
shl eax, cl
or ebx, eax
add esi, 8
mov edx, esi
and edx, 7
cmp esi, edx
jae 0x42e6bd
cmp ebp, dword [esp + 0x1c]
jae 0x42e678
movzx eax, byte [ebp]
inc ebp
jmp 0x42e684
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [eax], 0x20
jmp case.0x42d07f.4
mov ecx, esi
and ecx, 7
shr ebx, cl
sub esi, ecx
mov dword [esp + 0x14], 0
jmp 0x42e716
cmp ebp, dword [esp + 0x1c]
jae 0x42e730
movzx eax, byte [ebp]
inc ebp
mov ecx, esi
shl eax, cl
add esi, 8
or ebx, eax
cmp esi, 8
jb 0x42e72a
movzx eax, bl
shr ebx, 8
sub esi, 8
jmp 0x42e700
test byte [esp + 0xe8], 2
jne 0x42e74b
xor eax, eax
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx + 0x10]
shl edx, 8
or edx, eax
inc dword [esp + 0x14]
mov dword [ecx + 0x10], edx
cmp dword [esp + 0x14], 4
jae case.0x42d07f.34
test esi, esi
je case.0x42d07f.42
cmp esi, 8
jae 0x42e6e9
cmp ebp, dword [esp + 0x1c]
jb 0x42e6d6
test byte [esp + 0xe8], 2
jne 0x42e765
xor eax, eax
jmp 0x42e6db
cmp ebp, dword [esp + 0x1c]
jae 0x42e6f4
movzx eax, byte [ebp]
inc ebp
jmp 0x42e700
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [eax], 0x2a
jmp case.0x42d07f.4
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x18], 1
mov dword [ecx], 0x29
jmp case.0x42d07f.4
mov dword [ebx], 0
mov dword [edi], 0
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0xbc
ret