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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 0x1c]
lea eax, [edx + eax - 5]
mov dword [esp + 0xc], edx
mov edx, dword [ecx + 0xc]
mov edi, dword [ebx + 0x38]
mov ebp, dword [ebx + 0x2c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 4], edx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x14], edi
lea ecx, [edx + eax - 0x101]
sub eax, dword [esp + 0x94]
mov dword [esp + 0x40], ecx
mov cl, byte [ebx + 0x58]
add eax, edx
mov edx, 0xffffffff
shl edx, cl
mov cl, byte [ebx + 0x5c]
mov dword [esp + 0x2c], eax
not edx
mov dword [esp + 0x78], edx
mov edx, 0xffffffff
shl edx, cl
mov ecx, eax
not edx
mov dword [esp + 0x74], edx
mov edx, dword [ebx + 0x34]
mov esi, edx
sub ecx, edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x64], ecx
and esi, 0xffffffe0
mov ecx, edx
sub ecx, esi
mov dword [esp + 0x28], esi
lea esi, [ebp + 0x10]
mov dword [esp + 0x54], ecx
lea ecx, [edx + 0x10]
sub esi, eax
sub ecx, eax
add esi, edi
add ecx, edi
mov dword [esp + 0x60], esi
mov esi, dword [ebx + 0x3c]
mov dword [esp + 0x5c], ecx
lea ecx, [edx + ebp + 0x10]
sub ecx, eax
add ecx, edi
mov dword [esp + 0x58], ecx
mov ecx, eax
mov ecx, dword [ebx + 0x50]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x48], ecx
mov ecx, dword [ebx + 0x54]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x44], ecx
lea ecx, [edx + ebp]
mov dword [esp + 0x68], ecx
lea ecx, [edi + ebp]
mov ebp, dword [esp + 4]
mov dword [esp + 0x38], ecx
lea ecx, [edi + edx]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
lea ecx, [edi + ecx]
mov dword [esp + 0x50], ecx
cmp eax, 0xe
mov dword [esp + 4], ebp
ja 0x42bfa0
mov ebp, dword [esp + 0xc]
mov ecx, eax
movzx edx, byte [ebp]
shl edx, cl
lea ecx, [eax + 8]
add eax, 0x10
add edx, esi
movzx esi, byte [ebp + 1]
add ebp, 2
shl esi, cl
add esi, edx
jmp 0x42bfa4
mov ebp, dword [esp + 0xc]
mov edi, esi
mov ebx, dword [esp + 0x48]
and edi, dword [esp + 0x78]
mov dl, byte [ebx + edi*4]
movzx ecx, byte [ebx + edi*4 + 1]
movzx ebx, word [ebx + edi*4 + 2]
shr esi, cl
sub eax, ecx
test dl, dl
je 0x42c00d
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, dl
test dl, 0x10
jne 0x42c040
test dl, 0x40
jne 0x42c5e5
movzx edi, bx
mov ebx, 0xffffffff
mov ecx, edx
shl ebx, cl
not ebx
and ebx, esi
add ebx, edi
mov edi, dword [esp + 0x48]
movzx edx, byte [edi + ebx*4]
movzx ecx, byte [edi + ebx*4 + 1]
movzx ebx, word [edi + ebx*4 + 2]
shr esi, cl
sub eax, ecx
test dl, dl
jne 0x42bfd0
mov ecx, dword [esp + 4]
mov dword [esp + 0xc], ebp
mov byte [ecx], bl
inc ecx
mov ebp, ecx
cmp ebp, dword [esp + 0x40]
jae 0x42c621
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x3c]
jb 0x42bf69
jmp 0x42c621
movzx ebx, bx
and edx, 0xf
je 0x42c06d
cmp eax, edx
jae 0x42c05a
movzx edi, byte [ebp]
mov ecx, eax
inc ebp
add eax, 8
shl edi, cl
add esi, edi
mov edi, 0xffffffff
mov ecx, edx
sub eax, edx
shl edi, cl
not edi
and edi, esi
shr esi, cl
add ebx, edi
cmp eax, 0xe
mov dword [esp], ebx
ja 0x42c096
movzx edx, byte [ebp]
mov ecx, eax
shl edx, cl
lea ecx, [eax + 8]
add eax, 0x10
add edx, esi
movzx esi, byte [ebp + 1]
add ebp, 2
mov dword [esp + 0xc], ebp
shl esi, cl
add esi, edx
jmp 0x42c09a
mov dword [esp + 0xc], ebp
mov edi, esi
mov ebx, dword [esp + 0x44]
and edi, dword [esp + 0x74]
movzx ecx, byte [ebx + edi*4 + 1]
movzx edx, byte [ebx + edi*4]
movzx ebp, word [ebx + edi*4 + 2]
sub eax, ecx
shr esi, cl
test dl, 0x10
mov edi, esi
mov ebx, eax
jne 0x42c0f6
nop
test dl, 0x40
jne 0x42c5fe
mov esi, 0xffffffff
mov ecx, edx
movzx eax, bp
shl esi, cl
not esi
and esi, edi
add esi, eax
mov eax, dword [esp + 0x44]
movzx ecx, byte [eax + esi*4 + 1]
movzx edx, byte [eax + esi*4]
movzx ebp, word [eax + esi*4 + 2]
shr edi, cl
sub ebx, ecx
test dl, 0x10
je 0x42c0c0
and edx, 0xf
movzx eax, bp
cmp ebx, edx
mov dword [esp + 8], eax
jae 0x42c131
mov ebp, dword [esp + 0xc]
mov ecx, ebx
lea eax, [ebx + 8]
movzx esi, byte [ebp]
shl esi, cl
add esi, edi
cmp eax, edx
jae 0x42c137
movzx edi, byte [ebp + 1]
mov ecx, eax
add ebx, 0x10
add ebp, 2
mov eax, ebx
mov dword [esp + 0xc], ebp
shl edi, cl
add esi, edi
jmp 0x42c13c
mov eax, ebx
mov esi, edi
jmp 0x42c13c
inc ebp
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 4]
mov edi, 0xffffffff
mov ecx, edx
mov ebx, dword [esp + 8]
sub eax, edx
shl edi, cl
not edi
and edi, esi
shr esi, cl
mov ecx, ebp
lea ebx, [edi + ebx]
sub ecx, dword [esp + 0x2c]
mov edx, ebx
sub edx, ecx
jbe 0x42c223
cmp edx, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov ebx, edx
mov dword [esp + 0x20], edi
jbe 0x42c189
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x1bc4], 0
jne 0x42c675
mov edx, dword [esp + 0x24]
test edx, edx
je 0x42c2b5
mov ecx, edx
sub ecx, ebx
jae 0x42c31c
mov ecx, dword [esp + 0x68]
mov edi, dword [esp + 0x14]
sub ecx, ebx
sub ebx, edx
mov edx, dword [esp]
add ecx, edi
sub edx, ebx
jbe 0x42c37d
cmp ebx, 0x20
mov dword [esp + 0x4c], edx
jb 0x42c1e3
cmp ebp, dword [esp + 0x38]
jae 0x42c478
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x10]
lea edx, [ebp + edx]
sub edi, ebp
add edi, edx
cmp ecx, edi
jae 0x42c478
mov edi, dword [esp + 0x28]
mov edx, ebx
nop dword [eax]
movzx ebx, byte [ecx]
inc ecx
mov byte [ebp], bl
inc ebp
dec edx
jne 0x42c1f0
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
mov edx, ebx
sub edx, ecx
jbe 0x42c403
cmp ecx, 0x20
mov dword [esp + 0x1c], edx
jae 0x42c4e8
mov edi, dword [esp + 0x14]
jmp 0x42c5c0
neg edi
xor ecx, ecx
sub edi, dword [esp + 8]
mov dword [esp + 0x20], edi
lea edx, [ebp + edi + 2]
mov edi, dword [esp]
nop word cs:[eax + eax]
movzx ebx, byte [edx + ecx - 2]
add edi, 0xfffffffd
mov byte [ebp + ecx], bl
movzx ebx, byte [edx + ecx - 1]
mov byte [ebp + ecx + 1], bl
movzx ebx, byte [edx + ecx]
mov byte [ebp + ecx + 2], bl
add ecx, 3
cmp edi, 2
ja 0x42c240
mov edi, ecx
sub edi, dword [esp]
je 0x42c2a0
mov dl, byte [edx + ecx - 2]
mov ebp, dword [esp + 4]
inc edi
mov byte [ebp + ecx], dl
je 0x42c3f0
mov edx, dword [esp + 0x20]
add edx, ebp
mov dl, byte [ecx + edx + 1]
mov byte [ebp + ecx + 1], dl
lea ebp, [ebp + ecx + 2]
cmp ebp, dword [esp + 0x40]
jb 0x42c024
jmp 0x42c621
mov ebp, dword [esp + 4]
add ebp, ecx
cmp ebp, dword [esp + 0x40]
jb 0x42c024
jmp 0x42c621
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x14]
mov edx, dword [esp]
sub ecx, ebx
add ecx, edi
sub edx, ebx
mov dword [esp + 0x1c], edx
jbe 0x42c37d
cmp ebx, 0x20
jb 0x42c2fb
cmp ebp, dword [esp + 0x38]
jae 0x42c416
mov edx, dword [esp + 0x2c]
lea edi, [ebp + edx]
mov edx, ebx
mov ebx, dword [esp + 0x10]
sub ebx, ebp
add ebx, edi
cmp ecx, ebx
mov ebx, edx
jae 0x42c416
mov edi, ebp
mov ebp, dword [esp + 0x10]
nop word cs:[eax + eax]
nop dword [eax + eax]
movzx edx, byte [ecx]
inc ecx
mov byte [edi], dl
inc edi
dec ebx
jne 0x42c310
jmp 0x42c36a
mov edi, dword [esp + 0x14]
mov edx, dword [esp]
add ecx, edi
sub edx, ebx
jbe 0x42c37d
cmp ebx, 0x20
mov dword [esp + 0x1c], edx
jb 0x42c354
cmp ebp, dword [esp + 0x34]
jae 0x42c50d
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
lea edx, [ebp + edx]
sub edi, ebp
add edi, edx
cmp ecx, edi
jae 0x42c50d
mov edi, ebp
mov ebp, dword [esp + 0x10]
nop word [eax + eax]
movzx edx, byte [ecx]
inc ecx
mov byte [edi], dl
inc edi
dec ebx
jne 0x42c360
mov ecx, edi
sub ecx, ebp
mov ebp, edi
mov ebx, dword [esp + 0x1c]
mov edx, ebx
cmp ebx, 3
jae 0x42c387
jmp 0x42c3b4
mov ebx, dword [esp]
mov edx, ebx
cmp ebx, 3
jb 0x42c3b4
mov ebx, edx
nop dword [eax]
movzx edx, byte [ecx]
add ebx, 0xfffffffd
mov byte [ebp], dl
movzx edx, byte [ecx + 1]
mov byte [ebp + 1], dl
movzx edx, byte [ecx + 2]
add ecx, 3
mov byte [ebp + 2], dl
add ebp, 3
cmp ebx, 2
ja 0x42c390
mov edx, ebx
test edx, edx
je 0x42c01a
mov ebx, edx
mov dh, byte [ecx]
cmp ebx, 1
mov byte [ebp], dh
jne 0x42c3d8
inc ebp
cmp ebp, dword [esp + 0x40]
jb 0x42c024
jmp 0x42c621
mov cl, byte [ecx + 1]
mov byte [ebp + 1], cl
add ebp, 2
cmp ebp, dword [esp + 0x40]
jb 0x42c024
jmp 0x42c621
lea ebp, [ebp + ecx + 1]
cmp ebp, dword [esp + 0x40]
jb 0x42c024
jmp 0x42c621
mov edi, dword [esp + 0x14]
mov ecx, edi
mov edx, ebx
cmp ebx, 3
jae 0x42c387
jmp 0x42c3b4
mov edx, ebx
mov dword [esp + 0x18], ebx
and edx, 0xffffffe0
mov dword [esp], edx
lea edi, [ebp + edx]
mov edx, ebp
xor ebp, ebp
sub edx, dword [esp + 0x20]
sub ebx, dword [esp]
add ecx, dword [esp]
sub edx, dword [esp + 8]
add edx, dword [esp + 0x60]
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
movups xmm0, xmmword [edx + ebp - 0x10]
movups xmm1, xmmword [edx + ebp]
mov edx, dword [esp + 4]
movups xmmword [edx + ebp], xmm0
movups xmmword [edx + ebp + 0x10], xmm1
add ebp, 0x20
cmp dword [esp], ebp
jne 0x42c440
mov edx, dword [esp]
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], edx
jne 0x42c310
jmp 0x42c36a
mov edx, ebp
mov edi, ebx
mov dword [esp + 0x18], ebx
mov ebx, edx
mov edx, dword [esp + 0x18]
and edi, 0xffffffe0
sub ebx, dword [esp + 0x20]
lea ebp, [ebp + edi]
mov dword [esp], edi
add ecx, edi
sub edx, edi
xor edi, edi
sub ebx, dword [esp + 8]
add ebx, dword [esp + 0x58]
mov dword [esp + 8], ebx
nop word cs:[eax + eax]
mov ebx, dword [esp + 8]
movups xmm0, xmmword [ebx + edi - 0x10]
movups xmm1, xmmword [ebx + edi]
mov ebx, dword [esp + 4]
movups xmmword [ebx + edi], xmm0
movups xmmword [ebx + edi + 0x10], xmm1
add edi, 0x20
cmp dword [esp], edi
jne 0x42c4b0
mov edi, dword [esp]
cmp dword [esp + 0x18], edi
mov edi, dword [esp + 0x28]
jne 0x42c1f0
jmp 0x42c1fb
cmp ebp, dword [esp + 0x34]
jae 0x42c578
mov ecx, dword [esp + 0x24]
lea ecx, [ebp + ecx]
cmp dword [esp + 0x14], ecx
jae 0x42c578
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
jmp 0x42c5c0
mov edx, ebx
mov dword [esp + 0x18], ebx
and edx, 0xffffffe0
mov dword [esp], edx
lea edi, [ebp + edx]
mov edx, ebp
xor ebp, ebp
sub edx, dword [esp + 0x20]
sub ebx, dword [esp]
add ecx, dword [esp]
sub edx, dword [esp + 8]
add edx, dword [esp + 0x5c]
mov dword [esp + 8], edx
nop word [eax + eax]
mov edx, dword [esp + 8]
movups xmm0, xmmword [edx + ebp - 0x10]
movups xmm1, xmmword [edx + ebp]
mov edx, dword [esp + 4]
movups xmmword [edx + ebp], xmm0
movups xmmword [edx + ebp + 0x10], xmm1
add ebp, 0x20
cmp dword [esp], ebp
jne 0x42c540
mov edx, dword [esp]
mov ebp, dword [esp + 0x10]
cmp dword [esp + 0x18], edx
jne 0x42c360
jmp 0x42c36a
mov edx, dword [esp + 0x14]
lea ecx, [ebp + edi]
mov dword [esp + 4], ecx
xor ecx, ecx
movups xmm0, xmmword [edx + ecx]
movups xmm1, xmmword [edx + ecx + 0x10]
movups xmmword [ebp + ecx], xmm0
movups xmmword [ebp + ecx + 0x10], xmm1
add ecx, 0x20
cmp edi, ecx
jne 0x42c586
cmp dword [esp + 0x24], edi
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x50]
mov ebp, dword [esp + 4]
je 0x42c5cb
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, byte [edi]
inc edi
mov byte [ebp], dl
inc ebp
dec ecx
jne 0x42c5c0
mov ecx, ebp
sub ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov edx, ebx
cmp ebx, 3
jb 0x42c3b4
jmp 0x42c387
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 4]
mov edi, 0x3f3f
mov ecx, str.invalid_literal_length_code
test dl, 0x20
je 0x42c60b
jmp 0x42c61a
mov ebp, dword [esp + 4]
mov ecx, str.invalid_distance_code
mov eax, ebx
mov esi, edi
mov edx, dword [esp + 0x90]
mov edi, 0x3f51
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx + 4], edi
mov edi, dword [esp + 0xc]
mov ecx, eax
mov edx, dword [esp + 0x3c]
and eax, 7
shr ecx, 3
sub edi, ecx
mov ecx, dword [esp + 0x90]
add edx, 5
sub edx, edi
mov dword [ecx], edi
mov dword [ecx + 0xc], ebp
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x40]
add edx, 0x101
sub edx, ebp
mov dword [ecx + 0x10], edx
mov edx, 0xffffffff
mov ecx, eax
shl edx, cl
not edx
and edx, esi
mov esi, dword [esp + 0x30]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], eax
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, str.invalid_distance_too_far_back
jmp 0x42c60b